From 6e7b69df73911bdb5a14f9ca39f01e3bde814466 Mon Sep 17 00:00:00 2001 From: escape209 Date: Wed, 19 Mar 2025 23:03:11 +0000 Subject: [PATCH] Add DWARF debug output based on dtk 1.4.0 --- dwarf/SB/Core/p2/his/HISAPI.cpp | 194 + dwarf/SB/Core/p2/his/HisStubs.cpp | 942 +++ dwarf/SB/Core/p2/iAnim.cpp | 130 + dwarf/SB/Core/p2/iAnimSKB.cpp | 180 + dwarf/SB/Core/p2/iCollide.cpp | 1364 +++ dwarf/SB/Core/p2/iCollideFast.cpp | 905 ++ dwarf/SB/Core/p2/iCutscene.cpp | 676 ++ dwarf/SB/Core/p2/iDraw.cpp | 430 + dwarf/SB/Core/p2/iEnv.cpp | 2586 ++++++ dwarf/SB/Core/p2/iException.cpp | 557 ++ dwarf/SB/Core/p2/iFMV.cpp | 37 + dwarf/SB/Core/p2/iFX.cpp | 1335 +++ dwarf/SB/Core/p2/iFXgoo.cpp | 883 ++ dwarf/SB/Core/p2/iFXshadow.cpp | 1559 ++++ dwarf/SB/Core/p2/iFile.cpp | 346 + dwarf/SB/Core/p2/iLight.cpp | 587 ++ dwarf/SB/Core/p2/iMath.cpp | 7 + dwarf/SB/Core/p2/iMath3.cpp | 304 + dwarf/SB/Core/p2/iMemMgr.cpp | 63 + dwarf/SB/Core/p2/iModel.cpp | 2692 ++++++ dwarf/SB/Core/p2/iModelBucketPDS.cpp | 728 ++ dwarf/SB/Core/p2/iMorph.cpp | 546 ++ dwarf/SB/Core/p2/iPad.cpp | 270 + dwarf/SB/Core/p2/iParMgr.cpp | 2550 ++++++ dwarf/SB/Core/p2/iScrFX.cpp | 488 ++ dwarf/SB/Core/p2/iSnd.cpp | 635 ++ dwarf/SB/Core/p2/iSystem.cpp | 1088 +++ dwarf/SB/Core/p2/iTime.cpp | 195 + dwarf/SB/Core/p2/iVU0.cpp | 31 + dwarf/SB/Core/p2/isavegame.cpp | 3024 +++++++ dwarf/SB/Core/p2/p2im3dhack.cpp | 453 + dwarf/SB/Core/p2/p2skyfs.c | 318 + dwarf/SB/Core/p2/ps2_mpeg/audiodec.c | 279 + dwarf/SB/Core/p2/ps2_mpeg/disp.c | 423 + dwarf/SB/Core/p2/ps2_mpeg/ps2_mpeg.c | 629 ++ dwarf/SB/Core/p2/ps2_mpeg/read.c | 181 + dwarf/SB/Core/p2/ps2_mpeg/readbuf.c | 99 + dwarf/SB/Core/p2/ps2_mpeg/strfile.c | 68 + dwarf/SB/Core/p2/ps2_mpeg/vibuf.c | 280 + dwarf/SB/Core/p2/ps2_mpeg/videodec.c | 393 + dwarf/SB/Core/p2/ps2_mpeg/vobuf.c | 140 + dwarf/SB/Core/x/containers.h | 175 + dwarf/SB/Core/x/iCamera.cpp | 1979 +++++ dwarf/SB/Core/x/xAnim.cpp | 1413 ++++ dwarf/SB/Core/x/xBase.cpp | 119 + dwarf/SB/Core/x/xBehaveGoalSimple.cpp | 243 + dwarf/SB/Core/x/xBehaveGoalSimple.h | 56 + dwarf/SB/Core/x/xBehaveMgr.cpp | 646 ++ dwarf/SB/Core/x/xBehaveMgr.h | 14 + dwarf/SB/Core/x/xBehaviour.cpp | 197 + dwarf/SB/Core/x/xBehaviour.h | 98 + dwarf/SB/Core/x/xBound.cpp | 927 ++ dwarf/SB/Core/x/xCM.cpp | 414 + dwarf/SB/Core/x/xCamera.cpp | 2818 +++++++ dwarf/SB/Core/x/xClimate.cpp | 1154 +++ dwarf/SB/Core/x/xClumpColl.cpp | 958 +++ dwarf/SB/Core/x/xCollide.cpp | 2268 +++++ dwarf/SB/Core/x/xCollideFast.cpp | 1057 +++ dwarf/SB/Core/x/xColor.cpp | 50 + dwarf/SB/Core/x/xColor.h | 15 + dwarf/SB/Core/x/xCounter.cpp | 151 + dwarf/SB/Core/x/xCurveAsset.cpp | 42 + dwarf/SB/Core/x/xCutscene.cpp | 1871 ++++ dwarf/SB/Core/x/xDebug.cpp | 225 + dwarf/SB/Core/x/xDecal.cpp | 2303 +++++ dwarf/SB/Core/x/xEnt.cpp | 3331 ++++++++ dwarf/SB/Core/x/xEnt.h | 28 + dwarf/SB/Core/x/xEntBoulder.cpp | 3732 ++++++++ dwarf/SB/Core/x/xEntDrive.cpp | 1100 +++ dwarf/SB/Core/x/xEntMotion.cpp | 1647 ++++ dwarf/SB/Core/x/xEnv.cpp | 615 ++ dwarf/SB/Core/x/xEvent.cpp | 180 + dwarf/SB/Core/x/xFFX.cpp | 1236 +++ dwarf/SB/Core/x/xFX.cpp | 3819 +++++++++ dwarf/SB/Core/x/xFactory.cpp | 225 + dwarf/SB/Core/x/xFog.cpp | 167 + dwarf/SB/Core/x/xFont.cpp | 3191 +++++++ dwarf/SB/Core/x/xFont.h | 29 + dwarf/SB/Core/x/xGrid.cpp | 1240 +++ dwarf/SB/Core/x/xGrid.h | 86 + dwarf/SB/Core/x/xGroup.cpp | 190 + dwarf/SB/Core/x/xHud.cpp | 2739 ++++++ dwarf/SB/Core/x/xHud.h | 84 + dwarf/SB/Core/x/xHudFontMeter.cpp | 352 + dwarf/SB/Core/x/xHudMeter.cpp | 295 + dwarf/SB/Core/x/xHudMeter.h | 14 + dwarf/SB/Core/x/xHudModel.cpp | 917 ++ dwarf/SB/Core/x/xHudText.cpp | 527 ++ dwarf/SB/Core/x/xHudUnitMeter.cpp | 1005 +++ dwarf/SB/Core/x/xIni.cpp | 111 + dwarf/SB/Core/x/xJSP.cpp | 2120 +++++ dwarf/SB/Core/x/xJaw.cpp | 54 + dwarf/SB/Core/x/xLaserBolt.cpp | 2907 +++++++ dwarf/SB/Core/x/xLaserBolt.h | 15 + dwarf/SB/Core/x/xLightKit.cpp | 535 ++ dwarf/SB/Core/x/xListItem.cpp | 74 + dwarf/SB/Core/x/xMath.cpp | 314 + dwarf/SB/Core/x/xMath.h | 100 + dwarf/SB/Core/x/xMath2.cpp | 33 + dwarf/SB/Core/x/xMath2.h | 73 + dwarf/SB/Core/x/xMath3.cpp | 621 ++ dwarf/SB/Core/x/xMath3.h | 122 + dwarf/SB/Core/x/xMathInlines.h | 98 + dwarf/SB/Core/x/xMemMgr.cpp | 435 + dwarf/SB/Core/x/xModel.cpp | 1243 +++ dwarf/SB/Core/x/xModel.h | 14 + dwarf/SB/Core/x/xModelBucket.cpp | 1769 ++++ dwarf/SB/Core/x/xMorph.cpp | 515 ++ dwarf/SB/Core/x/xMovePoint.cpp | 288 + dwarf/SB/Core/x/xNPCBasic.cpp | 1274 +++ dwarf/SB/Core/x/xNPCBasic.h | 210 + dwarf/SB/Core/x/xPTankPool.h | 60 + dwarf/SB/Core/x/xPad.cpp | 216 + dwarf/SB/Core/x/xPar.cpp | 96 + dwarf/SB/Core/x/xParCmd.cpp | 841 ++ dwarf/SB/Core/x/xParEmitter.cpp | 1920 +++++ dwarf/SB/Core/x/xParEmitterType.cpp | 1565 ++++ dwarf/SB/Core/x/xParGroup.cpp | 333 + dwarf/SB/Core/x/xParMgr.cpp | 52 + dwarf/SB/Core/x/xParSys.cpp | 2405 ++++++ dwarf/SB/Core/x/xPartition.cpp | 802 ++ dwarf/SB/Core/x/xPtankPool.cpp | 654 ++ dwarf/SB/Core/x/xQuickCull.cpp | 285 + dwarf/SB/Core/x/xRMemData.cpp | 111 + dwarf/SB/Core/x/xRenderState.cpp | 111 + dwarf/SB/Core/x/xSFX.cpp | 1409 ++++ dwarf/SB/Core/x/xScene.cpp | 1751 ++++ dwarf/SB/Core/x/xScrFx.cpp | 2465 ++++++ dwarf/SB/Core/x/xShadow.cpp | 3303 ++++++++ dwarf/SB/Core/x/xShadowSimple.cpp | 3432 ++++++++ dwarf/SB/Core/x/xSkyDome.cpp | 1065 +++ dwarf/SB/Core/x/xSnd.cpp | 1716 ++++ dwarf/SB/Core/x/xSnd.h | 14 + dwarf/SB/Core/x/xSpline.cpp | 283 + dwarf/SB/Core/x/xString.cpp | 227 + dwarf/SB/Core/x/xSurface.cpp | 149 + dwarf/SB/Core/x/xTRC.cpp | 2460 ++++++ dwarf/SB/Core/x/xTimer.cpp | 2113 +++++ dwarf/SB/Core/x/xUpdateCull.cpp | 1521 ++++ dwarf/SB/Core/x/xVec3.cpp | 57 + dwarf/SB/Core/x/xVec3.h | 275 + dwarf/SB/Core/x/xVec3Inlines.h | 112 + dwarf/SB/Core/x/xVolume.cpp | 196 + dwarf/SB/Core/x/xbinio.cpp | 507 ++ dwarf/SB/Core/x/xhipio.cpp | 401 + dwarf/SB/Core/x/xordarray.cpp | 140 + dwarf/SB/Core/x/xpkrsvc.cpp | 1052 +++ dwarf/SB/Core/x/xsavegame.cpp | 1053 +++ dwarf/SB/Core/x/xserializer.cpp | 676 ++ dwarf/SB/Core/x/xstransvc.cpp | 409 + dwarf/SB/Core/x/xutil.cpp | 204 + dwarf/SB/Game/zActionLine.cpp | 190 + dwarf/SB/Game/zAnimList.cpp | 288 + dwarf/SB/Game/zAssetTypes.cpp | 2937 +++++++ dwarf/SB/Game/zBusStop.cpp | 2427 ++++++ dwarf/SB/Game/zCamMarker.cpp | 182 + dwarf/SB/Game/zCamera.cpp | 3116 +++++++ dwarf/SB/Game/zCameraFly.cpp | 2117 +++++ dwarf/SB/Game/zCameraTweak.cpp | 270 + dwarf/SB/Game/zCollGeom.cpp | 1232 +++ dwarf/SB/Game/zCombo.cpp | 2746 ++++++ dwarf/SB/Game/zConditional.cpp | 147 + dwarf/SB/Game/zCutsceneMgr.cpp | 2793 ++++++ dwarf/SB/Game/zDiscoFloor.cpp | 2759 ++++++ dwarf/SB/Game/zDispatcher.cpp | 2527 ++++++ dwarf/SB/Game/zEGenerator.cpp | 2570 ++++++ dwarf/SB/Game/zEnt.cpp | 3479 ++++++++ dwarf/SB/Game/zEntButton.cpp | 2971 +++++++ dwarf/SB/Game/zEntCruiseBubble.cpp | 6395 ++++++++++++++ dwarf/SB/Game/zEntDestructObj.cpp | 3046 +++++++ dwarf/SB/Game/zEntHangable.cpp | 2374 ++++++ dwarf/SB/Game/zEntPickup.cpp | 3347 ++++++++ dwarf/SB/Game/zEntPlayer.cpp | 9364 +++++++++++++++++++++ dwarf/SB/Game/zEntPlayerAnimationTables.h | 99 + dwarf/SB/Game/zEntPlayerBungeeState.cpp | 4650 ++++++++++ dwarf/SB/Game/zEntPlayerOOBState.cpp | 4150 +++++++++ dwarf/SB/Game/zEntSimpleObj.cpp | 3009 +++++++ dwarf/SB/Game/zEntTeleportBox.cpp | 2803 ++++++ dwarf/SB/Game/zEntTrigger.cpp | 1316 +++ dwarf/SB/Game/zEnv.cpp | 2490 ++++++ dwarf/SB/Game/zEvent.cpp | 21 + dwarf/SB/Game/zFMV.cpp | 66 + dwarf/SB/Game/zFX.cpp | 3343 ++++++++ dwarf/SB/Game/zFeet.cpp | 2079 +++++ dwarf/SB/Game/zGame.cpp | 3032 +++++++ dwarf/SB/Game/zGameExtras.cpp | 2887 +++++++ dwarf/SB/Game/zGameState.cpp | 2138 +++++ dwarf/SB/Game/zGoo.cpp | 1144 +++ dwarf/SB/Game/zGrid.cpp | 1323 +++ dwarf/SB/Game/zGust.cpp | 1522 ++++ dwarf/SB/Game/zHud.cpp | 2497 ++++++ dwarf/SB/Game/zLOD.cpp | 2362 ++++++ dwarf/SB/Game/zLasso.cpp | 1506 ++++ dwarf/SB/Game/zLight.cpp | 1472 ++++ dwarf/SB/Game/zLightEffect.cpp | 464 + dwarf/SB/Game/zLightning.cpp | 2727 ++++++ dwarf/SB/Game/zMain.cpp | 2757 ++++++ dwarf/SB/Game/zMenu.cpp | 2498 ++++++ dwarf/SB/Game/zMovePoint.cpp | 2391 ++++++ dwarf/SB/Game/zMusic.cpp | 2235 +++++ dwarf/SB/Game/zNPCFXCinematic.cpp | 5412 ++++++++++++ dwarf/SB/Game/zNPCGlyph.cpp | 2579 ++++++ dwarf/SB/Game/zNPCGoalAmbient.cpp | 3406 ++++++++ dwarf/SB/Game/zNPCGoalBoss.cpp | 332 + dwarf/SB/Game/zNPCGoalCommon.cpp | 2138 +++++ dwarf/SB/Game/zNPCGoalCommon.h | 56 + dwarf/SB/Game/zNPCGoalDuplotron.cpp | 3626 ++++++++ dwarf/SB/Game/zNPCGoalRobo.cpp | 8624 +++++++++++++++++++ dwarf/SB/Game/zNPCGoalRobo.h | 28 + dwarf/SB/Game/zNPCGoalScript.cpp | 2366 ++++++ dwarf/SB/Game/zNPCGoalStd.cpp | 4249 ++++++++++ dwarf/SB/Game/zNPCGoalStd.h | 42 + dwarf/SB/Game/zNPCGoalSubBoss.cpp | 248 + dwarf/SB/Game/zNPCGoalTiki.cpp | 2310 +++++ dwarf/SB/Game/zNPCGoalTiki.h | 84 + dwarf/SB/Game/zNPCGoalVillager.cpp | 4128 +++++++++ dwarf/SB/Game/zNPCGoals.cpp | 87 + dwarf/SB/Game/zNPCHazard.cpp | 4799 +++++++++++ dwarf/SB/Game/zNPCHazard.h | 14 + dwarf/SB/Game/zNPCMessenger.cpp | 3624 ++++++++ dwarf/SB/Game/zNPCMgr.cpp | 3666 ++++++++ dwarf/SB/Game/zNPCMgrpv.h | 14 + dwarf/SB/Game/zNPCSndLists.cpp | 89 + dwarf/SB/Game/zNPCSndTable.cpp | 214 + dwarf/SB/Game/zNPCSpawner.cpp | 3489 ++++++++ dwarf/SB/Game/zNPCSupplement.cpp | 4880 +++++++++++ dwarf/SB/Game/zNPCSupport.cpp | 4051 +++++++++ dwarf/SB/Game/zNPCSupport.h | 42 + dwarf/SB/Game/zNPCTypeAmbient.cpp | 3901 +++++++++ dwarf/SB/Game/zNPCTypeAmbient.h | 182 + dwarf/SB/Game/zNPCTypeBoss.cpp | 2238 +++++ dwarf/SB/Game/zNPCTypeBoss.h | 112 + dwarf/SB/Game/zNPCTypeBossPatrick.cpp | 5163 ++++++++++++ dwarf/SB/Game/zNPCTypeBossPlankton.cpp | 6030 +++++++++++++ dwarf/SB/Game/zNPCTypeBossPlankton.h | 84 + dwarf/SB/Game/zNPCTypeBossSB1.cpp | 3915 +++++++++ dwarf/SB/Game/zNPCTypeBossSB2.cpp | 6147 ++++++++++++++ dwarf/SB/Game/zNPCTypeBossSandy.cpp | 5239 ++++++++++++ dwarf/SB/Game/zNPCTypeCommon.cpp | 5653 +++++++++++++ dwarf/SB/Game/zNPCTypeCommon.h | 252 + dwarf/SB/Game/zNPCTypeDuplotron.cpp | 3814 +++++++++ dwarf/SB/Game/zNPCTypeDuplotron.h | 84 + dwarf/SB/Game/zNPCTypeDutchman.cpp | 5634 +++++++++++++ dwarf/SB/Game/zNPCTypeDutchman.h | 98 + dwarf/SB/Game/zNPCTypeKingJelly.cpp | 5125 +++++++++++ dwarf/SB/Game/zNPCTypeKingJelly.h | 28 + dwarf/SB/Game/zNPCTypePrawn.cpp | 4853 +++++++++++ dwarf/SB/Game/zNPCTypePrawn.h | 84 + dwarf/SB/Game/zNPCTypeRobot.cpp | 7611 +++++++++++++++++ dwarf/SB/Game/zNPCTypeRobot.h | 518 ++ dwarf/SB/Game/zNPCTypeSubBoss.cpp | 2197 +++++ dwarf/SB/Game/zNPCTypeSubBoss.h | 70 + dwarf/SB/Game/zNPCTypeTest.cpp | 2207 +++++ dwarf/SB/Game/zNPCTypeTiki.cpp | 4064 +++++++++ dwarf/SB/Game/zNPCTypeTiki.h | 154 + dwarf/SB/Game/zNPCTypeVillager.cpp | 5105 +++++++++++ dwarf/SB/Game/zNPCTypeVillager.h | 224 + dwarf/SB/Game/zNPCTypes.cpp | 115 + dwarf/SB/Game/zParCmd.cpp | 2669 ++++++ dwarf/SB/Game/zParEmitter.cpp | 2260 +++++ dwarf/SB/Game/zParPTank.cpp | 2625 ++++++ dwarf/SB/Game/zPendulum.cpp | 2366 ++++++ dwarf/SB/Game/zPickupTable.cpp | 2036 +++++ dwarf/SB/Game/zPlatform.cpp | 3323 ++++++++ dwarf/SB/Game/zPortal.cpp | 2052 +++++ dwarf/SB/Game/zRenderState.cpp | 77 + dwarf/SB/Game/zRumble.cpp | 2099 +++++ dwarf/SB/Game/zSaveLoad.cpp | 3282 ++++++++ dwarf/SB/Game/zScene.cpp | 3968 +++++++++ dwarf/SB/Game/zScript.cpp | 2380 ++++++ dwarf/SB/Game/zShrapnel.cpp | 3162 +++++++ dwarf/SB/Game/zSurface.cpp | 1702 ++++ dwarf/SB/Game/zTalkBox.cpp | 4640 ++++++++++ dwarf/SB/Game/zTalkBox.h | 42 + dwarf/SB/Game/zTaskBox.cpp | 406 + dwarf/SB/Game/zTaskBox.h | 28 + dwarf/SB/Game/zTaxi.cpp | 3278 ++++++++ dwarf/SB/Game/zTaxi.h | 56 + dwarf/SB/Game/zTextBox.cpp | 710 ++ dwarf/SB/Game/zThrown.cpp | 3392 ++++++++ dwarf/SB/Game/zUI.cpp | 3006 +++++++ dwarf/SB/Game/zUIFont.cpp | 1519 ++++ dwarf/SB/Game/zVar.cpp | 3545 ++++++++ dwarf/SB/Game/zVolume.cpp | 2117 +++++ dwarf/usr/local/sce/EE/lib/crt0.s | 7 + 285 files changed, 440406 insertions(+) create mode 100644 dwarf/SB/Core/p2/his/HISAPI.cpp create mode 100644 dwarf/SB/Core/p2/his/HisStubs.cpp create mode 100644 dwarf/SB/Core/p2/iAnim.cpp create mode 100644 dwarf/SB/Core/p2/iAnimSKB.cpp create mode 100644 dwarf/SB/Core/p2/iCollide.cpp create mode 100644 dwarf/SB/Core/p2/iCollideFast.cpp create mode 100644 dwarf/SB/Core/p2/iCutscene.cpp create mode 100644 dwarf/SB/Core/p2/iDraw.cpp create mode 100644 dwarf/SB/Core/p2/iEnv.cpp create mode 100644 dwarf/SB/Core/p2/iException.cpp create mode 100644 dwarf/SB/Core/p2/iFMV.cpp create mode 100644 dwarf/SB/Core/p2/iFX.cpp create mode 100644 dwarf/SB/Core/p2/iFXgoo.cpp create mode 100644 dwarf/SB/Core/p2/iFXshadow.cpp create mode 100644 dwarf/SB/Core/p2/iFile.cpp create mode 100644 dwarf/SB/Core/p2/iLight.cpp create mode 100644 dwarf/SB/Core/p2/iMath.cpp create mode 100644 dwarf/SB/Core/p2/iMath3.cpp create mode 100644 dwarf/SB/Core/p2/iMemMgr.cpp create mode 100644 dwarf/SB/Core/p2/iModel.cpp create mode 100644 dwarf/SB/Core/p2/iModelBucketPDS.cpp create mode 100644 dwarf/SB/Core/p2/iMorph.cpp create mode 100644 dwarf/SB/Core/p2/iPad.cpp create mode 100644 dwarf/SB/Core/p2/iParMgr.cpp create mode 100644 dwarf/SB/Core/p2/iScrFX.cpp create mode 100644 dwarf/SB/Core/p2/iSnd.cpp create mode 100644 dwarf/SB/Core/p2/iSystem.cpp create mode 100644 dwarf/SB/Core/p2/iTime.cpp create mode 100644 dwarf/SB/Core/p2/iVU0.cpp create mode 100644 dwarf/SB/Core/p2/isavegame.cpp create mode 100644 dwarf/SB/Core/p2/p2im3dhack.cpp create mode 100644 dwarf/SB/Core/p2/p2skyfs.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/audiodec.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/disp.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/ps2_mpeg.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/read.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/readbuf.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/strfile.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/vibuf.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/videodec.c create mode 100644 dwarf/SB/Core/p2/ps2_mpeg/vobuf.c create mode 100644 dwarf/SB/Core/x/containers.h create mode 100644 dwarf/SB/Core/x/iCamera.cpp create mode 100644 dwarf/SB/Core/x/xAnim.cpp create mode 100644 dwarf/SB/Core/x/xBase.cpp create mode 100644 dwarf/SB/Core/x/xBehaveGoalSimple.cpp create mode 100644 dwarf/SB/Core/x/xBehaveGoalSimple.h create mode 100644 dwarf/SB/Core/x/xBehaveMgr.cpp create mode 100644 dwarf/SB/Core/x/xBehaveMgr.h create mode 100644 dwarf/SB/Core/x/xBehaviour.cpp create mode 100644 dwarf/SB/Core/x/xBehaviour.h create mode 100644 dwarf/SB/Core/x/xBound.cpp create mode 100644 dwarf/SB/Core/x/xCM.cpp create mode 100644 dwarf/SB/Core/x/xCamera.cpp create mode 100644 dwarf/SB/Core/x/xClimate.cpp create mode 100644 dwarf/SB/Core/x/xClumpColl.cpp create mode 100644 dwarf/SB/Core/x/xCollide.cpp create mode 100644 dwarf/SB/Core/x/xCollideFast.cpp create mode 100644 dwarf/SB/Core/x/xColor.cpp create mode 100644 dwarf/SB/Core/x/xColor.h create mode 100644 dwarf/SB/Core/x/xCounter.cpp create mode 100644 dwarf/SB/Core/x/xCurveAsset.cpp create mode 100644 dwarf/SB/Core/x/xCutscene.cpp create mode 100644 dwarf/SB/Core/x/xDebug.cpp create mode 100644 dwarf/SB/Core/x/xDecal.cpp create mode 100644 dwarf/SB/Core/x/xEnt.cpp create mode 100644 dwarf/SB/Core/x/xEnt.h create mode 100644 dwarf/SB/Core/x/xEntBoulder.cpp create mode 100644 dwarf/SB/Core/x/xEntDrive.cpp create mode 100644 dwarf/SB/Core/x/xEntMotion.cpp create mode 100644 dwarf/SB/Core/x/xEnv.cpp create mode 100644 dwarf/SB/Core/x/xEvent.cpp create mode 100644 dwarf/SB/Core/x/xFFX.cpp create mode 100644 dwarf/SB/Core/x/xFX.cpp create mode 100644 dwarf/SB/Core/x/xFactory.cpp create mode 100644 dwarf/SB/Core/x/xFog.cpp create mode 100644 dwarf/SB/Core/x/xFont.cpp create mode 100644 dwarf/SB/Core/x/xFont.h create mode 100644 dwarf/SB/Core/x/xGrid.cpp create mode 100644 dwarf/SB/Core/x/xGrid.h create mode 100644 dwarf/SB/Core/x/xGroup.cpp create mode 100644 dwarf/SB/Core/x/xHud.cpp create mode 100644 dwarf/SB/Core/x/xHud.h create mode 100644 dwarf/SB/Core/x/xHudFontMeter.cpp create mode 100644 dwarf/SB/Core/x/xHudMeter.cpp create mode 100644 dwarf/SB/Core/x/xHudMeter.h create mode 100644 dwarf/SB/Core/x/xHudModel.cpp create mode 100644 dwarf/SB/Core/x/xHudText.cpp create mode 100644 dwarf/SB/Core/x/xHudUnitMeter.cpp create mode 100644 dwarf/SB/Core/x/xIni.cpp create mode 100644 dwarf/SB/Core/x/xJSP.cpp create mode 100644 dwarf/SB/Core/x/xJaw.cpp create mode 100644 dwarf/SB/Core/x/xLaserBolt.cpp create mode 100644 dwarf/SB/Core/x/xLaserBolt.h create mode 100644 dwarf/SB/Core/x/xLightKit.cpp create mode 100644 dwarf/SB/Core/x/xListItem.cpp create mode 100644 dwarf/SB/Core/x/xMath.cpp create mode 100644 dwarf/SB/Core/x/xMath.h create mode 100644 dwarf/SB/Core/x/xMath2.cpp create mode 100644 dwarf/SB/Core/x/xMath2.h create mode 100644 dwarf/SB/Core/x/xMath3.cpp create mode 100644 dwarf/SB/Core/x/xMath3.h create mode 100644 dwarf/SB/Core/x/xMathInlines.h create mode 100644 dwarf/SB/Core/x/xMemMgr.cpp create mode 100644 dwarf/SB/Core/x/xModel.cpp create mode 100644 dwarf/SB/Core/x/xModel.h create mode 100644 dwarf/SB/Core/x/xModelBucket.cpp create mode 100644 dwarf/SB/Core/x/xMorph.cpp create mode 100644 dwarf/SB/Core/x/xMovePoint.cpp create mode 100644 dwarf/SB/Core/x/xNPCBasic.cpp create mode 100644 dwarf/SB/Core/x/xNPCBasic.h create mode 100644 dwarf/SB/Core/x/xPTankPool.h create mode 100644 dwarf/SB/Core/x/xPad.cpp create mode 100644 dwarf/SB/Core/x/xPar.cpp create mode 100644 dwarf/SB/Core/x/xParCmd.cpp create mode 100644 dwarf/SB/Core/x/xParEmitter.cpp create mode 100644 dwarf/SB/Core/x/xParEmitterType.cpp create mode 100644 dwarf/SB/Core/x/xParGroup.cpp create mode 100644 dwarf/SB/Core/x/xParMgr.cpp create mode 100644 dwarf/SB/Core/x/xParSys.cpp create mode 100644 dwarf/SB/Core/x/xPartition.cpp create mode 100644 dwarf/SB/Core/x/xPtankPool.cpp create mode 100644 dwarf/SB/Core/x/xQuickCull.cpp create mode 100644 dwarf/SB/Core/x/xRMemData.cpp create mode 100644 dwarf/SB/Core/x/xRenderState.cpp create mode 100644 dwarf/SB/Core/x/xSFX.cpp create mode 100644 dwarf/SB/Core/x/xScene.cpp create mode 100644 dwarf/SB/Core/x/xScrFx.cpp create mode 100644 dwarf/SB/Core/x/xShadow.cpp create mode 100644 dwarf/SB/Core/x/xShadowSimple.cpp create mode 100644 dwarf/SB/Core/x/xSkyDome.cpp create mode 100644 dwarf/SB/Core/x/xSnd.cpp create mode 100644 dwarf/SB/Core/x/xSnd.h create mode 100644 dwarf/SB/Core/x/xSpline.cpp create mode 100644 dwarf/SB/Core/x/xString.cpp create mode 100644 dwarf/SB/Core/x/xSurface.cpp create mode 100644 dwarf/SB/Core/x/xTRC.cpp create mode 100644 dwarf/SB/Core/x/xTimer.cpp create mode 100644 dwarf/SB/Core/x/xUpdateCull.cpp create mode 100644 dwarf/SB/Core/x/xVec3.cpp create mode 100644 dwarf/SB/Core/x/xVec3.h create mode 100644 dwarf/SB/Core/x/xVec3Inlines.h create mode 100644 dwarf/SB/Core/x/xVolume.cpp create mode 100644 dwarf/SB/Core/x/xbinio.cpp create mode 100644 dwarf/SB/Core/x/xhipio.cpp create mode 100644 dwarf/SB/Core/x/xordarray.cpp create mode 100644 dwarf/SB/Core/x/xpkrsvc.cpp create mode 100644 dwarf/SB/Core/x/xsavegame.cpp create mode 100644 dwarf/SB/Core/x/xserializer.cpp create mode 100644 dwarf/SB/Core/x/xstransvc.cpp create mode 100644 dwarf/SB/Core/x/xutil.cpp create mode 100644 dwarf/SB/Game/zActionLine.cpp create mode 100644 dwarf/SB/Game/zAnimList.cpp create mode 100644 dwarf/SB/Game/zAssetTypes.cpp create mode 100644 dwarf/SB/Game/zBusStop.cpp create mode 100644 dwarf/SB/Game/zCamMarker.cpp create mode 100644 dwarf/SB/Game/zCamera.cpp create mode 100644 dwarf/SB/Game/zCameraFly.cpp create mode 100644 dwarf/SB/Game/zCameraTweak.cpp create mode 100644 dwarf/SB/Game/zCollGeom.cpp create mode 100644 dwarf/SB/Game/zCombo.cpp create mode 100644 dwarf/SB/Game/zConditional.cpp create mode 100644 dwarf/SB/Game/zCutsceneMgr.cpp create mode 100644 dwarf/SB/Game/zDiscoFloor.cpp create mode 100644 dwarf/SB/Game/zDispatcher.cpp create mode 100644 dwarf/SB/Game/zEGenerator.cpp create mode 100644 dwarf/SB/Game/zEnt.cpp create mode 100644 dwarf/SB/Game/zEntButton.cpp create mode 100644 dwarf/SB/Game/zEntCruiseBubble.cpp create mode 100644 dwarf/SB/Game/zEntDestructObj.cpp create mode 100644 dwarf/SB/Game/zEntHangable.cpp create mode 100644 dwarf/SB/Game/zEntPickup.cpp create mode 100644 dwarf/SB/Game/zEntPlayer.cpp create mode 100644 dwarf/SB/Game/zEntPlayerAnimationTables.h create mode 100644 dwarf/SB/Game/zEntPlayerBungeeState.cpp create mode 100644 dwarf/SB/Game/zEntPlayerOOBState.cpp create mode 100644 dwarf/SB/Game/zEntSimpleObj.cpp create mode 100644 dwarf/SB/Game/zEntTeleportBox.cpp create mode 100644 dwarf/SB/Game/zEntTrigger.cpp create mode 100644 dwarf/SB/Game/zEnv.cpp create mode 100644 dwarf/SB/Game/zEvent.cpp create mode 100644 dwarf/SB/Game/zFMV.cpp create mode 100644 dwarf/SB/Game/zFX.cpp create mode 100644 dwarf/SB/Game/zFeet.cpp create mode 100644 dwarf/SB/Game/zGame.cpp create mode 100644 dwarf/SB/Game/zGameExtras.cpp create mode 100644 dwarf/SB/Game/zGameState.cpp create mode 100644 dwarf/SB/Game/zGoo.cpp create mode 100644 dwarf/SB/Game/zGrid.cpp create mode 100644 dwarf/SB/Game/zGust.cpp create mode 100644 dwarf/SB/Game/zHud.cpp create mode 100644 dwarf/SB/Game/zLOD.cpp create mode 100644 dwarf/SB/Game/zLasso.cpp create mode 100644 dwarf/SB/Game/zLight.cpp create mode 100644 dwarf/SB/Game/zLightEffect.cpp create mode 100644 dwarf/SB/Game/zLightning.cpp create mode 100644 dwarf/SB/Game/zMain.cpp create mode 100644 dwarf/SB/Game/zMenu.cpp create mode 100644 dwarf/SB/Game/zMovePoint.cpp create mode 100644 dwarf/SB/Game/zMusic.cpp create mode 100644 dwarf/SB/Game/zNPCFXCinematic.cpp create mode 100644 dwarf/SB/Game/zNPCGlyph.cpp create mode 100644 dwarf/SB/Game/zNPCGoalAmbient.cpp create mode 100644 dwarf/SB/Game/zNPCGoalBoss.cpp create mode 100644 dwarf/SB/Game/zNPCGoalCommon.cpp create mode 100644 dwarf/SB/Game/zNPCGoalCommon.h create mode 100644 dwarf/SB/Game/zNPCGoalDuplotron.cpp create mode 100644 dwarf/SB/Game/zNPCGoalRobo.cpp create mode 100644 dwarf/SB/Game/zNPCGoalRobo.h create mode 100644 dwarf/SB/Game/zNPCGoalScript.cpp create mode 100644 dwarf/SB/Game/zNPCGoalStd.cpp create mode 100644 dwarf/SB/Game/zNPCGoalStd.h create mode 100644 dwarf/SB/Game/zNPCGoalSubBoss.cpp create mode 100644 dwarf/SB/Game/zNPCGoalTiki.cpp create mode 100644 dwarf/SB/Game/zNPCGoalTiki.h create mode 100644 dwarf/SB/Game/zNPCGoalVillager.cpp create mode 100644 dwarf/SB/Game/zNPCGoals.cpp create mode 100644 dwarf/SB/Game/zNPCHazard.cpp create mode 100644 dwarf/SB/Game/zNPCHazard.h create mode 100644 dwarf/SB/Game/zNPCMessenger.cpp create mode 100644 dwarf/SB/Game/zNPCMgr.cpp create mode 100644 dwarf/SB/Game/zNPCMgrpv.h create mode 100644 dwarf/SB/Game/zNPCSndLists.cpp create mode 100644 dwarf/SB/Game/zNPCSndTable.cpp create mode 100644 dwarf/SB/Game/zNPCSpawner.cpp create mode 100644 dwarf/SB/Game/zNPCSupplement.cpp create mode 100644 dwarf/SB/Game/zNPCSupport.cpp create mode 100644 dwarf/SB/Game/zNPCSupport.h create mode 100644 dwarf/SB/Game/zNPCTypeAmbient.cpp create mode 100644 dwarf/SB/Game/zNPCTypeAmbient.h create mode 100644 dwarf/SB/Game/zNPCTypeBoss.cpp create mode 100644 dwarf/SB/Game/zNPCTypeBoss.h create mode 100644 dwarf/SB/Game/zNPCTypeBossPatrick.cpp create mode 100644 dwarf/SB/Game/zNPCTypeBossPlankton.cpp create mode 100644 dwarf/SB/Game/zNPCTypeBossPlankton.h create mode 100644 dwarf/SB/Game/zNPCTypeBossSB1.cpp create mode 100644 dwarf/SB/Game/zNPCTypeBossSB2.cpp create mode 100644 dwarf/SB/Game/zNPCTypeBossSandy.cpp create mode 100644 dwarf/SB/Game/zNPCTypeCommon.cpp create mode 100644 dwarf/SB/Game/zNPCTypeCommon.h create mode 100644 dwarf/SB/Game/zNPCTypeDuplotron.cpp create mode 100644 dwarf/SB/Game/zNPCTypeDuplotron.h create mode 100644 dwarf/SB/Game/zNPCTypeDutchman.cpp create mode 100644 dwarf/SB/Game/zNPCTypeDutchman.h create mode 100644 dwarf/SB/Game/zNPCTypeKingJelly.cpp create mode 100644 dwarf/SB/Game/zNPCTypeKingJelly.h create mode 100644 dwarf/SB/Game/zNPCTypePrawn.cpp create mode 100644 dwarf/SB/Game/zNPCTypePrawn.h create mode 100644 dwarf/SB/Game/zNPCTypeRobot.cpp create mode 100644 dwarf/SB/Game/zNPCTypeRobot.h create mode 100644 dwarf/SB/Game/zNPCTypeSubBoss.cpp create mode 100644 dwarf/SB/Game/zNPCTypeSubBoss.h create mode 100644 dwarf/SB/Game/zNPCTypeTest.cpp create mode 100644 dwarf/SB/Game/zNPCTypeTiki.cpp create mode 100644 dwarf/SB/Game/zNPCTypeTiki.h create mode 100644 dwarf/SB/Game/zNPCTypeVillager.cpp create mode 100644 dwarf/SB/Game/zNPCTypeVillager.h create mode 100644 dwarf/SB/Game/zNPCTypes.cpp create mode 100644 dwarf/SB/Game/zParCmd.cpp create mode 100644 dwarf/SB/Game/zParEmitter.cpp create mode 100644 dwarf/SB/Game/zParPTank.cpp create mode 100644 dwarf/SB/Game/zPendulum.cpp create mode 100644 dwarf/SB/Game/zPickupTable.cpp create mode 100644 dwarf/SB/Game/zPlatform.cpp create mode 100644 dwarf/SB/Game/zPortal.cpp create mode 100644 dwarf/SB/Game/zRenderState.cpp create mode 100644 dwarf/SB/Game/zRumble.cpp create mode 100644 dwarf/SB/Game/zSaveLoad.cpp create mode 100644 dwarf/SB/Game/zScene.cpp create mode 100644 dwarf/SB/Game/zScript.cpp create mode 100644 dwarf/SB/Game/zShrapnel.cpp create mode 100644 dwarf/SB/Game/zSurface.cpp create mode 100644 dwarf/SB/Game/zTalkBox.cpp create mode 100644 dwarf/SB/Game/zTalkBox.h create mode 100644 dwarf/SB/Game/zTaskBox.cpp create mode 100644 dwarf/SB/Game/zTaskBox.h create mode 100644 dwarf/SB/Game/zTaxi.cpp create mode 100644 dwarf/SB/Game/zTaxi.h create mode 100644 dwarf/SB/Game/zTextBox.cpp create mode 100644 dwarf/SB/Game/zThrown.cpp create mode 100644 dwarf/SB/Game/zUI.cpp create mode 100644 dwarf/SB/Game/zUIFont.cpp create mode 100644 dwarf/SB/Game/zVar.cpp create mode 100644 dwarf/SB/Game/zVolume.cpp create mode 100644 dwarf/usr/local/sce/EE/lib/crt0.s diff --git a/dwarf/SB/Core/p2/his/HISAPI.cpp b/dwarf/SB/Core/p2/his/HISAPI.cpp new file mode 100644 index 000000000..350be5d1f --- /dev/null +++ b/dwarf/SB/Core/p2/his/HISAPI.cpp @@ -0,0 +1,194 @@ +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static char asyncRequestBuffers[4096]; // size: 0x1000, address: 0x5E3400 +static char * asyncRequestBuffer; // size: 0x4, address: 0x50F0F0 +static signed int asyncRequestCurrent; // size: 0x4, address: 0x510180 +enum HISMemoryType { + HIS_MEMORY_EE = 0, + HIS_MEMORY_IOP = 1, + HIS_MEMORY_SPU = 2, +}; +enum HISStatus { + HIS_STATUS_INVALID_ID = 0, + HIS_STATUS_DONE = 1, + HIS_STATUS_IN_PROGRESS = 2, + HIS_STATUS_IN_QUEUE = 3, + HIS_STATUS_PARTIAL = 4, + HIS_STATUS_FAILED = 5, + HIS_STATUS_CANCELLED = 6, + HIS_STATUS_DMA_WAIT = 7, +}; + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B5A0 -> 0x0034B5F4 +*/ +// Range: 0x34B5A0 -> 0x34B5F4 +void HISFlushAsyncRequestsNoWait() { + // Blocks + /* anonymous block */ { + // Range: 0x34B5A0 -> 0x34B5F4 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B600 -> 0x0034B62C +*/ +// Range: 0x34B600 -> 0x34B62C +void HISFlushAsyncRequests() { + // Blocks + /* anonymous block */ { + // Range: 0x34B600 -> 0x34B62C + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B630 -> 0x0034B684 +*/ +// Range: 0x34B630 -> 0x34B684 +void HISPlayExternalStreamAsync(signed int voice /* r2 */, signed int leftVolume /* r2 */, signed int rightVolume /* r2 */, signed int pitch /* r2 */, signed int flags /* r2 */, signed int attack /* r2 */, signed int release /* r2 */, signed int blockSize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B630 -> 0x34B684 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B690 -> 0x0034B6CC +*/ +// Range: 0x34B690 -> 0x34B6CC +void HISJoinStereoVoicesAsync(signed int voice1 /* r2 */, signed int voice2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B690 -> 0x34B6CC + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B6D0 -> 0x0034B708 +*/ +// Range: 0x34B6D0 -> 0x34B708 +void HISResumeVoiceAsync(signed int voice /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B6D0 -> 0x34B708 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B710 -> 0x0034B748 +*/ +// Range: 0x34B710 -> 0x34B748 +void HISPauseVoiceAsync(signed int voice /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B710 -> 0x34B748 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B750 -> 0x0034B788 +*/ +// Range: 0x34B750 -> 0x34B788 +void HISStopVoiceAsync(signed int voice /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B750 -> 0x34B788 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B790 -> 0x0034B7CC +*/ +// Range: 0x34B790 -> 0x34B7CC +void HISSetVoicePitchAsync(signed int voice /* r2 */, signed int pitch /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B790 -> 0x34B7CC + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B7D0 -> 0x0034B810 +*/ +// Range: 0x34B7D0 -> 0x34B810 +void HISSetVoiceVolumeAsync(signed int voice /* r2 */, signed int leftVolume /* r2 */, signed int rightVolume /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B7D0 -> 0x34B810 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B810 -> 0x0034B884 +*/ +// Range: 0x34B810 -> 0x34B884 +void HISPlayStreamAsync(signed int voice /* r2 */, signed int leftVolume /* r2 */, signed int rightVolume /* r2 */, signed int pitch /* r2 */, signed int fileIndex /* r2 */, signed int logicalSectorNumber /* r2 */, signed int dataSize /* r2 */, signed int flags /* r2 */, signed int attack /* r29 */, signed int release /* r29+0x8 */, signed int blockSize /* r29+0x10 */, signed int interleaveSectors /* r29+0x18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B810 -> 0x34B884 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B890 -> 0x0034B8E4 +*/ +// Range: 0x34B890 -> 0x34B8E4 +void HISPlaySoundAsync(signed int voice /* r2 */, signed int leftVolume /* r2 */, signed int rightVolume /* r2 */, signed int pitch /* r2 */, unsigned int address /* r2 */, signed int attack /* r2 */, signed int release /* r2 */, unsigned char paused /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B890 -> 0x34B8E4 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HISAPI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B8F0 -> 0x0034B994 +*/ +// Range: 0x34B8F0 -> 0x34B994 +enum HISStatus HISLoadBlock(signed int fileIndex /* r2 */, signed int sourceBlock /* r2 */, signed int sourceSize /* r2 */, void * destinationAddress /* r2 */, enum HISMemoryType destinationType /* r2 */, signed int priority /* r2 */, signed int flags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B8F0 -> 0x34B994 + signed int id; // r16 + enum HISStatus status; // r17 + } +} + diff --git a/dwarf/SB/Core/p2/his/HisStubs.cpp b/dwarf/SB/Core/p2/his/HisStubs.cpp new file mode 100644 index 000000000..482db8441 --- /dev/null +++ b/dwarf/SB/Core/p2/his/HisStubs.cpp @@ -0,0 +1,942 @@ +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class _sif_client_data clientData; // size: 0x28, address: 0x5E33A0 +static unsigned char asyncFire; // size: 0x1, address: 0x51017C +class _sif_serve_data { + // total size: 0x44 +public: + unsigned int command; // offset 0x0, size 0x4 + void * (* func)(unsigned int, void *, signed int); // offset 0x4, size 0x4 + void * buff; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 + void * (* cfunc)(unsigned int, void *, signed int); // offset 0x10, size 0x4 + void * cbuff; // offset 0x14, size 0x4 + signed int csize; // offset 0x18, size 0x4 + class _sif_client_data * client; // offset 0x1C, size 0x4 + void * paddr; // offset 0x20, size 0x4 + unsigned int fno; // offset 0x24, size 0x4 + void * receive; // offset 0x28, size 0x4 + signed int rsize; // offset 0x2C, size 0x4 + signed int rmode; // offset 0x30, size 0x4 + unsigned int rid; // offset 0x34, size 0x4 + class _sif_serve_data * link; // offset 0x38, size 0x4 + class _sif_serve_data * next; // offset 0x3C, size 0x4 + class _sif_queue_data * base; // offset 0x40, size 0x4 +}; +class HISRemoteVoiceTransStatusParameter { + // total size: 0x4 +public: + signed short channel; // offset 0x0, size 0x2 + signed short flag; // offset 0x2, size 0x2 +}; +class HISGetRequestDebugParameter { + // total size: 0x4 +public: + signed int requestID; // offset 0x0, size 0x4 +}; +class HISGetRequestStatusParameter { + // total size: 0x4 +public: + signed int requestID; // offset 0x0, size 0x4 +}; +class _sif_queue_data { + // total size: 0x18 +public: + signed int key; // offset 0x0, size 0x4 + signed int active; // offset 0x4, size 0x4 + class _sif_serve_data * link; // offset 0x8, size 0x4 + class _sif_serve_data * start; // offset 0xC, size 0x4 + class _sif_serve_data * end; // offset 0x10, size 0x4 + class _sif_queue_data * next; // offset 0x14, size 0x4 +}; +class HISGetRequestDebugReturn { + // total size: 0x1C +public: + class HISRequestDebug requestDebug; // offset 0x0, size 0x1C +}; +class HISLoadBlockAsyncReturn { + // total size: 0x4 +public: + signed int requestID; // offset 0x0, size 0x4 +}; +class HISFlushHostIOHandlesReturn { + // total size: 0x1 +}; +class HISInitParameter { + // total size: 0x4 +public: + enum HISMediaType mediaType; // offset 0x0, size 0x4 +}; +class HISPauseVoiceParameter { + // total size: 0x2 +public: + unsigned short voice; // offset 0x0, size 0x2 +}; +class HISGetSoundDebugVoiceReturn { + // total size: 0x20 +public: + class HISSoundDebugVoice soundDebugVoice; // offset 0x0, size 0x20 +}; +class HISDelayFrameParameter { + // total size: 0x1 +}; +class HISGetRequestStatusReturn { + // total size: 0x4 +public: + enum HISStatus currentStatus; // offset 0x0, size 0x4 +}; +class HISRemoteBlockTransStatusParameter { + // total size: 0x4 +public: + signed short channel; // offset 0x0, size 0x2 + signed short flag; // offset 0x2, size 0x2 +}; +class HISGetRequestCountParameter { + // total size: 0x1 +}; +class HISGetFileSizeParameter { + // total size: 0x4 +public: + signed int fileIndex; // offset 0x0, size 0x4 +}; +class HISSetVoicePitchParameter { + // total size: 0x4 +public: + unsigned short voice; // offset 0x0, size 0x2 + unsigned short pitch; // offset 0x2, size 0x2 +}; +class HISSetVoiceVolumeParameter { + // total size: 0x6 +public: + unsigned short voice; // offset 0x0, size 0x2 + unsigned short leftVolume; // offset 0x2, size 0x2 + unsigned short rightVolume; // offset 0x4, size 0x2 +}; +class HISPlaySoundParameter { + // total size: 0x14 +public: + unsigned int address; // offset 0x0, size 0x4 + unsigned short voice; // offset 0x4, size 0x2 + unsigned short leftVolume; // offset 0x6, size 0x2 + unsigned short rightVolume; // offset 0x8, size 0x2 + unsigned short pitch; // offset 0xA, size 0x2 + unsigned short attack; // offset 0xC, size 0x2 + unsigned short release; // offset 0xE, size 0x2 + unsigned char paused; // offset 0x10, size 0x1 +}; +class HISPauseVoiceReturn { + // total size: 0x1 +}; +class _sif_rpc_data { + // total size: 0x10 +public: + void * paddr; // offset 0x0, size 0x4 + unsigned int pid; // offset 0x4, size 0x4 + signed int tid; // offset 0x8, size 0x4 + unsigned int mode; // offset 0xC, size 0x4 +}; +class HISRemoteVoiceTransStatusReturn { + // total size: 0x4 +public: + unsigned int ret; // offset 0x0, size 0x4 +}; +class HISGetSoundDebugVoiceParameter { + // total size: 0x4 +public: + signed int voice; // offset 0x0, size 0x4 +}; +class HISDelayFrameReturn { + // total size: 0x1 +}; +class HISSoundDebug { + // total size: 0x4 +public: + unsigned short leftVolume; // offset 0x0, size 0x2 + unsigned short rightVolume; // offset 0x2, size 0x2 +}; +class HISJoinStereoVoicesParameter { + // total size: 0x4 +public: + unsigned short voice1; // offset 0x0, size 0x2 + unsigned short voice2; // offset 0x2, size 0x2 +}; +class HISGetExternalStreamBufferParameter { + // total size: 0x4 +public: + signed int voice; // offset 0x0, size 0x4 +}; +class HISInitReturn { + // total size: 0x1 +}; +class HISPlayStreamReturn { + // total size: 0x1 +}; +class HISSetVoiceVolumeReturn { + // total size: 0x1 +}; +class HISPlaySoundReturn { + // total size: 0x1 +}; +class HISGetRequestCountReturn { + // total size: 0x4 +public: + signed int count; // offset 0x0, size 0x4 +}; +class HISGetFileSizeReturn { + // total size: 0x4 +public: + signed int size; // offset 0x0, size 0x4 +}; +class HISResumeVoiceParameter { + // total size: 0x2 +public: + unsigned short voice; // offset 0x0, size 0x2 +}; +class HISRemoteBlockTransStatusReturn { + // total size: 0x4 +public: + unsigned int ret; // offset 0x0, size 0x4 +}; +class HISSetVoicePitchReturn { + // total size: 0x1 +}; +class HISGetFirstValidRequestParameter { + // total size: 0x1 +}; +class HISGetVoiceStatusParameter { + // total size: 0x1 +}; +class HISGetSoundDebugParameter { + // total size: 0x1 +}; +class HISResumeVoiceReturn { + // total size: 0x1 +}; +class HISJoinStereoVoicesReturn { + // total size: 0x1 +}; +class HISGetExternalStreamBufferReturn { + // total size: 0x4 +public: + signed int buffer; // offset 0x0, size 0x4 +}; +enum HISMediaType { + HIS_MEDIA_CDROM = 0, + HIS_MEDIA_DVD = 1, + HIS_MEDIA_HOSTIO = 2, +}; +class HISRemoteSetParamParameter { + // total size: 0x4 +public: + unsigned short reg; // offset 0x0, size 0x2 + unsigned short value; // offset 0x2, size 0x2 +}; +class HISNullParameter { + // total size: 0x1 +}; +class HISGetVersionParameter { + // total size: 0x1 +}; +class HISGetFirstValidRequestReturn { + // total size: 0x4 +public: + signed int request; // offset 0x0, size 0x4 +}; +class _sif_client_data { + // total size: 0x28 +public: + class _sif_rpc_data rpcd; // offset 0x0, size 0x10 + unsigned int command; // offset 0x10, size 0x4 + void * buff; // offset 0x14, size 0x4 + void * cbuff; // offset 0x18, size 0x4 + void (* func)(void *); // offset 0x1C, size 0x4 + void * para; // offset 0x20, size 0x4 + class _sif_serve_data * serve; // offset 0x24, size 0x4 +}; +class HISRemoteSetParamReturn { + // total size: 0x1 +}; +class HISSetMasterVolumeParameter { + // total size: 0x4 +public: + unsigned short leftVolume; // offset 0x0, size 0x2 + unsigned short rightVolume; // offset 0x2, size 0x2 +}; +class HISGetSoundDebugReturn { + // total size: 0x4 +public: + class HISSoundDebug soundDebug; // offset 0x0, size 0x4 +}; +class HISGetFreeRequestCountParameter { + // total size: 0x1 +}; +class HISCancelRequestParameter { + // total size: 0x4 +public: + signed int requestID; // offset 0x0, size 0x4 +}; +enum HISMemoryType { + HIS_MEMORY_EE = 0, + HIS_MEMORY_IOP = 1, + HIS_MEMORY_SPU = 2, +}; +class HISGetVoiceStatusReturn { + // total size: 0x8 +public: + unsigned int status[2]; // offset 0x0, size 0x8 +}; +class HISFileIndexDebug { + // total size: 0x3C +public: + signed int logicalSectorNumber; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int sizeInSectors; // offset 0x8, size 0x4 + char name[48]; // offset 0xC, size 0x30 +}; +class HISFlushHostIOHandlesParameter { + // total size: 0x1 +}; +class HISPlayStreamParameter { + // total size: 0x20 +public: + signed int fileIndex; // offset 0x0, size 0x4 + signed int logicalSectorNumber; // offset 0x4, size 0x4 + signed int dataSize; // offset 0x8, size 0x4 + signed int blockSize; // offset 0xC, size 0x4 + unsigned short voice; // offset 0x10, size 0x2 + unsigned short leftVolume; // offset 0x12, size 0x2 + unsigned short rightVolume; // offset 0x14, size 0x2 + unsigned short pitch; // offset 0x16, size 0x2 + unsigned short flags; // offset 0x18, size 0x2 + unsigned short attack; // offset 0x1A, size 0x2 + unsigned short release; // offset 0x1C, size 0x2 + unsigned short interleaveSectors; // offset 0x1E, size 0x2 +}; +class HISStopVoiceParameter { + // total size: 0x2 +public: + unsigned short voice; // offset 0x0, size 0x2 +}; +class HISNullReturn { + // total size: 0x1 +}; +class HISRemoteVoiceTransParameter { + // total size: 0x10 +public: + signed short channel; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned char * m_addr; // offset 0x4, size 0x4 + unsigned int s_addr; // offset 0x8, size 0x4 + unsigned int size; // offset 0xC, size 0x4 +}; +class HISSetMasterVolumeReturn { + // total size: 0x1 +}; +class HISGetVersionReturn { + // total size: 0x4 +public: + signed int version; // offset 0x0, size 0x4 +}; +class HISCancelRequestReturn { + // total size: 0x1 +public: + unsigned char success; // offset 0x0, size 0x1 +}; +class HISGetFileIndexParameter { + // total size: 0x30 +public: + char filename[48]; // offset 0x0, size 0x30 +}; +class HISPlayExternalStreamParameter { + // total size: 0x14 +public: + signed int blockSize; // offset 0x0, size 0x4 + unsigned short voice; // offset 0x4, size 0x2 + unsigned short leftVolume; // offset 0x6, size 0x2 + unsigned short rightVolume; // offset 0x8, size 0x2 + unsigned short pitch; // offset 0xA, size 0x2 + unsigned short flags; // offset 0xC, size 0x2 + unsigned short attack; // offset 0xE, size 0x2 + unsigned short release; // offset 0x10, size 0x2 +}; +enum HISStatus { + HIS_STATUS_INVALID_ID = 0, + HIS_STATUS_DONE = 1, + HIS_STATUS_IN_PROGRESS = 2, + HIS_STATUS_IN_QUEUE = 3, + HIS_STATUS_PARTIAL = 4, + HIS_STATUS_FAILED = 5, + HIS_STATUS_CANCELLED = 6, + HIS_STATUS_DMA_WAIT = 7, +}; +class HISGetFreeRequestCountReturn { + // total size: 0x4 +public: + signed int count; // offset 0x0, size 0x4 +}; +class HISStopVoiceReturn { + // total size: 0x1 +}; +class HISGetFileIndexReturn { + // total size: 0x4 +public: + signed int index; // offset 0x0, size 0x4 +}; +class HISTestParameter { + // total size: 0x44 +public: + signed int testValue; // offset 0x0, size 0x4 + char testString[64]; // offset 0x4, size 0x40 +}; +class HISSoundDebugVoice { + // total size: 0x20 +public: + unsigned int address; // offset 0x0, size 0x4 + unsigned short leftVolume; // offset 0x4, size 0x2 + unsigned short rightVolume; // offset 0x6, size 0x2 + unsigned short pitch; // offset 0x8, size 0x2 + unsigned short envelope; // offset 0xA, size 0x2 + unsigned char kon; // offset 0xC, size 0x1 + unsigned char koff; // offset 0xD, size 0x1 + unsigned char endx; // offset 0xE, size 0x1 + unsigned char external; // offset 0xF, size 0x1 + unsigned char streaming; // offset 0x10, size 0x1 + unsigned char reading; // offset 0x11, size 0x1 + unsigned char readingBuffer; // offset 0x12, size 0x1 + unsigned char byteMode; // offset 0x13, size 0x1 + union { // inferred + signed int currentSector; // offset 0x14, size 0x4 + signed int currentOffset; // offset 0x14, size 0x4 + }; + signed int sectorsLeft; // offset 0x18, size 0x4 + signed int dataSize; // offset 0x1C, size 0x4 +}; +class HISRemoteVoiceTransReturn { + // total size: 0x4 +public: + signed int ret; // offset 0x0, size 0x4 +}; +class HISGetFileIndexDebugParameter { + // total size: 0x4 +public: + signed int fileIndex; // offset 0x0, size 0x4 +}; +class HISCloseRequestParameter { + // total size: 0x4 +public: + signed int requestID; // offset 0x0, size 0x4 +}; +class HISRemoteBlockTransParameter { + // total size: 0x10 +public: + signed short channel; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned char * m_addr; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + unsigned char * start_addr; // offset 0xC, size 0x4 +}; +class HISGetFileIndexDebugReturn { + // total size: 0x3C +public: + class HISFileIndexDebug fileIndexDebug; // offset 0x0, size 0x3C +}; +class HISPlayExternalStreamReturn { + // total size: 0x1 +}; +class HISWaitForRequestParameter { + // total size: 0x1 +}; +class HISCloseRequestReturn { + // total size: 0x1 +public: + unsigned char success; // offset 0x0, size 0x1 +}; +class HISRequestDebug { + // total size: 0x1C +public: + class /* @class */ { + // total size: 0x4 + public: + signed int nextRequest : 8; // offset 0x0, size 0x4 + enum HISStatus status : 8; // offset 0x0, size 0x4 + enum HISMemoryType destinationType : 8; // offset 0x0, size 0x4 + } small; // offset 0x0, size 0x4 + signed int destination; // offset 0x4, size 0x4 + signed int currentPriority; // offset 0x8, size 0x4 + signed int originalPriority; // offset 0xC, size 0x4 + signed int fileIndex; // offset 0x10, size 0x4 + signed int startSector; // offset 0x14, size 0x4 + signed int sectorsToRead; // offset 0x18, size 0x4 +}; +class HISRemoteBlockTransReturn { + // total size: 0x4 +public: + signed int ret; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + signed int nextRequest : 8; // offset 0x0, size 0x4 + enum HISStatus status : 8; // offset 0x0, size 0x4 + enum HISMemoryType destinationType : 8; // offset 0x0, size 0x4 +}; +class HISTestReturn { + // total size: 0x4 +public: + signed int returnValue; // offset 0x0, size 0x4 +}; +class HISLoadBlockAsyncParameter { + // total size: 0x1C +public: + signed int fileIndex; // offset 0x0, size 0x4 + signed int sourceBlock; // offset 0x4, size 0x4 + signed int sourceSize; // offset 0x8, size 0x4 + void * destinationAddress; // offset 0xC, size 0x4 + enum HISMemoryType destinationType; // offset 0x10, size 0x4 + signed int priority; // offset 0x14, size 0x4 + signed int flags; // offset 0x18, size 0x4 +}; +class HISWaitForRequestReturn { + // total size: 0x1 +}; +class HISWaitForAllRequestsParameter { + // total size: 0x1 +}; +class HISLoadExternalStreamParameter { + // total size: 0x8 +public: + unsigned short voice; // offset 0x0, size 0x2 + unsigned short buffer; // offset 0x2, size 0x2 + void * address; // offset 0x4, size 0x4 +}; +class HISWaitForAllRequestsReturn { + // total size: 0x1 +}; +class HISLoadExternalStreamReturn { + // total size: 0x1 +}; + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A4D0 -> 0x0034A57C +*/ +// Range: 0x34A4D0 -> 0x34A57C +void HISRemoteSetParam(unsigned short reg /* r19 */, unsigned short value /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A4D0 -> 0x34A57C + char inputBuffer[20]; // r29+0x80 + class HISRemoteSetParamParameter * input; // r17 + char outputBuffer[17]; // r29+0x60 + class HISRemoteSetParamReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A580 -> 0x0034A664 +*/ +// Range: 0x34A580 -> 0x34A664 +signed int HISRemoteVoiceTrans(signed short channel /* r20 */, unsigned short mode /* r19 */, unsigned char * m_addr /* r18 */, unsigned int s_addr /* r21 */, unsigned int size /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A580 -> 0x34A664 + char inputBuffer[32]; // r29+0xB0 + class HISRemoteVoiceTransParameter * input; // r17 + char outputBuffer[20]; // r29+0x90 + class HISRemoteVoiceTransReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A670 -> 0x0034A720 +*/ +// Range: 0x34A670 -> 0x34A720 +unsigned int HISRemoteBlockTransStatus(signed short channel /* r19 */, signed short flag /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A670 -> 0x34A720 + char inputBuffer[20]; // r29+0x80 + class HISRemoteBlockTransStatusParameter * input; // r17 + char outputBuffer[20]; // r29+0x60 + class HISRemoteBlockTransStatusReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A720 -> 0x0034A804 +*/ +// Range: 0x34A720 -> 0x34A804 +signed int HISRemoteBlockTrans(signed short channel /* r20 */, unsigned short mode /* r19 */, unsigned char * m_addr /* r18 */, unsigned int size /* r21 */, unsigned char * start_addr /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A720 -> 0x34A804 + char inputBuffer[32]; // r29+0xB0 + class HISRemoteBlockTransParameter * input; // r17 + char outputBuffer[20]; // r29+0x90 + class HISRemoteBlockTransReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A810 -> 0x0034A8B4 +*/ +// Range: 0x34A810 -> 0x34A8B4 +signed int HISGetExternalStreamBuffer(signed int voice /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A810 -> 0x34A8B4 + char inputBuffer[20]; // r29+0x70 + class HISGetExternalStreamBufferParameter * input; // r17 + char outputBuffer[20]; // r29+0x50 + class HISGetExternalStreamBufferReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A8C0 -> 0x0034A980 +*/ +// Range: 0x34A8C0 -> 0x34A980 +void HISLoadExternalStream(signed int voice /* r20 */, signed int buffer /* r19 */, void * address /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A8C0 -> 0x34A980 + char inputBuffer[24]; // r29+0x90 + class HISLoadExternalStreamParameter * input; // r17 + char outputBuffer[17]; // r29+0x70 + class HISLoadExternalStreamReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A980 -> 0x0034AA2C +*/ +// Range: 0x34A980 -> 0x34AA2C +void HISSetMasterVolume(signed int leftVolume /* r19 */, signed int rightVolume /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A980 -> 0x34AA2C + char inputBuffer[20]; // r29+0x80 + class HISSetMasterVolumeParameter * input; // r17 + char outputBuffer[17]; // r29+0x60 + class HISSetMasterVolumeReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AA30 -> 0x0034AAEC +*/ +// Range: 0x34AA30 -> 0x34AAEC +void HISGetVoiceStatus(unsigned int * data /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34AA30 -> 0x34AAEC + char inputBuffer[17]; // r29+0x70 + class HISGetVoiceStatusParameter * input; // r18 + char outputBuffer[24]; // r29+0x50 + class HISGetVoiceStatusReturn * output; // r16 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AAF0 -> 0x0034AB6C +*/ +// Range: 0x34AAF0 -> 0x34AB6C +void _HISBatchSoundCommandsNoWait(void * data /* r17 */, signed int size /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34AAF0 -> 0x34AB6C + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AB70 -> 0x0034ABEC +*/ +// Range: 0x34AB70 -> 0x34ABEC +void HISBatchSoundCommands(void * data /* r17 */, signed int size /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34AB70 -> 0x34ABEC + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034ABF0 -> 0x0034ACE4 +*/ +// Range: 0x34ABF0 -> 0x34ACE4 +void HISGetFileIndexDebug(signed int fileIndex /* r19 */, class HISFileIndexDebug * fileIndexDebug /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34ABF0 -> 0x34ACE4 + char inputBuffer[20]; // r29+0xB0 + class HISGetFileIndexDebugParameter * input; // r18 + char outputBuffer[76]; // r29+0x60 + class HISGetFileIndexDebugReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034ACF0 -> 0x0034AD80 +*/ +// Range: 0x34ACF0 -> 0x34AD80 +signed int HISGetFirstValidRequest() { + // Blocks + /* anonymous block */ { + // Range: 0x34ACF0 -> 0x34AD80 + char inputBuffer[17]; // r29+0x60 + class HISGetFirstValidRequestParameter * input; // r17 + char outputBuffer[20]; // r29+0x40 + class HISGetFirstValidRequestReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AD80 -> 0x0034AE64 +*/ +// Range: 0x34AD80 -> 0x34AE64 +void HISGetRequestDebug(signed int requestID /* r19 */, class HISRequestDebug * requestDebug /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34AD80 -> 0x34AE64 + char inputBuffer[20]; // r29+0x90 + class HISGetRequestDebugParameter * input; // r18 + char outputBuffer[44]; // r29+0x60 + class HISGetRequestDebugReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AE70 -> 0x0034AEFC +*/ +// Range: 0x34AE70 -> 0x34AEFC +void HISFlushHostIOHandles() { + // Blocks + /* anonymous block */ { + // Range: 0x34AE70 -> 0x34AEFC + char inputBuffer[17]; // r29+0x60 + class HISFlushHostIOHandlesParameter * input; // r17 + char outputBuffer[17]; // r29+0x40 + class HISFlushHostIOHandlesReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AF00 -> 0x0034AFA4 +*/ +// Range: 0x34AF00 -> 0x34AFA4 +signed int HISGetFileSize(signed int fileIndex /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34AF00 -> 0x34AFA4 + char inputBuffer[20]; // r29+0x70 + class HISGetFileSizeParameter * input; // r17 + char outputBuffer[20]; // r29+0x50 + class HISGetFileSizeReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034AFB0 -> 0x0034B03C +*/ +// Range: 0x34AFB0 -> 0x34B03C +void HISWaitForRequest() { + // Blocks + /* anonymous block */ { + // Range: 0x34AFB0 -> 0x34B03C + char inputBuffer[17]; // r29+0x60 + class HISWaitForRequestParameter * input; // r17 + char outputBuffer[17]; // r29+0x40 + class HISWaitForRequestReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B040 -> 0x0034B0E4 +*/ +// Range: 0x34B040 -> 0x34B0E4 +unsigned char HISCloseRequest(signed int requestID /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B040 -> 0x34B0E4 + char inputBuffer[20]; // r29+0x70 + class HISCloseRequestParameter * input; // r17 + char outputBuffer[17]; // r29+0x50 + class HISCloseRequestReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B0F0 -> 0x0034B194 +*/ +// Range: 0x34B0F0 -> 0x34B194 +unsigned char HISCancelRequest(signed int requestID /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B0F0 -> 0x34B194 + char inputBuffer[20]; // r29+0x70 + class HISCancelRequestParameter * input; // r17 + char outputBuffer[17]; // r29+0x50 + class HISCancelRequestReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B1A0 -> 0x0034B244 +*/ +// Range: 0x34B1A0 -> 0x34B244 +enum HISStatus HISGetRequestStatus(signed int requestID /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B1A0 -> 0x34B244 + char inputBuffer[20]; // r29+0x70 + class HISGetRequestStatusParameter * input; // r17 + char outputBuffer[20]; // r29+0x50 + class HISGetRequestStatusReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B250 -> 0x0034B364 +*/ +// Range: 0x34B250 -> 0x34B364 +signed int HISLoadBlockAsync(signed int fileIndex /* r21 */, signed int sourceBlock /* r22 */, signed int sourceSize /* r20 */, void * destinationAddress /* r19 */, enum HISMemoryType destinationType /* r18 */, signed int priority /* r23 */, signed int flags /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B250 -> 0x34B364 + char inputBuffer[44]; // r29+0xD0 + class HISLoadBlockAsyncParameter * input; // r17 + char outputBuffer[20]; // r29+0xB0 + class HISLoadBlockAsyncReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B370 -> 0x0034B41C +*/ +// Range: 0x34B370 -> 0x34B41C +signed int HISGetFileIndex(char * filename /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B370 -> 0x34B41C + char inputBuffer[64]; // r29+0x70 + class HISGetFileIndexParameter * input; // r17 + char outputBuffer[20]; // r29+0x50 + class HISGetFileIndexReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B420 -> 0x0034B4B0 +*/ +// Range: 0x34B420 -> 0x34B4B0 +signed int HISGetVersion() { + // Blocks + /* anonymous block */ { + // Range: 0x34B420 -> 0x34B4B0 + char inputBuffer[17]; // r29+0x60 + class HISGetVersionParameter * input; // r17 + char outputBuffer[20]; // r29+0x40 + class HISGetVersionReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B4B0 -> 0x0034B550 +*/ +// Range: 0x34B4B0 -> 0x34B550 +void HISInit(enum HISMediaType mediaType /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B4B0 -> 0x34B550 + char inputBuffer[20]; // r29+0x70 + class HISInitParameter * input; // r17 + char outputBuffer[17]; // r29+0x50 + class HISInitReturn * output; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\his\HisStubs.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B550 -> 0x0034B594 +*/ +// Range: 0x34B550 -> 0x34B594 +void HISInitStubs() { + // Blocks + /* anonymous block */ { + // Range: 0x34B550 -> 0x34B594 + } +} + diff --git a/dwarf/SB/Core/p2/iAnim.cpp b/dwarf/SB/Core/p2/iAnim.cpp new file mode 100644 index 000000000..bc092255e --- /dev/null +++ b/dwarf/SB/Core/p2/iAnim.cpp @@ -0,0 +1,130 @@ +/* + Compile unit: C:\SB\Core\p2\iAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned char scratchBuffer[9120]; // size: 0x23A0, address: 0x53CCF0 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RtQuat { + // total size: 0x10 +public: + class RwV3d imag; // offset 0x0, size 0xC + float real; // offset 0xC, size 0x4 +}; +class RtQuatSlerpCache { + // total size: 0x28 +public: + class RtQuat raFrom; // offset 0x0, size 0x10 + class RtQuat raTo; // offset 0x10, size 0x10 + float omega; // offset 0x20, size 0x4 + signed int nearlyZeroOm; // offset 0x24, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB110 -> 0x001BB984 +*/ +// Range: 0x1BB110 -> 0x1BB984 +void iAnimBlend(float BlendFactor /* r22 */, float BlendRecip /* r29+0x160 */, unsigned short * BlendTimeOffset /* r29+0xEC */, float * BoneTable /* r29+0xE8 */, unsigned int BoneCount /* r23 */, class xVec3 * Tran1 /* r21 */, class xQuat * Quat1 /* r20 */, class xVec3 * Tran2 /* r2 */, class xQuat * Quat2 /* r30 */, class xVec3 * TranDest /* r19 */, class xQuat * QuatDest /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BB110 -> 0x1BB984 + unsigned int i; // r22 + unsigned int invert; // r29+0xD0 + class RtQuat * q2; // r17 + class RtQuat ident; // r29+0x150 + class xVec3 * t2; // r16 + float lerp; // r21 + class RtQuatSlerpCache qcache; // r29+0x120 + float rSclFrom; // r1 + float rSclTo; // r29+0x160 + float z; // r10 + float z; // r10 + float baselerp; // r21 + float lerp; // r20 + class RtQuatSlerpCache qcache; // r29+0xF0 + float rSclFrom; // r1 + float rSclTo; // r29+0x160 + float z; // r10 + float z; // r10 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB990 -> 0x001BB9B0 +*/ +// Range: 0x1BB990 -> 0x1BB9B0 +unsigned int iAnimBoneCount(void * RawData /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BB990 -> 0x1BB9B0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB9B0 -> 0x001BB9B8 +*/ +// Range: 0x1BB9B0 -> 0x1BB9B8 +float iAnimDuration(void * RawData /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BB9B0 -> 0x1BB9B8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB9C0 -> 0x001BB9C8 +*/ +// Range: 0x1BB9C0 -> 0x1BB9C8 +void iAnimEval(void * RawData /* r2 */, float time /* r29 */, unsigned int flags /* r2 */, class xVec3 * tran /* r2 */, class xQuat * quat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BB9C0 -> 0x1BB9C8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB9D0 -> 0x001BB9D8 +*/ +// Range: 0x1BB9D0 -> 0x1BB9D8 +void iAnimInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1BB9D0 -> 0x1BB9D8 + } +} + diff --git a/dwarf/SB/Core/p2/iAnimSKB.cpp b/dwarf/SB/Core/p2/iAnimSKB.cpp new file mode 100644 index 000000000..e21af8af1 --- /dev/null +++ b/dwarf/SB/Core/p2/iAnimSKB.cpp @@ -0,0 +1,180 @@ +/* + Compile unit: C:\SB\Core\p2\iAnimSKB.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +float slerpPolynomial[24]; // size: 0x60, address: 0x416CA0 +signed int CmpBoneTime(void *, void *); // size: 0x0, address: 0x0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int CmpTime(void *, void *); // size: 0x0, address: 0x0 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class ANMHeader { + // total size: 0x20 +public: + unsigned int chunkType; // offset 0x0, size 0x4 + unsigned int chunkLength; // offset 0x4, size 0x4 + unsigned int chunkVersion; // offset 0x8, size 0x4 + signed int hanimVersion; // offset 0xC, size 0x4 + signed int hanimTypeID; // offset 0x10, size 0x4 + unsigned int numFrames; // offset 0x14, size 0x4 + signed int flags; // offset 0x18, size 0x4 + float duration; // offset 0x1C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class iAnimSKBHeader { + // total size: 0x1C +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + unsigned short BoneCount; // offset 0x8, size 0x2 + unsigned short TimeCount; // offset 0xA, size 0x2 + unsigned int KeyCount; // offset 0xC, size 0x4 + float Scale[3]; // offset 0x10, size 0xC +}; +class iAnimSKBKey { + // total size: 0x10 +public: + unsigned short TimeIndex; // offset 0x0, size 0x2 + signed short Quat[4]; // offset 0x2, size 0x8 + signed short Tran[3]; // offset 0xA, size 0x6 +}; +class SKAKey { + // total size: 0x24 +public: + float quat[4]; // offset 0x0, size 0x10 + float tran[3]; // offset 0x10, size 0xC + float time; // offset 0x1C, size 0x4 + unsigned int prevFrame; // offset 0x20, size 0x4 +}; +class ANMKey { + // total size: 0x24 +public: + float time; // offset 0x0, size 0x4 + float quat[4]; // offset 0x4, size 0x10 + float tran[3]; // offset 0x14, size 0xC + unsigned int prevFrame; // offset 0x20, size 0x4 +}; +class SKAHeader { + // total size: 0xC +public: + unsigned int numFrames; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + float duration; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iAnimSKB.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4410 -> 0x001A49C8 +*/ +// Range: 0x1A4410 -> 0x1A49C8 +signed int _iAnimSKBExtractTranslate(class iAnimSKBHeader * data /* r2 */, unsigned int bone /* r2 */, class xVec3 * tranArray /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A4410 -> 0x1A49C8 + unsigned int i; // r14 + unsigned int j; // r13 + unsigned int keylast; // r12 + unsigned int tcount; // r2 + class iAnimSKBKey * keys; // r13 + float * times; // r11 + unsigned short * offsets; // r8 + class xVec3 * lastTran; // r10 + signed int tranFound; // r2 + signed int lastTime; // r9 + signed int currTime; // r8 + float lerp; // r7 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnimSKB.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A49D0 -> 0x001A4EA8 +*/ +// Range: 0x1A49D0 -> 0x1A4EA8 +void _iAnimSKBAdjustTranslate(class iAnimSKBHeader * data /* r2 */, unsigned int bone /* r2 */, float * starttran /* r2 */, float * endtran /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A49D0 -> 0x1A4EA8 + signed int ipos; // r16 + unsigned int i; // r14 + unsigned int idx; // r13 + unsigned int keyfirst; // r12 + unsigned int keylast; // r11 + unsigned int kcount; // r10 + unsigned int bcount; // r12 + unsigned int tcount; // r11 + float outScale[3]; // r29+0x40 + float pos; // r8 + float factor[3]; // r29+0x30 + float oldmax[3]; // r29+0x20 + float newmax[3]; // r29+0x10 + float timefirst; // r1 + float timelast; // r29+0x50 + class iAnimSKBKey * keys; // r9 + float * times; // r8 + unsigned short * offsets; // r13 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnimSKB.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4EB0 -> 0x001A4ED0 +*/ +// Range: 0x1A4EB0 -> 0x1A4ED0 +float iAnimDurationSKB(class iAnimSKBHeader * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A4EB0 -> 0x1A4ED0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iAnimSKB.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4ED0 -> 0x001A5498 +*/ +// Range: 0x1A4ED0 -> 0x1A5498 +void iAnimEvalSKB(class iAnimSKBHeader * data /* r2 */, float time /* r29 */, unsigned int flags /* r2 */, class xVec3 * tran /* r13 */, class xQuat * quat /* r12 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A4ED0 -> 0x1A5498 + unsigned int i; // r11 + unsigned int tidx; // r11 + unsigned int bcount; // r10 + unsigned int tcount; // r6 + class iAnimSKBKey * keys; // r9 + float * times; // r8 + unsigned short * offsets; // r3 + signed int asdf; // r2 + float scalex; // r29 + float scaley; // r29 + float scalez; // r29 + class iAnimSKBKey * k; // r5 + float time1; // r2 + float time2; // r29 + float lerp; // r29 + class iAnimSKBKey * k; // r6 + unsigned int costheta; // r2 + unsigned int theta; // r6 + } +} + diff --git a/dwarf/SB/Core/p2/iCollide.cpp b/dwarf/SB/Core/p2/iCollide.cpp new file mode 100644 index 000000000..a474b85e5 --- /dev/null +++ b/dwarf/SB/Core/p2/iCollide.cpp @@ -0,0 +1,1364 @@ +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int sCollidingJSP; // size: 0x4, address: 0x50F794 +static float cbath; // size: 0x4, address: 0x50F798 +static class xRay3 cbray; // size: 0x24, address: 0x5327E0 +static class xMat3x3 * cbmat; // size: 0x4, address: 0x50F79C +static class RpIntersection cbisx_local; // size: 0x1C, address: 0x532810 +static unsigned char cbnumcs; // size: 0x1, address: 0x50F7A0 +static unsigned char cbmaxcs; // size: 0x1, address: 0x50F7A4 +static unsigned char FLOOR; // size: 0x1, address: 0x50F7A8 +static unsigned char NEXT2; // size: 0x1, address: 0x50F7AC +static unsigned char OTHER; // size: 0x1, address: 0x50F7B0 +signed long build_mytime; // size: 0x4, address: 0x0 +signed long build_rwtime; // size: 0x4, address: 0x0 +signed long collide_mytime; // size: 0x4, address: 0x0 +signed long collide_rwtime; // size: 0x4, address: 0x50F7B8 +signed int build_myct; // size: 0x4, address: 0x0 +signed int build_rwct; // size: 0x4, address: 0x0 +signed int collide_myct; // size: 0x4, address: 0x0 +signed int collide_rwct; // size: 0x4, address: 0x50F7C0 +float build_mytime_secs; // size: 0x4, address: 0x0 +float build_rwtime_secs; // size: 0x4, address: 0x0 +float collide_mytime_secs; // size: 0x4, address: 0x0 +float collide_rwtime_secs; // size: 0x4, address: 0x50F7C4 +class RpMorphTarget anim_coll_old_mt; // size: 0x1C, address: 0x568BD0 +class RpCollisionTriangle * rayHitsModelBackwardCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6A60 +class RpCollisionTriangle * rayHitsModelCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6A80 +class RpCollisionTriangle * rayHitsEnvBackwardCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6AA0 +class RpCollisionTriangle * rayHitsEnvCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6B50 +class RpCollisionTriangle * sphereHitsModel3CB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6C50 +class RpCollisionTriangle * sphereHitsEnv4CB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6C70 +class RpCollisionTriangle * sphereHitsEnv3CB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A6EA0 +class RpCollisionTriangle * sphereHitsEnvCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1A75B0 +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum Dimension { + XDIM = 0, + YDIM = 1, + ZDIM = 2, +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A54A0 -> 0x001A55C8 +*/ +// Range: 0x1A54A0 -> 0x1A55C8 +void iBoxForModelLocal(class xBox * o /* r20 */, class xModelInstance * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A54A0 -> 0x1A55C8 + class RpAtomic * imodel; // r4 + class RpGeometry * geom; // r19 + class RpMorphTarget * mtgt; // r18 + unsigned short idx; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A55D0 -> 0x001A5668 +*/ +// Range: 0x1A55D0 -> 0x1A5668 +void iBoxForModel(class xBox * o /* r17 */, class xModelInstance * m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A55D0 -> 0x1A5668 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A5670 -> 0x001A5758 +*/ +// Range: 0x1A5670 -> 0x1A5758 +void iSphereForModel(class xSphere * o /* r20 */, class xModelInstance * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A5670 -> 0x1A5758 + class RpAtomic * imodel; // r4 + class RpGeometry * geom; // r19 + class RpMorphTarget * mtgt; // r18 + unsigned short idx; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A5760 -> 0x001A5BE0 +*/ +// Range: 0x1A5760 -> 0x1A5BE0 +unsigned int iRayHitsModel(class xRay3 * r /* r19 */, class xModelInstance * m /* r18 */, class xCollis * coll /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A5760 -> 0x1A5BE0 + class RpIntersection isx; // r29+0x60 + float len; // r1 + class xMat4x3 * mat; // r16 + class RwV3d temp; // r29+0xA0 + class xVec3 center; // r29+0x90 + class xVec3 heading; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A5BE0 -> 0x001A5EB0 +*/ +// Range: 0x1A5BE0 -> 0x1A5EB0 +unsigned int iRayHitsEnv(class xRay3 * r /* r18 */, class xEnv * env /* r17 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A5BE0 -> 0x1A5EB0 + class RpIntersection isx; // r29+0x40 + float len; // r1 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A5EB0 -> 0x001A64E4 +*/ +// Range: 0x1A5EB0 -> 0x1A64E4 +signed int iSphereHitsModel3(class xSphere * b /* r17 */, class xModelInstance * m /* r20 */, class xCollis * colls /* r19 */, unsigned char ncolls /* r21 */, float sth /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A5EB0 -> 0x1A64E4 + class RpIntersection isx; // r29+0x110 + unsigned char idx; // r6 + unsigned char i; // r5 + class xMat4x3 * mat; // r18 + float mscale; // r20 + class xMat3x3 mnormal; // r29+0xE0 + signed long t0; // r16 + signed long t1; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A64F0 -> 0x001A676C +*/ +// Range: 0x1A64F0 -> 0x1A676C +signed int iSphereHitsEnv4(class xSphere * b /* r19 */, class xEnv * env /* r18 */, class xMat3x3 * mat /* r16 */, class xCollis * colls /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A64F0 -> 0x1A676C + class RpIntersection isx; // r29+0x50 + class xCollis * c; // r4 + class xCollis * cend; // r16 + signed int numcs; // r2 + float s; // r1 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6770 -> 0x001A6978 +*/ +// Range: 0x1A6770 -> 0x1A6978 +signed int iSphereHitsEnv3(class xSphere * b /* r4 */, class xEnv * env /* r18 */, class xCollis * colls /* r17 */, unsigned char ncolls /* r16 */, float sth /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6770 -> 0x1A6978 + class RpIntersection isx; // r29+0x50 + unsigned char idx; // r7 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6980 -> 0x001A6A5C +*/ +// Range: 0x1A6980 -> 0x1A6A5C +unsigned int iSphereHitsEnv(class xSphere * b /* r4 */, class xEnv * env /* r17 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6980 -> 0x1A6A5C + class RpIntersection isx; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6A60 -> 0x001A6A74 +*/ +// Range: 0x1A6A60 -> 0x1A6A74 +static class RpCollisionTriangle * rayHitsModelBackwardCB(class RpIntersection * isx /* r2 */, class RpCollisionTriangle * tri /* r2 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6A60 -> 0x1A6A74 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6A80 -> 0x001A6A94 +*/ +// Range: 0x1A6A80 -> 0x1A6A94 +static class RpCollisionTriangle * rayHitsModelCB(class RpIntersection * isx /* r2 */, class RpCollisionTriangle * tri /* r2 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6A80 -> 0x1A6A94 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6AA0 -> 0x001A6B48 +*/ +// Range: 0x1A6AA0 -> 0x1A6B48 +static class RpCollisionTriangle * rayHitsEnvBackwardCB(class RpWorldSector * sector /* r2 */, class RpCollisionTriangle * tri /* r2 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6AA0 -> 0x1A6B48 + class xCollis * coll; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6B50 -> 0x001A6C50 +*/ +// Range: 0x1A6B50 -> 0x1A6C50 +static class RpCollisionTriangle * rayHitsEnvCB(class RpWorldSector * sector /* r2 */, class RpCollisionTriangle * tri /* r2 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6B50 -> 0x1A6C50 + class xCollis * coll; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6C50 -> 0x001A6C68 +*/ +// Range: 0x1A6C50 -> 0x1A6C68 +static class RpCollisionTriangle * sphereHitsModel3CB(class RpCollisionTriangle * tri /* r5 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6C50 -> 0x1A6C68 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6C70 -> 0x001A6E9C +*/ +// Range: 0x1A6C70 -> 0x1A6E9C +static class RpCollisionTriangle * sphereHitsEnv4CB(class RpIntersection * isx /* r2 */, class RpWorldSector * sector /* r18 */, class RpCollisionTriangle * tri /* r17 */, float dist /* r29+0x5C */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6C70 -> 0x1A6E9C + class xCollis * colls; // r16 + float radius; // r20 + class xVec3 tohit; // r29+0xB0 + class xCollis temp; // r29+0x60 + unsigned char idx; // r2 + class xCollis * c; // r2 + float ddist; // r1 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A6EA0 -> 0x001A75AC +*/ +// Range: 0x1A6EA0 -> 0x1A75AC +static class RpCollisionTriangle * sphereHitsEnv3CB(class RpIntersection * isx /* r2 */, class RpWorldSector * sector /* r18 */, class RpCollisionTriangle * tri /* r17 */, float dist /* r29+0x5C */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A6EA0 -> 0x1A75AC + class xCollis * colls; // r16 + float radius; // r20 + class xVec3 * center; // r2 + class xVec3 tohit; // r29+0x70 + class xVec3 hdng; // r29+0x60 + unsigned char idx; // r2 + float dot; // r1 + float odot; // r1 + float ndot; // r1 + float scale; // r1 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A75B0 -> 0x001A7788 +*/ +// Range: 0x1A75B0 -> 0x1A7788 +class RpCollisionTriangle * sphereHitsEnvCB(class RpIntersection * isx /* r2 */, class RpCollisionTriangle * tri /* r17 */, float dist /* r29+0x4C */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A75B0 -> 0x1A7788 + class xCollis * coll; // r16 + float radius; // r20 + class xVec3 * center; // r2 + class xVec3 tohit; // r29+0x50 + float scale; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7790 -> 0x001A79B8 +*/ +// Range: 0x1A7790 -> 0x1A79B8 +static void properSphereIsectTri(class xVec3 * center /* r20 */, float radius /* r22 */, class xVec3 * tohit /* r19 */, float * dist_ptr /* r18 */, class RpCollisionTriangle * tri /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A7790 -> 0x1A79B8 + class xVec3 projPoint; // r29+0x90 + float dist2plane; // r21 + float dist; // r20 + float dist2; // r21 + float radius2; // r20 + unsigned int i; // r16 + class xVec3 vertClosestPoint; // r29+0x80 + float vertDist2; // r29+0xA0 + class xVec3 temp; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A79C0 -> 0x001A7AA0 +*/ +// Range: 0x1A79C0 -> 0x1A7AA0 +void FindNearestPointOnLine(class xVec3 * _result /* r2 */, class xVec3 * _point /* r2 */, class xVec3 * _start /* r2 */, class xVec3 * _end /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A79C0 -> 0x1A7AA0 + class RwV3d * result; // r2 + class RwV3d * point; // r2 + class RwV3d * start; // r2 + class RwV3d * end; // r2 + float mu; // r3 + float lineLength2; // r29 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7AA0 -> 0x001A7E30 +*/ +// Range: 0x1A7AA0 -> 0x1A7E30 +signed int PointWithinTriangle(class xVec3 * _pt /* r2 */, class xVec3 * * _tri /* r2 */, class xVec3 * _normal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A7AA0 -> 0x1A7E30 + class RwV3d * pt; // r2 + class RwV3d * * tri; // r2 + class RwV3d * normal; // r2 + enum Dimension dimension; // r7 + float absX; // r2 + float absY; // r1 + float absZ; // r29 + signed int inside; // r2 + signed int i; // r6 + signed int j; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7E30 -> 0x001A7E38 +*/ +// Range: 0x1A7E30 -> 0x1A7E38 +void iCollideInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1A7E30 -> 0x1A7E38 + } +} + diff --git a/dwarf/SB/Core/p2/iCollideFast.cpp b/dwarf/SB/Core/p2/iCollideFast.cpp new file mode 100644 index 000000000..ee601ca91 --- /dev/null +++ b/dwarf/SB/Core/p2/iCollideFast.cpp @@ -0,0 +1,905 @@ +/* + Compile unit: C:\SB\Core\p2\iCollideFast.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int hitzhit; // size: 0x4, address: 0x0 +class RpCollisionTriangle * rayHitsEnvFastCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x0 +class RpCollisionTriangle * rayHitsModelFastCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x0 +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iCollideFast.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7E40 -> 0x001A7E48 +*/ +// Range: 0x1A7E40 -> 0x1A7E48 +void iCollideFastInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1A7E40 -> 0x1A7E48 + } +} + diff --git a/dwarf/SB/Core/p2/iCutscene.cpp b/dwarf/SB/Core/p2/iCutscene.cpp new file mode 100644 index 000000000..38730c5c5 --- /dev/null +++ b/dwarf/SB/Core/p2/iCutscene.cpp @@ -0,0 +1,676 @@ +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +void iCSAsyncReadCB(class tag_xFile *); // size: 0x0, address: 0x34C290 +void iCSSoundCutsceneCB(unsigned int, unsigned char); // size: 0x0, address: 0x34C2B0 +class RpAtomic * FastPipeAtomicCB(class RpAtomic *, void *); // size: 0x0, address: 0x34C0B0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xCutscene sActiveCutscene; // size: 0x138, address: 0x540AA0 +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum XFILE_READSECTOR_STATUS { + XFILE_RDSTAT_NOOP = 0, + XFILE_RDSTAT_INPROG = 1, + XFILE_RDSTAT_DONE = 2, + XFILE_RDSTAT_FAIL = 3, + XFILE_RDSTAT_QUEUED = 4, + XFILE_RDSTAT_EXPIRED = 5, +}; + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034B9A0 -> 0x0034C0B0 +*/ +// Range: 0x34B9A0 -> 0x34C0B0 +signed int iCSLoadStep(class xCutscene * csn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34B9A0 -> 0x34C0B0 + signed int bytes; // r29+0x4C + enum XFILE_READSECTOR_STATUS cdstat; // r2 + unsigned int skipAccum; // r17 + unsigned int tmpSize; // r29+0x48 + void * foundModel; // r2 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C0B0 -> 0x0034C0B8 +*/ +// Range: 0x34C0B0 -> 0x34C0B8 +static class RpAtomic * FastPipeAtomicCB(class RpAtomic * atomic /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C0B0 -> 0x34C0B8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C0C0 -> 0x0034C0F8 +*/ +// Range: 0x34C0C0 -> 0x34C0F8 +void iCSFileClose(class xCutscene * csn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C0C0 -> 0x34C0F8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C100 -> 0x0034C1C8 +*/ +// Range: 0x34C100 -> 0x34C1C8 +void iCSFileAsyncRead(class xCutscene * csn /* r16 */, void * dest /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C100 -> 0x34C1C8 + unsigned int * tp; // r2 + unsigned int i; // r9 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C1D0 -> 0x0034C284 +*/ +// Range: 0x34C1D0 -> 0x34C284 +unsigned int iCSFileOpen(class xCutscene * csn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C1D0 -> 0x34C284 + unsigned int headerskip; // r17 + class st_PKR_ASSET_TOCINFO ainfo; // r29+0x30 + char * filename; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C290 -> 0x0034C2A8 +*/ +// Range: 0x34C290 -> 0x34C2A8 +static void iCSAsyncReadCB() { + // Blocks + /* anonymous block */ { + // Range: 0x34C290 -> 0x34C2A8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C2B0 -> 0x0034C358 +*/ +// Range: 0x34C2B0 -> 0x34C358 +static void iCSSoundCutsceneCB(unsigned int id /* r18 */, unsigned char first /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C2B0 -> 0x34C358 + void * data; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C360 -> 0x0034C438 +*/ +// Range: 0x34C360 -> 0x34C438 +static void * iCSSoundGetData(class xCutscene * csn /* r2 */, unsigned int channel /* r2 */, unsigned int chunk /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C360 -> 0x34C438 + void * retdata; // r2 + class xCutsceneData * data; // r11 + unsigned int dataIndex; // r10 + unsigned int numData; // r9 + unsigned int channelIndex; // r8 + } +} + diff --git a/dwarf/SB/Core/p2/iDraw.cpp b/dwarf/SB/Core/p2/iDraw.cpp new file mode 100644 index 000000000..a86ab2302 --- /dev/null +++ b/dwarf/SB/Core/p2/iDraw.cpp @@ -0,0 +1,430 @@ +/* + Compile unit: C:\SB\Core\p2\iDraw.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class rwDMA_flipData _rwDMAFlipData; // size: 0x3D0, address: 0x5C0220 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +signed long skyFrame_1; // size: 0x4, address: 0x50EB50 +class sceGsDispEnv { + // total size: 0x28 +public: + class tGS_PMODE pmode; // offset 0x0, size 0x8 + class tGS_SMODE2 smode2; // offset 0x8, size 0x8 + class tGS_DISPFB2 dispfb; // offset 0x10, size 0x8 + class tGS_DISPLAY2 display; // offset 0x18, size 0x8 + class tGS_BGCOLOR bgcolor; // offset 0x20, size 0x8 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class rwDMAReadCircuitOneTag { + // total size: 0x20 +public: + class tGS_DISPFB1 dispfb10; // offset 0x0, size 0x8 + class tGS_DISPLAY1 display10; // offset 0x8, size 0x8 + class tGS_DISPFB1 dispfb11; // offset 0x10, size 0x8 + class tGS_DISPLAY1 display11; // offset 0x18, size 0x8 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class tGS_DISPLAY2 { + // total size: 0x8 +public: + unsigned int DX : 12; // offset 0x0, size 0x4 + unsigned int DY : 11; // offset 0x0, size 0x4 + unsigned int MAGH : 4; // offset 0x0, size 0x4 + unsigned int MAGV : 2; // offset 0x0, size 0x4 + unsigned int p0 : 3; // offset 0x0, size 0x4 + unsigned int DW : 12; // offset 0x4, size 0x4 + unsigned int DH : 11; // offset 0x4, size 0x4 + unsigned int p1 : 9; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class sceGsDrawEnv1 { + // total size: 0x80 +public: + class sceGsFrame frame1; // offset 0x0, size 0x8 + unsigned long frame1addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf1; // offset 0x10, size 0x8 + signed long zbuf1addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset1; // offset 0x20, size 0x8 + signed long xyoffset1addr; // offset 0x28, size 0x4 + class sceGsScissor scissor1; // offset 0x30, size 0x8 + signed long scissor1addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test1; // offset 0x70, size 0x8 + signed long test1addr; // offset 0x78, size 0x4 +}; +class sceGsTest { + // total size: 0x8 +public: + unsigned long ATE : 1; // offset 0x0, size 0x4 + unsigned long ATST : 3; // offset 0x0, size 0x4 + unsigned long AREF : 8; // offset 0x0, size 0x4 + unsigned long AFAIL : 2; // offset 0x0, size 0x4 + unsigned long DATE : 1; // offset 0x0, size 0x4 + unsigned long DATM : 1; // offset 0x0, size 0x4 + unsigned long ZTE : 1; // offset 0x0, size 0x4 + unsigned long ZTST : 2; // offset 0x0, size 0x4 + unsigned long pad19 : 45; // offset 0x0, size 0x4 +}; +class sceGsDthe { + // total size: 0x8 +public: + unsigned long DTHE : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class rwDMA_flipData { + // total size: 0x3D0 +public: + class sceGsDBuffDc db; // offset 0x0, size 0x330 + class rwDMAReadCircuitOneTag tcaaDisp; // offset 0x330, size 0x20 + class sceGsDispEnv disp1[2]; // offset 0x350, size 0x50 + class rwDMAReadCircuitOneTag tcaaDisp1; // offset 0x3A0, size 0x20 + __int128 * dmaPkt[4]; // offset 0x3C0, size 0x10 +}; +class sceGsDBuffDc { + // total size: 0x330 +public: + class sceGsDispEnv disp[2]; // offset 0x0, size 0x50 + class sceGifTag giftag0; // offset 0x50, size 0x10 + class sceGsDrawEnv1 draw01; // offset 0x60, size 0x80 + class sceGsDrawEnv2 draw02; // offset 0xE0, size 0x80 + class sceGsClear clear0; // offset 0x160, size 0x60 + class sceGifTag giftag1; // offset 0x1C0, size 0x10 + class sceGsDrawEnv1 draw11; // offset 0x1D0, size 0x80 + class sceGsDrawEnv2 draw12; // offset 0x250, size 0x80 + class sceGsClear clear1; // offset 0x2D0, size 0x60 +}; +class tGS_PMODE { + // total size: 0x8 +public: + unsigned int EN1 : 1; // offset 0x0, size 0x4 + unsigned int EN2 : 1; // offset 0x0, size 0x4 + unsigned int CRTMD : 3; // offset 0x0, size 0x4 + unsigned int MMOD : 1; // offset 0x0, size 0x4 + unsigned int AMOD : 1; // offset 0x0, size 0x4 + unsigned int SLBG : 1; // offset 0x0, size 0x4 + unsigned int ALP : 8; // offset 0x0, size 0x4 + unsigned int p0 : 16; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsPrmodecont { + // total size: 0x8 +public: + unsigned long AC : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class tGS_DISPLAY1 { + // total size: 0x8 +public: + unsigned int DX : 12; // offset 0x0, size 0x4 + unsigned int DY : 11; // offset 0x0, size 0x4 + unsigned int MAGH : 4; // offset 0x0, size 0x4 + unsigned int MAGV : 2; // offset 0x0, size 0x4 + unsigned int p0 : 3; // offset 0x0, size 0x4 + unsigned int DW : 12; // offset 0x4, size 0x4 + unsigned int DH : 11; // offset 0x4, size 0x4 + unsigned int p1 : 9; // offset 0x4, size 0x4 +}; +class sceGsXyoffset { + // total size: 0x8 +public: + unsigned long OFX : 16; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long OFY : 16; // offset 0x0, size 0x4 + unsigned long pad48 : 16; // offset 0x0, size 0x4 +}; +class sceGsColclamp { + // total size: 0x8 +public: + unsigned long CLAMP : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsRgbaq { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int A : 8; // offset 0x0, size 0x4 + float Q; // offset 0x4, size 0x4 +}; +class tGS_BGCOLOR { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int p0 : 8; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsDrawEnv2 { + // total size: 0x80 +public: + class sceGsFrame frame2; // offset 0x0, size 0x8 + unsigned long frame2addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf2; // offset 0x10, size 0x8 + signed long zbuf2addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset2; // offset 0x20, size 0x8 + signed long xyoffset2addr; // offset 0x28, size 0x4 + class sceGsScissor scissor2; // offset 0x30, size 0x8 + signed long scissor2addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test2; // offset 0x70, size 0x8 + signed long test2addr; // offset 0x78, size 0x4 +}; +class sceGsXyz { + // total size: 0x8 +public: + unsigned long X : 16; // offset 0x0, size 0x4 + unsigned long Y : 16; // offset 0x0, size 0x4 + unsigned long Z : 32; // offset 0x0, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class tGS_SMODE2 { + // total size: 0x8 +public: + unsigned int INT : 1; // offset 0x0, size 0x4 + unsigned int FFMD : 1; // offset 0x0, size 0x4 + unsigned int DPMS : 2; // offset 0x0, size 0x4 + unsigned int p0 : 28; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGifTag { + // total size: 0x10 +public: + unsigned long NLOOP : 15; // offset 0x0, size 0x4 + unsigned long EOP : 1; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long id : 14; // offset 0x0, size 0x4 + unsigned long PRE : 1; // offset 0x0, size 0x4 + unsigned long PRIM : 11; // offset 0x0, size 0x4 + unsigned long FLG : 2; // offset 0x0, size 0x4 + unsigned long NREG : 4; // offset 0x0, size 0x4 + unsigned long REGS0 : 4; // offset 0x8, size 0x4 + unsigned long REGS1 : 4; // offset 0x8, size 0x4 + unsigned long REGS2 : 4; // offset 0x8, size 0x4 + unsigned long REGS3 : 4; // offset 0x8, size 0x4 + unsigned long REGS4 : 4; // offset 0x8, size 0x4 + unsigned long REGS5 : 4; // offset 0x8, size 0x4 + unsigned long REGS6 : 4; // offset 0x8, size 0x4 + unsigned long REGS7 : 4; // offset 0x8, size 0x4 + unsigned long REGS8 : 4; // offset 0x8, size 0x4 + unsigned long REGS9 : 4; // offset 0x8, size 0x4 + unsigned long REGS10 : 4; // offset 0x8, size 0x4 + unsigned long REGS11 : 4; // offset 0x8, size 0x4 + unsigned long REGS12 : 4; // offset 0x8, size 0x4 + unsigned long REGS13 : 4; // offset 0x8, size 0x4 + unsigned long REGS14 : 4; // offset 0x8, size 0x4 + unsigned long REGS15 : 4; // offset 0x8, size 0x4 +}; +class tGS_DISPFB2 { + // total size: 0x8 +public: + unsigned int FBP : 9; // offset 0x0, size 0x4 + unsigned int FBW : 6; // offset 0x0, size 0x4 + unsigned int PSM : 5; // offset 0x0, size 0x4 + unsigned int p0 : 12; // offset 0x0, size 0x4 + unsigned int DBX : 11; // offset 0x4, size 0x4 + unsigned int DBY : 11; // offset 0x4, size 0x4 + unsigned int p1 : 10; // offset 0x4, size 0x4 +}; +class sceGsScissor { + // total size: 0x8 +public: + unsigned long SCAX0 : 11; // offset 0x0, size 0x4 + unsigned long pad11 : 5; // offset 0x0, size 0x4 + unsigned long SCAX1 : 11; // offset 0x0, size 0x4 + unsigned long pad27 : 5; // offset 0x0, size 0x4 + unsigned long SCAY0 : 11; // offset 0x0, size 0x4 + unsigned long pad43 : 5; // offset 0x0, size 0x4 + unsigned long SCAY1 : 11; // offset 0x0, size 0x4 + unsigned long pad59 : 5; // offset 0x0, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class sceGsClear { + // total size: 0x60 +public: + class sceGsTest testa; // offset 0x0, size 0x8 + signed long testaaddr; // offset 0x8, size 0x4 + class sceGsPrim prim; // offset 0x10, size 0x8 + signed long primaddr; // offset 0x18, size 0x4 + class sceGsRgbaq rgbaq; // offset 0x20, size 0x8 + signed long rgbaqaddr; // offset 0x28, size 0x4 + class sceGsXyz xyz2a; // offset 0x30, size 0x8 + signed long xyz2aaddr; // offset 0x38, size 0x4 + class sceGsXyz xyz2b; // offset 0x40, size 0x8 + signed long xyz2baddr; // offset 0x48, size 0x4 + class sceGsTest testb; // offset 0x50, size 0x8 + signed long testbaddr; // offset 0x58, size 0x4 +}; +class sceGsZbuf { + // total size: 0x8 +public: + unsigned long ZBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 15; // offset 0x0, size 0x4 + unsigned long PSM : 4; // offset 0x0, size 0x4 + unsigned long pad28 : 4; // offset 0x0, size 0x4 + unsigned long ZMSK : 1; // offset 0x0, size 0x4 + unsigned long pad33 : 31; // offset 0x0, size 0x4 +}; +class sceGsPrim { + // total size: 0x8 +public: + unsigned long PRIM : 3; // offset 0x0, size 0x4 + unsigned long IIP : 1; // offset 0x0, size 0x4 + unsigned long TME : 1; // offset 0x0, size 0x4 + unsigned long FGE : 1; // offset 0x0, size 0x4 + unsigned long ABE : 1; // offset 0x0, size 0x4 + unsigned long AA1 : 1; // offset 0x0, size 0x4 + unsigned long FST : 1; // offset 0x0, size 0x4 + unsigned long CTXT : 1; // offset 0x0, size 0x4 + unsigned long FIX : 1; // offset 0x0, size 0x4 + unsigned long pad11 : 53; // offset 0x0, size 0x4 +}; +class sceGsFrame { + // total size: 0x8 +public: + unsigned long FBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 7; // offset 0x0, size 0x4 + unsigned long FBW : 6; // offset 0x0, size 0x4 + unsigned long pad22 : 2; // offset 0x0, size 0x4 + unsigned long PSM : 6; // offset 0x0, size 0x4 + unsigned long pad30 : 2; // offset 0x0, size 0x4 + unsigned long FBMSK : 32; // offset 0x0, size 0x4 +}; +class tGS_DISPFB1 { + // total size: 0x8 +public: + unsigned int FBP : 9; // offset 0x0, size 0x4 + unsigned int FBW : 6; // offset 0x0, size 0x4 + unsigned int PSM : 5; // offset 0x0, size 0x4 + unsigned int p0 : 12; // offset 0x0, size 0x4 + unsigned int DBX : 11; // offset 0x4, size 0x4 + unsigned int DBY : 11; // offset 0x4, size 0x4 + unsigned int p1 : 10; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iDraw.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7E50 -> 0x001A7ECC +*/ +// Range: 0x1A7E50 -> 0x1A7ECC +void iDrawSetTEST2(signed int value /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A7E50 -> 0x1A7ECC + unsigned long tmp; // r4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iDraw.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7ED0 -> 0x001A7F68 +*/ +// Range: 0x1A7ED0 -> 0x1A7F68 +void iDrawSetFBA1(signed int value /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A7ED0 -> 0x1A7F68 + unsigned long tmp; // r4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iDraw.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A7F70 -> 0x001A7FF8 +*/ +// Range: 0x1A7F70 -> 0x1A7FF8 +void iDrawSetFBMSK(unsigned int abgr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A7F70 -> 0x1A7FF8 + unsigned long tmp; // r3 + unsigned long hi; // r7 + } +} + diff --git a/dwarf/SB/Core/p2/iEnv.cpp b/dwarf/SB/Core/p2/iEnv.cpp new file mode 100644 index 000000000..ac7bfb20f --- /dev/null +++ b/dwarf/SB/Core/p2/iEnv.cpp @@ -0,0 +1,2586 @@ +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int sBeginDrawFX; // size: 0x4, address: 0x50F7C8 +static signed int ps2AllFirstAtomic; // size: 0x4, address: 0x50F7CC +static unsigned char ps2AllClipType; // size: 0x1, address: 0x50F7D0 +static class RxPipeline * ps2AllPipeOptimized; // size: 0x4, address: 0x50F7D4 +static class RxPipeline * ps2AllMatPipeOptimized; // size: 0x4, address: 0x50F7D8 +static class RpWorld * sPipeWorld; // size: 0x4, address: 0x50F7DC +static class RwCamera * sPipeCamera; // size: 0x4, address: 0x50F7E0 +static class iEnv * lastEnv; // size: 0x4, address: 0x50F7E4 +class RwCamera * globalCamera; // size: 0x4, address: 0x5101A0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RpAtomic * SetPipelineCB(class RpAtomic *, void *); // size: 0x0, address: 0x1A8580 +signed int RPS2AllObjectSetupCB(class RxPS2AllPipeData *, class RwMatrixTag * *); // size: 0x0, address: 0x1A91F0 +signed int PS2AllBridgeCB(class RxPS2AllPipeData *); // size: 0x0, address: 0x1A8840 +signed int RpMeshPS2AllInstanceCallBack(class RxPS2AllPipeData *, void * *, unsigned int); // size: 0x0, address: 0x239AF8 +class RwResEntry * RpMeshPS2AllResEntryAllocCallBack(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // size: 0x0, address: 0x2382B8 +void * rwPDS_G3_Generic_VU1Transforms[8]; // size: 0x20, address: 0x41A600 +class RxClusterDefinition RxClPS2normal; // size: 0x10, address: 0x419208 +class RxClusterDefinition RxClPS2rgba; // size: 0x10, address: 0x4191F8 +class RxClusterDefinition RxClPS2uv; // size: 0x10, address: 0x4191D8 +class RxClusterDefinition RxClPS2xyz; // size: 0x10, address: 0x4191B8 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +void * skyUploadedCode; // size: 0x4, address: 0x50EBEC +signed long skyTest_1; // size: 0x4, address: 0x50EB58 +signed long skyClamp_1; // size: 0x4, address: 0x50EB70 +signed long skyTex1_1; // size: 0x4, address: 0x50EB78 +unsigned int skyUserSwitch1; // size: 0x4, address: 0x50EBF0 +unsigned int skyUserSwitch2; // size: 0x4, address: 0x50EBF4 +enum RwCullMode gSkyCullState; // size: 0x4, address: 0x50FD3C +__int128 skyClipVect2; // size: 0x10, address: 0x41A020 +__int128 skyClipVect1; // size: 0x10, address: 0x41A010 +__int128 skyCClipVect2; // size: 0x10, address: 0x41A040 +__int128 skyCClipVect1; // size: 0x10, address: 0x41A030 +signed int skyTLClipperMode; // size: 0x4, address: 0x50EBFC +signed int skyTSClipperMode; // size: 0x4, address: 0x50EBF8 +signed long skyPrim_State; // size: 0x4, address: 0x50EB90 +__int128 gifTag128; // size: 0x10, address: 0x419F90 +signed int skyAlphaTex; // size: 0x4, address: 0x50FD34 +signed int skyVertexAlpha; // size: 0x4, address: 0x50FD38 +class RwRaster * skyTextureRaster; // size: 0x4, address: 0x50FD30 +class RpLight * _rpAtomicPS2AllDoApplyLight(class RpLight *, void *); // size: 0x0, address: 0x239B48 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int _rwSkyLightQWordsWritten; // size: 0x4, address: 0x50FC14 +unsigned char skyTransType; // size: 0x1, address: 0x50EBE8 +signed int rwPip2GeometryOffset; // size: 0x4, address: 0x50FC18 +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPS2AllPipeData { + // total size: 0x48 +public: + class rxNodePS2AllPvtData * objPvtData; // offset 0x0, size 0x4 + class rxNodePS2AllMatPvtData * matPvtData; // offset 0x4, size 0x4 + void * sourceObject; // offset 0x8, size 0x4 + class RpMeshHeader * meshHeader; // offset 0xC, size 0x4 + class RwMeshCache * meshCache; // offset 0x10, size 0x4 + enum RxInstanceFlags objInstance; // offset 0x14, size 0x4 + unsigned int objIdentifier; // offset 0x18, size 0x4 + float spExtra; // offset 0x1C, size 0x4 + signed int numMorphTargets; // offset 0x20, size 0x4 + unsigned int fastMorphing; // offset 0x24, size 0x4 + unsigned char transType; // offset 0x28, size 0x1 + unsigned char primType; // offset 0x29, size 0x1 + unsigned char matModulate; // offset 0x2A, size 0x1 + unsigned char vu1CodeIndex; // offset 0x2B, size 0x1 + class RpMesh * mesh; // offset 0x2C, size 0x4 + class RwResEntry * * cacheEntryRef; // offset 0x30, size 0x4 + enum RxInstanceFlags meshInstance; // offset 0x34, size 0x4 + unsigned int meshIdentifier; // offset 0x38, size 0x4 + class RwSurfaceProperties * surfProps; // offset 0x3C, size 0x4 + class RwTexture * texture; // offset 0x40, size 0x4 + class RwRGBA matCol; // offset 0x44, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class rxNodePS2AllPvtData { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class rxNodePS2AllMatPvtData { + // total size: 0x32C +public: + signed int (* meshInstanceTestCB)(class RxPS2AllPipeData *); // offset 0x0, size 0x4 + class RwResEntry * (* resEntryAllocCB)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x4, size 0x4 + signed int (* instanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x8, size 0x4 + signed int (* bridgeCB)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + signed int (* postMeshCB)(class RxPS2AllPipeData *); // offset 0x10, size 0x4 + signed int vifOffset; // offset 0x14, size 0x4 + void * * vu1CodeArray; // offset 0x18, size 0x4 + unsigned int codeArrayLength; // offset 0x1C, size 0x4 + class rwPS2AllClusterInstanceInfo clinfo[12]; // offset 0x20, size 0x60 + unsigned int cliIndex[12]; // offset 0x80, size 0x30 + enum RpMeshHeaderFlags pipeType; // offset 0xB0, size 0x4 + unsigned char totallyOpaque; // offset 0xB4, size 0x1 + unsigned char numStripes; // offset 0xB5, size 0x1 + unsigned char sizeOnVU; // offset 0xB6, size 0x1 + unsigned char pad0; // offset 0xB7, size 0x1 + class rwPS2AllResEntryFormat strip; // offset 0xB8, size 0x138 + class rwPS2AllResEntryFormat list; // offset 0x1F0, size 0x138 + unsigned int magicValue; // offset 0x328, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xSurface { + // total size: 0x0 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class rwPS2AllClusterInstanceInfo { + // total size: 0x8 +public: + unsigned int attrib; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum RpMeshHeaderFlags { + rpMESHHEADERTRISTRIP = 1, + rpMESHHEADERTRIFAN = 2, + rpMESHHEADERLINELIST = 4, + rpMESHHEADERPOLYLINE = 8, + rpMESHHEADERPOINTLIST = 16, + rpMESHHEADERPRIMMASK = 255, + rpMESHHEADERUNINDEXED = 256, + rpMESHHEADERFLAGSFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpLightTie { + // total size: 0x18 +public: + class RwLLLink lightInWorldSector; // offset 0x0, size 0x8 + class RpLight * light; // offset 0x8, size 0x4 + class RwLLLink WorldSectorInLight; // offset 0xC, size 0x8 + class RpWorldSector * sect; // offset 0x14, size 0x4 +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RwChunkHeaderInfo { + // total size: 0x14 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 + unsigned int version; // offset 0x8, size 0x4 + unsigned int buildNum; // offset 0xC, size 0x4 + signed int isComplex; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxInstanceFlags { + rxINSTANCENAINSTANCEFLAG = 0, + rxINSTANCEDONTINSTANCE = 1, + rxINSTANCEINPLACEINSTANCE = 2, + rxINSTANCECONGRUENTINSTANCE = 4, + rxINSTANCEFULLINSTANCE = 8, + rxINSTANCETYPEMASK = 14, + rxINSTANCEXYZ = 16, + rxINSTANCENORMAL = 32, + rxINSTANCERGBA = 64, + rxINSTANCEUV = 128, + rxINSTANCEUV1 = 128, + rxINSTANCEUV2 = 256, + rxINSTANCEUV3 = 512, + rxINSTANCEUV4 = 1024, + rxINSTANCEUV5 = 2048, + rxINSTANCEUV6 = 4096, + rxINSTANCEUV7 = 8192, + rxINSTANCEUV8 = 16384, + rxINSTANCEUSER1 = 32768, + rxINSTANCEUSER2 = 65536, + rxINSTANCEUSER3 = 131072, + rxINSTANCEUSER4 = 262144, + rxINSTANCEALL = 524272, + rxINSTANCEMASK = 524287, + rxINSTANCEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class rwPS2AllResEntryHeader { + // total size: 0x1B0 +public: + signed int refCnt; // offset 0x0, size 0x4 + signed int clrCnt; // offset 0x4, size 0x4 + __int128 * data; // offset 0x8, size 0x4 + unsigned int numVerts; // offset 0xC, size 0x4 + unsigned int objIdentifier; // offset 0x10, size 0x4 + unsigned int meshIdentifier; // offset 0x14, size 0x4 + signed int batchSize; // offset 0x18, size 0x4 + signed int numBatches; // offset 0x1C, size 0x4 + signed int batchesPerTag; // offset 0x20, size 0x4 + signed int morphStart; // offset 0x24, size 0x4 + signed int morphFinish; // offset 0x28, size 0x4 + signed int morphNum; // offset 0x2C, size 0x4 + class rwPS2AllClusterQuickInfo clquickinfo[12]; // offset 0x30, size 0x60 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x90, size 0x120 +}; +class rwPS2AllResEntryFormat { + // total size: 0x138 +public: + unsigned char batchRound; // offset 0x0, size 0x1 + unsigned char stripReverse; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + unsigned int maxInputSize; // offset 0x4, size 0x4 + signed int batchSize; // offset 0x8, size 0x4 + signed int batchesPerTag; // offset 0xC, size 0x4 + signed int morphBatchSize; // offset 0x10, size 0x4 + signed int morphBatchesPerTag; // offset 0x14, size 0x4 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x18, size 0x120 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class rwPS2AllClusterQuickInfo { + // total size: 0x8 +public: + __int128 * data; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class rpAtomicPS2AllLightData { + // total size: 0x60 +public: + class RwSurfaceProperties * surface; // offset 0x0, size 0x4 + class RwMatrixTag invMat; // offset 0x10, size 0x40 + float invScale; // offset 0x50, size 0x4 + float recipInvScale; // offset 0x54, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8000 -> 0x001A8060 +*/ +// Range: 0x1A8000 -> 0x1A8060 +void iEnvEndRenderFX() { + // Blocks + /* anonymous block */ { + // Range: 0x1A8000 -> 0x1A8060 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8060 -> 0x001A80B4 +*/ +// Range: 0x1A8060 -> 0x1A80B4 +void iEnvRender(class iEnv * env /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A8060 -> 0x1A80B4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A80C0 -> 0x001A8314 +*/ +// Range: 0x1A80C0 -> 0x1A8314 +static void JspPS2_ClumpRender(class RpClump * clump /* r2 */, class xJSPNodeInfo * nodeInfo /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A80C0 -> 0x1A8314 + signed int backcullon; // r20 + signed int zbufferon; // r19 + class RwLLLink * cur; // r18 + class RwLLLink * end; // r17 + class RpAtomic * apAtom; // r16 + class RwFrame * frame; // r3 + signed int insideFlag; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8320 -> 0x001A8328 +*/ +// Range: 0x1A8320 -> 0x1A8328 +void iEnvLightingBasics() { + // Blocks + /* anonymous block */ { + // Range: 0x1A8320 -> 0x1A8328 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8330 -> 0x001A8338 +*/ +// Range: 0x1A8330 -> 0x1A8338 +void iEnvDefaultLighting() { + // Blocks + /* anonymous block */ { + // Range: 0x1A8330 -> 0x1A8338 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8340 -> 0x001A83A0 +*/ +// Range: 0x1A8340 -> 0x1A83A0 +void iEnvFree(class iEnv * env /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A8340 -> 0x1A83A0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A83A0 -> 0x001A84F0 +*/ +// Range: 0x1A83A0 -> 0x1A84F0 +void iEnvLoad(class iEnv * env /* r18 */, void * data /* r2 */, signed int dataType /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A83A0 -> 0x1A84F0 + class RpWorld * bsp; // r2 + class xJSPHeader * jsp; // r16 + class RwBBox tmpbbox; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A84F0 -> 0x001A851C +*/ +// Range: 0x1A84F0 -> 0x1A851C +void iEnvStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x1A84F0 -> 0x1A851C + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8520 -> 0x001A8578 +*/ +// Range: 0x1A8520 -> 0x1A8578 +static void iEnvSetBSP(class iEnv * env /* r2 */, signed int envDataType /* r2 */, class RpWorld * bsp /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A8520 -> 0x1A8578 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8580 -> 0x001A85D4 +*/ +// Range: 0x1A8580 -> 0x1A85D4 +static class RpAtomic * SetPipelineCB(class RpAtomic * atomic /* r17 */, void * data /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A8580 -> 0x1A85D4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A85E0 -> 0x001A8840 +*/ +// Range: 0x1A85E0 -> 0x1A8840 +static signed int PS2AllOptimizedPipelinesCreate() { + // Blocks + /* anonymous block */ { + // Range: 0x1A85E0 -> 0x1A8840 + class RxPipeline * allMatPipe; // r2 + class RxPipeline * allPipe; // r17 + class RxNodeDefinition * ps2AllMat; // r18 + class RxPipelineNode * plNode; // r17 + class RxPipeline * lPipe; // r16 + class RxPipeline * lPipe; // r16 + class RxNodeDefinition * ps2All; // r18 + class RxPipelineNode * plNode; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A8840 -> 0x001A91E8 +*/ +// Range: 0x1A8840 -> 0x1A91E8 +static signed int PS2AllBridgeCB(class RxPS2AllPipeData * ps2AllPipeData /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A8840 -> 0x1A91E8 + unsigned int numInitialQW; // r17 + unsigned int numExtraQW; // r5 + class RwTexture * tex; // r2 + class RwRaster * ras; // r3 + unsigned int _itQW; // r2 + unsigned int _xaQW; // r2 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r6 + unsigned long __tmp1; // r6 + unsigned int __skySwitchFlag; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class rwPS2AllResEntryHeader * _p2rh; // r2 + unsigned long __tmp; // r3 + unsigned long __tmp1; // r5 + __int128 __ltmp; // r3 + __int128 ___ltmp; // r2 + unsigned int stat; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RwTexture * _nwtx; // r18 + class RwRaster * _nwrs; // r17 + unsigned int cFormat; // r3 + signed int textureUploadSuccess; // r2 + unsigned int _itQW; // r2 + unsigned int _xaQW; // r2 + unsigned long tmp; // r5 + __int128 ltmp; // r4 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r5 + unsigned long __tmp1; // r7 + unsigned int __prmTmp; // r3 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r6 + float __colScale; // r29+0x40 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r5 + unsigned long __tmp1; // r7 + unsigned int __skySwitchFlag; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + unsigned long __tmp; // r8 + unsigned long __tmp1; // r3 + __int128 __ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + void * _kohd; // r6 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class rwPS2AllResEntryHeader * _p2rh; // r2 + unsigned long __tmp; // r3 + unsigned long __tmp1; // r5 + __int128 __ltmp; // r3 + __int128 ___ltmp; // r2 + unsigned int stat; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A91F0 -> 0x001A9520 +*/ +// Range: 0x1A91F0 -> 0x1A9520 +static signed int RPS2AllObjectSetupCB(class RxPS2AllPipeData * ps2AllPipeData /* r19 */, class RwMatrixTag * * transform /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A91F0 -> 0x1A9520 + class RpAtomic * atomic; // r17 + class RpGeometry * geom; // r16 + class RwMatrixTag * _viewMatrix; // r16 + class RwMatrixTag * _mpLocalToWorld; // r2 + class RpAtomic * _atmc; // r21 + class RpGeometry * _gmty; // r17 + class RwLLLink * cur; // r20 + class RwLLLink * end; // r19 + class RpMeshHeader * meshHeader; // r3 + class rpAtomicPS2AllLightData lightingData; // r29+0x80 + class RwMatrixTag * frameMat; // r18 + float temp; // r1 + class RwLLLink * curLight; // r18 + class RwLLLink * endLight; // r22 + class RpLightTie * lightTie; // r2 + class RwMatrixTag * matrixLight; // r2 + class RwV3d * pos; // r17 + class RwSphere * sphere; // r2 + float distanceCollision; // r3 + } +} + diff --git a/dwarf/SB/Core/p2/iException.cpp b/dwarf/SB/Core/p2/iException.cpp new file mode 100644 index 000000000..f7a88306c --- /dev/null +++ b/dwarf/SB/Core/p2/iException.cpp @@ -0,0 +1,557 @@ +/* + Compile unit: C:\SB\Core\p2\iException.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class xSysFontTbl xSysFontLookup[128]; // size: 0x400, address: 0x0 +static unsigned int xSysFontRGBA[4096]; // size: 0x4000, address: 0x0 +static char * excep_table[14]; // size: 0x38, address: 0x0 +static char * reg_table[32]; // size: 0x80, address: 0x0 +static class _sceGpChain sChain; // size: 0x10, address: 0x0 +static class sceGpPrimR * sSprpac; // size: 0x4, address: 0x0 +static signed long iExceptionHangCurr; // size: 0x4, address: 0x0 +static signed long iExceptionHangCheck; // size: 0x4, address: 0x0 +static void * iExceptionHangAddr; // size: 0x4, address: 0x0 +static unsigned int sOldFreeSpace; // size: 0x4, address: 0x0 +static signed long sOldTime; // size: 0x4, address: 0x0 +class sceGpTextureArg { + // total size: 0x12 +public: + signed short tbp; // offset 0x0, size 0x2 + signed short tbw; // offset 0x2, size 0x2 + signed short tpsm; // offset 0x4, size 0x2 + signed short tx; // offset 0x6, size 0x2 + signed short ty; // offset 0x8, size 0x2 + signed short tw; // offset 0xA, size 0x2 + signed short th; // offset 0xC, size 0x2 + signed short cbp; // offset 0xE, size 0x2 + signed short cpsm; // offset 0x10, size 0x2 +}; +class sceGsTex1 { + // total size: 0x8 +public: + unsigned long LCM : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 1; // offset 0x0, size 0x4 + unsigned long MXL : 3; // offset 0x0, size 0x4 + unsigned long MMAG : 1; // offset 0x0, size 0x4 + unsigned long MMIN : 3; // offset 0x0, size 0x4 + unsigned long MTBA : 1; // offset 0x0, size 0x4 + unsigned long pad10 : 9; // offset 0x0, size 0x4 + unsigned long L : 2; // offset 0x0, size 0x4 + unsigned long pad21 : 11; // offset 0x0, size 0x4 + unsigned long K : 12; // offset 0x0, size 0x4 + unsigned long pad44 : 20; // offset 0x0, size 0x4 +}; +class sceGsBitbltbuf { + // total size: 0x8 +public: + unsigned long SBP : 14; // offset 0x0, size 0x4 + unsigned long pad14 : 2; // offset 0x0, size 0x4 + unsigned long SBW : 6; // offset 0x0, size 0x4 + unsigned long pad22 : 2; // offset 0x0, size 0x4 + unsigned long SPSM : 6; // offset 0x0, size 0x4 + unsigned long pad30 : 2; // offset 0x0, size 0x4 + unsigned long DBP : 14; // offset 0x0, size 0x4 + unsigned long pad46 : 2; // offset 0x0, size 0x4 + unsigned long DBW : 6; // offset 0x0, size 0x4 + unsigned long pad54 : 2; // offset 0x0, size 0x4 + unsigned long DPSM : 6; // offset 0x0, size 0x4 + unsigned long pad62 : 2; // offset 0x0, size 0x4 +}; +class _sceDmaTag { + // total size: 0x10 +public: + unsigned short qwc; // offset 0x0, size 0x2 + unsigned char mark; // offset 0x2, size 0x1 + unsigned char id; // offset 0x3, size 0x1 + class _sceDmaTag * next; // offset 0x4, size 0x4 + unsigned int p[2]; // offset 0x8, size 0x8 +}; +class sceGsFrame { + // total size: 0x8 +public: + unsigned long FBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 7; // offset 0x0, size 0x4 + unsigned long FBW : 6; // offset 0x0, size 0x4 + unsigned long pad22 : 2; // offset 0x0, size 0x4 + unsigned long PSM : 6; // offset 0x0, size 0x4 + unsigned long pad30 : 2; // offset 0x0, size 0x4 + unsigned long FBMSK : 32; // offset 0x0, size 0x4 +}; +class sceGsPrim { + // total size: 0x8 +public: + unsigned long PRIM : 3; // offset 0x0, size 0x4 + unsigned long IIP : 1; // offset 0x0, size 0x4 + unsigned long TME : 1; // offset 0x0, size 0x4 + unsigned long FGE : 1; // offset 0x0, size 0x4 + unsigned long ABE : 1; // offset 0x0, size 0x4 + unsigned long AA1 : 1; // offset 0x0, size 0x4 + unsigned long FST : 1; // offset 0x0, size 0x4 + unsigned long CTXT : 1; // offset 0x0, size 0x4 + unsigned long FIX : 1; // offset 0x0, size 0x4 + unsigned long pad11 : 53; // offset 0x0, size 0x4 +}; +class _sceGpChain { + // total size: 0x10 +public: + __int128 * ot; // offset 0x0, size 0x4 + __int128 * pKick; // offset 0x4, size 0x4 + __int128 * pEnd; // offset 0x8, size 0x4 + signed int resolution; // offset 0xC, size 0x4 +}; +class sceGsTrxpos { + // total size: 0x8 +public: + unsigned long SSAX : 11; // offset 0x0, size 0x4 + unsigned long pad11 : 5; // offset 0x0, size 0x4 + unsigned long SSAY : 11; // offset 0x0, size 0x4 + unsigned long pad27 : 5; // offset 0x0, size 0x4 + unsigned long DSAX : 11; // offset 0x0, size 0x4 + unsigned long pad43 : 5; // offset 0x0, size 0x4 + unsigned long DSAY : 11; // offset 0x0, size 0x4 + unsigned long DIR : 2; // offset 0x0, size 0x4 + unsigned long pad61 : 3; // offset 0x0, size 0x4 +}; +class sceGsZbuf { + // total size: 0x8 +public: + unsigned long ZBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 15; // offset 0x0, size 0x4 + unsigned long PSM : 4; // offset 0x0, size 0x4 + unsigned long pad28 : 4; // offset 0x0, size 0x4 + unsigned long ZMSK : 1; // offset 0x0, size 0x4 + unsigned long pad33 : 31; // offset 0x0, size 0x4 +}; +class tGS_DISPLAY2 { + // total size: 0x8 +public: + unsigned int DX : 12; // offset 0x0, size 0x4 + unsigned int DY : 11; // offset 0x0, size 0x4 + unsigned int MAGH : 4; // offset 0x0, size 0x4 + unsigned int MAGV : 2; // offset 0x0, size 0x4 + unsigned int p0 : 3; // offset 0x0, size 0x4 + unsigned int DW : 12; // offset 0x4, size 0x4 + unsigned int DH : 11; // offset 0x4, size 0x4 + unsigned int p1 : 9; // offset 0x4, size 0x4 +}; +class sceGpLoadImage { + // total size: 0xB0 +public: + class _sceDmaTag dmacnt; // offset 0x0, size 0x10 + class sceGifTag giftag1; // offset 0x10, size 0x10 + class sceGsBitbltbuf bitbltbuf; // offset 0x20, size 0x8 + signed long bitbltbufaddr; // offset 0x28, size 0x4 + class sceGsTrxpos trxpos; // offset 0x30, size 0x8 + signed long trxposaddr; // offset 0x38, size 0x4 + class sceGsTrxreg trxreg; // offset 0x40, size 0x8 + signed long trxregaddr; // offset 0x48, size 0x4 + class sceGsTrxdir trxdir; // offset 0x50, size 0x8 + signed long trxdiraddr; // offset 0x58, size 0x4 + class sceGifTag giftag2; // offset 0x60, size 0x10 + class _sceDmaTag dmaref; // offset 0x70, size 0x10 + class _sceDmaTag dmanext; // offset 0x80, size 0x10 + class sceGifTag giftag3; // offset 0x90, size 0x10 + class sceGsTexflush texflush; // offset 0xA0, size 0x8 + signed long texflushaddr; // offset 0xA8, size 0x4 +}; +class _sceGpAdc { + // total size: 0x8 +public: + signed int ADC; // offset 0x0, size 0x4 + signed int pad; // offset 0x4, size 0x4 +}; +class sceGpAlphaEnv { + // total size: 0x60 +public: + class _sceDmaTag dmanext; // offset 0x0, size 0x10 + class sceGifTag giftag; // offset 0x10, size 0x10 + class sceGsAlpha alpha; // offset 0x20, size 0x8 + signed long alphaaddr; // offset 0x28, size 0x4 + class sceGsPabe pabe; // offset 0x30, size 0x8 + signed long pabeaddr; // offset 0x38, size 0x4 + class sceGsTexa texa; // offset 0x40, size 0x8 + signed long texaaddr; // offset 0x48, size 0x4 + class sceGsFba fba; // offset 0x50, size 0x8 + signed long fbaaddr; // offset 0x58, size 0x4 +}; +class sceGsClear { + // total size: 0x60 +public: + class sceGsTest testa; // offset 0x0, size 0x8 + signed long testaaddr; // offset 0x8, size 0x4 + class sceGsPrim prim; // offset 0x10, size 0x8 + signed long primaddr; // offset 0x18, size 0x4 + class sceGsRgbaq rgbaq; // offset 0x20, size 0x8 + signed long rgbaqaddr; // offset 0x28, size 0x4 + class sceGsXyz xyz2a; // offset 0x30, size 0x8 + signed long xyz2aaddr; // offset 0x38, size 0x4 + class sceGsXyz xyz2b; // offset 0x40, size 0x8 + signed long xyz2baddr; // offset 0x48, size 0x4 + class sceGsTest testb; // offset 0x50, size 0x8 + signed long testbaddr; // offset 0x58, size 0x4 +}; +class sceGsTrxreg { + // total size: 0x8 +public: + unsigned long RRW : 12; // offset 0x0, size 0x4 + unsigned long pad12 : 20; // offset 0x0, size 0x4 + unsigned long RRH : 12; // offset 0x0, size 0x4 + unsigned long pad44 : 20; // offset 0x0, size 0x4 +}; +class sceGsSt { + // total size: 0x8 +public: + float S; // offset 0x0, size 0x4 + float T; // offset 0x4, size 0x4 +}; +class sceGsClamp { + // total size: 0x8 +public: + unsigned long WMS : 2; // offset 0x0, size 0x4 + unsigned long WMT : 2; // offset 0x0, size 0x4 + unsigned long MINU : 10; // offset 0x0, size 0x4 + unsigned long MAXU : 10; // offset 0x0, size 0x4 + unsigned long MINV : 10; // offset 0x0, size 0x4 + unsigned long MAXV : 10; // offset 0x0, size 0x4 + unsigned long pad44 : 20; // offset 0x0, size 0x4 +}; +class _sceGpReg { + // total size: 0x8 +public: + union { // inferred + class sceGsPrim prim; // offset 0x0, size 0x8 + class sceGsRgbaq rgbaq; // offset 0x0, size 0x8 + class sceGsSt st; // offset 0x0, size 0x8 + class sceGsUv uv; // offset 0x0, size 0x8 + class sceGsXyzf xyzf; // offset 0x0, size 0x8 + class sceGsXyz xyz; // offset 0x0, size 0x8 + class sceGsTex0 tex0; // offset 0x0, size 0x8 + class sceGsClamp clamp; // offset 0x0, size 0x8 + class sceGsFog fog; // offset 0x0, size 0x8 + class _sceGpAdc adc; // offset 0x0, size 0x8 + unsigned long ul; // offset 0x0, size 0x4 + unsigned int ui[2]; // offset 0x0, size 0x8 + }; +}; +class tGS_PMODE { + // total size: 0x8 +public: + unsigned int EN1 : 1; // offset 0x0, size 0x4 + unsigned int EN2 : 1; // offset 0x0, size 0x4 + unsigned int CRTMD : 3; // offset 0x0, size 0x4 + unsigned int MMOD : 1; // offset 0x0, size 0x4 + unsigned int AMOD : 1; // offset 0x0, size 0x4 + unsigned int SLBG : 1; // offset 0x0, size 0x4 + unsigned int ALP : 8; // offset 0x0, size 0x4 + unsigned int p0 : 16; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsDthe { + // total size: 0x8 +public: + unsigned long DTHE : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsTest { + // total size: 0x8 +public: + unsigned long ATE : 1; // offset 0x0, size 0x4 + unsigned long ATST : 3; // offset 0x0, size 0x4 + unsigned long AREF : 8; // offset 0x0, size 0x4 + unsigned long AFAIL : 2; // offset 0x0, size 0x4 + unsigned long DATE : 1; // offset 0x0, size 0x4 + unsigned long DATM : 1; // offset 0x0, size 0x4 + unsigned long ZTE : 1; // offset 0x0, size 0x4 + unsigned long ZTST : 2; // offset 0x0, size 0x4 + unsigned long pad19 : 45; // offset 0x0, size 0x4 +}; +class sceGsDispEnv { + // total size: 0x28 +public: + class tGS_PMODE pmode; // offset 0x0, size 0x8 + class tGS_SMODE2 smode2; // offset 0x8, size 0x8 + class tGS_DISPFB2 dispfb; // offset 0x10, size 0x8 + class tGS_DISPLAY2 display; // offset 0x18, size 0x8 + class tGS_BGCOLOR bgcolor; // offset 0x20, size 0x8 +}; +class sceGsUv { + // total size: 0x8 +public: + unsigned long U : 14; // offset 0x0, size 0x4 + unsigned long pad14 : 2; // offset 0x0, size 0x4 + unsigned long V : 14; // offset 0x0, size 0x4 + unsigned long pad30 : 34; // offset 0x0, size 0x4 +}; +class sceGsTexa { + // total size: 0x8 +public: + unsigned long TA0 : 8; // offset 0x0, size 0x4 + unsigned long pad08 : 7; // offset 0x0, size 0x4 + unsigned long AEM : 1; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long TA1 : 8; // offset 0x0, size 0x4 + unsigned long pad40 : 24; // offset 0x0, size 0x4 +}; +class tGS_BGCOLOR { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int p0 : 8; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsFba { + // total size: 0x8 +public: + unsigned long FBA : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsPrmodecont { + // total size: 0x8 +public: + unsigned long AC : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsColclamp { + // total size: 0x8 +public: + unsigned long CLAMP : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsDBuff { + // total size: 0x230 +public: + class sceGsDispEnv disp[2]; // offset 0x0, size 0x50 + class sceGifTag giftag0; // offset 0x50, size 0x10 + class sceGsDrawEnv1 draw0; // offset 0x60, size 0x80 + class sceGsClear clear0; // offset 0xE0, size 0x60 + class sceGifTag giftag1; // offset 0x140, size 0x10 + class sceGsDrawEnv1 draw1; // offset 0x150, size 0x80 + class sceGsClear clear1; // offset 0x1D0, size 0x60 +}; +class sceGsXyoffset { + // total size: 0x8 +public: + unsigned long OFX : 16; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long OFY : 16; // offset 0x0, size 0x4 + unsigned long pad48 : 16; // offset 0x0, size 0x4 +}; +class sceGsDrawEnv1 { + // total size: 0x80 +public: + class sceGsFrame frame1; // offset 0x0, size 0x8 + unsigned long frame1addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf1; // offset 0x10, size 0x8 + signed long zbuf1addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset1; // offset 0x20, size 0x8 + signed long xyoffset1addr; // offset 0x28, size 0x4 + class sceGsScissor scissor1; // offset 0x30, size 0x8 + signed long scissor1addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test1; // offset 0x70, size 0x8 + signed long test1addr; // offset 0x78, size 0x4 +}; +class sceGsRgbaq { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int A : 8; // offset 0x0, size 0x4 + float Q; // offset 0x4, size 0x4 +}; +class sceGsTex0 { + // total size: 0x8 +public: + unsigned long TBP0 : 14; // offset 0x0, size 0x4 + unsigned long TBW : 6; // offset 0x0, size 0x4 + unsigned long PSM : 6; // offset 0x0, size 0x4 + unsigned long TW : 4; // offset 0x0, size 0x4 + unsigned long TH : 4; // offset 0x0, size 0x4 + unsigned long TCC : 1; // offset 0x0, size 0x4 + unsigned long TFX : 2; // offset 0x0, size 0x4 + unsigned long CBP : 14; // offset 0x0, size 0x4 + unsigned long CPSM : 4; // offset 0x0, size 0x4 + unsigned long CSM : 1; // offset 0x0, size 0x4 + unsigned long CSA : 5; // offset 0x0, size 0x4 + unsigned long CLD : 3; // offset 0x0, size 0x4 +}; +class _sceGifPackAd { + // total size: 0x10 +public: + unsigned long DATA; // offset 0x0, size 0x4 + unsigned long ADDR; // offset 0x8, size 0x4 +}; +class tGS_SMODE2 { + // total size: 0x8 +public: + unsigned int INT : 1; // offset 0x0, size 0x4 + unsigned int FFMD : 1; // offset 0x0, size 0x4 + unsigned int DPMS : 2; // offset 0x0, size 0x4 + unsigned int p0 : 28; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsFog { + // total size: 0x8 +public: + unsigned long pad00 : 56; // offset 0x0, size 0x4 + unsigned long F : 8; // offset 0x0, size 0x4 +}; +class tGS_DISPFB2 { + // total size: 0x8 +public: + unsigned int FBP : 9; // offset 0x0, size 0x4 + unsigned int FBW : 6; // offset 0x0, size 0x4 + unsigned int PSM : 5; // offset 0x0, size 0x4 + unsigned int p0 : 12; // offset 0x0, size 0x4 + unsigned int DBX : 11; // offset 0x4, size 0x4 + unsigned int DBY : 11; // offset 0x4, size 0x4 + unsigned int p1 : 10; // offset 0x4, size 0x4 +}; +class sceGsXyz { + // total size: 0x8 +public: + unsigned long X : 16; // offset 0x0, size 0x4 + unsigned long Y : 16; // offset 0x0, size 0x4 + unsigned long Z : 32; // offset 0x0, size 0x4 +}; +class sceGsAlpha { + // total size: 0x8 +public: + unsigned long A : 2; // offset 0x0, size 0x4 + unsigned long B : 2; // offset 0x0, size 0x4 + unsigned long C : 2; // offset 0x0, size 0x4 + unsigned long D : 2; // offset 0x0, size 0x4 + unsigned long pad8 : 24; // offset 0x0, size 0x4 + unsigned long FIX : 8; // offset 0x0, size 0x4 + unsigned long pad40 : 24; // offset 0x0, size 0x4 +}; +class sceGifTag { + // total size: 0x10 +public: + unsigned long NLOOP : 15; // offset 0x0, size 0x4 + unsigned long EOP : 1; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long id : 14; // offset 0x0, size 0x4 + unsigned long PRE : 1; // offset 0x0, size 0x4 + unsigned long PRIM : 11; // offset 0x0, size 0x4 + unsigned long FLG : 2; // offset 0x0, size 0x4 + unsigned long NREG : 4; // offset 0x0, size 0x4 + unsigned long REGS0 : 4; // offset 0x8, size 0x4 + unsigned long REGS1 : 4; // offset 0x8, size 0x4 + unsigned long REGS2 : 4; // offset 0x8, size 0x4 + unsigned long REGS3 : 4; // offset 0x8, size 0x4 + unsigned long REGS4 : 4; // offset 0x8, size 0x4 + unsigned long REGS5 : 4; // offset 0x8, size 0x4 + unsigned long REGS6 : 4; // offset 0x8, size 0x4 + unsigned long REGS7 : 4; // offset 0x8, size 0x4 + unsigned long REGS8 : 4; // offset 0x8, size 0x4 + unsigned long REGS9 : 4; // offset 0x8, size 0x4 + unsigned long REGS10 : 4; // offset 0x8, size 0x4 + unsigned long REGS11 : 4; // offset 0x8, size 0x4 + unsigned long REGS12 : 4; // offset 0x8, size 0x4 + unsigned long REGS13 : 4; // offset 0x8, size 0x4 + unsigned long REGS14 : 4; // offset 0x8, size 0x4 + unsigned long REGS15 : 4; // offset 0x8, size 0x4 +}; +class sceGpPrimR { + // total size: 0x50 +public: + class _sceDmaTag dmanext; // offset 0x0, size 0x10 + class sceGifTag giftag1; // offset 0x10, size 0x10 + class _sceGifPackAd userreg; // offset 0x20, size 0x10 + class sceGifTag giftag2; // offset 0x30, size 0x10 + class _sceGpReg reg[1]; // offset 0x40, size 0x8 +}; +class sceGsTexflush { + // total size: 0x8 +public: + unsigned long pad00; // offset 0x0, size 0x4 +}; +class sceGpTexEnv { + // total size: 0x50 +public: + class _sceDmaTag dmanext; // offset 0x0, size 0x10 + class sceGifTag giftag; // offset 0x10, size 0x10 + class sceGsTex1 tex1; // offset 0x20, size 0x8 + signed long tex1addr; // offset 0x28, size 0x4 + class sceGsTex0 tex0; // offset 0x30, size 0x8 + signed long tex0addr; // offset 0x38, size 0x4 + class sceGsClamp clamp; // offset 0x40, size 0x8 + signed long clampaddr; // offset 0x48, size 0x4 +}; +class xSysFontTbl { + // total size: 0x8 +public: + signed int x; // offset 0x0, size 0x4 + signed int y; // offset 0x4, size 0x4 +}; +class sceGsPabe { + // total size: 0x8 +public: + unsigned long PABE : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsXyzf { + // total size: 0x8 +public: + unsigned long X : 16; // offset 0x0, size 0x4 + unsigned long Y : 16; // offset 0x0, size 0x4 + unsigned long Z : 24; // offset 0x0, size 0x4 + unsigned long F : 8; // offset 0x0, size 0x4 +}; +class sceGsTrxdir { + // total size: 0x8 +public: + unsigned long XDR : 2; // offset 0x0, size 0x4 + unsigned long pad02 : 62; // offset 0x0, size 0x4 +}; +class sceGsScissor { + // total size: 0x8 +public: + unsigned long SCAX0 : 11; // offset 0x0, size 0x4 + unsigned long pad11 : 5; // offset 0x0, size 0x4 + unsigned long SCAX1 : 11; // offset 0x0, size 0x4 + unsigned long pad27 : 5; // offset 0x0, size 0x4 + unsigned long SCAY0 : 11; // offset 0x0, size 0x4 + unsigned long pad43 : 5; // offset 0x0, size 0x4 + unsigned long SCAY1 : 11; // offset 0x0, size 0x4 + unsigned long pad59 : 5; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iException.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D7280 -> 0x003D7288 +*/ +// Range: 0x3D7280 -> 0x3D7288 +void iExceptionRwDMAInit() { + // Blocks + /* anonymous block */ { + // Range: 0x3D7280 -> 0x3D7288 + } +} + +/* + Compile unit: C:\SB\Core\p2\iException.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D7290 -> 0x003D7298 +*/ +// Range: 0x3D7290 -> 0x3D7298 +void iExceptionInit() { + // Blocks + /* anonymous block */ { + // Range: 0x3D7290 -> 0x3D7298 + } +} + diff --git a/dwarf/SB/Core/p2/iFMV.cpp b/dwarf/SB/Core/p2/iFMV.cpp new file mode 100644 index 000000000..7aa35e1b5 --- /dev/null +++ b/dwarf/SB/Core/p2/iFMV.cpp @@ -0,0 +1,37 @@ +/* + Compile unit: C:\SB\Core\p2\iFMV.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iFMV.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA330 -> 0x001AA3EC +*/ +// Range: 0x1AA330 -> 0x1AA3EC +unsigned int iFMVPlay(char * filename /* r18 */, unsigned int buttons /* r17 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AA330 -> 0x1AA3EC + class RwResEntry * repEntry; // r16 + class RwResEntry * repEntryOwner; // r29+0x5C + } +} + diff --git a/dwarf/SB/Core/p2/iFX.cpp b/dwarf/SB/Core/p2/iFX.cpp new file mode 100644 index 000000000..e89610885 --- /dev/null +++ b/dwarf/SB/Core/p2/iFX.cpp @@ -0,0 +1,1335 @@ +/* + Compile unit: C:\SB\Core\p2\iFX.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static float sinRangePoint5[8]; // size: 0x20, address: 0x0 +float xFXWarbleParam[8]; // size: 0x20, address: 0x0 +class xEnt * warbEnt; // size: 0x4, address: 0x0 +static float warbc[4]; // size: 0x10, address: 0x0 +static class xVec3 * vbuf; // size: 0x4, address: 0x0 +static class xVec3 * nbuf; // size: 0x4, address: 0x0 +static unsigned int warbMode; // size: 0x4, address: 0x0 +static float warbTime; // size: 0x4, address: 0x0 +unsigned long gs_alpha_2; // size: 0x4, address: 0x50E7F0 +signed int RpAtomicPS2AllObjectSetupCallBack(class RxPS2AllPipeData *, class RwMatrixTag * *); // size: 0x0, address: 0x237FC8 +signed int iFXanimUVBridgeCallBack(class RxPS2AllPipeData *); // size: 0x0, address: 0x1AA6A0 +signed int RpMeshPS2AllInstanceCallBack(class RxPS2AllPipeData *, void * *, unsigned int); // size: 0x0, address: 0x239AF8 +class RwResEntry * RpMeshPS2AllResEntryAllocCallBack(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // size: 0x0, address: 0x2382B8 +signed int RpMeshPS2AllMeshInstanceTestCallBack(class RxPS2AllPipeData *); // size: 0x0, address: 0x239A68 +signed long FXanimUVPRS; // size: 0x4, address: 0x3D7300 +class RxClusterDefinition RxClPS2normal; // size: 0x10, address: 0x419208 +class RxClusterDefinition RxClPS2rgba; // size: 0x10, address: 0x4191F8 +class RxClusterDefinition RxClPS2uv; // size: 0x10, address: 0x4191D8 +class RxClusterDefinition RxClPS2xyz; // size: 0x10, address: 0x4191B8 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +void * skyUploadedCode; // size: 0x4, address: 0x50EBEC +signed long skyTest_1; // size: 0x4, address: 0x50EB58 +signed long skyClamp_1; // size: 0x4, address: 0x50EB70 +signed long skyTex1_1; // size: 0x4, address: 0x50EB78 +unsigned int skyUserSwitch1; // size: 0x4, address: 0x50EBF0 +unsigned int skyUserSwitch2; // size: 0x4, address: 0x50EBF4 +enum RwCullMode gSkyCullState; // size: 0x4, address: 0x50FD3C +__int128 skyClipVect2; // size: 0x10, address: 0x41A020 +__int128 skyClipVect1; // size: 0x10, address: 0x41A010 +__int128 skyCClipVect2; // size: 0x10, address: 0x41A040 +__int128 skyCClipVect1; // size: 0x10, address: 0x41A030 +signed int skyTLClipperMode; // size: 0x4, address: 0x50EBFC +signed int skyTSClipperMode; // size: 0x4, address: 0x50EBF8 +signed long skyPrim_State; // size: 0x4, address: 0x50EB90 +__int128 gifTag128; // size: 0x10, address: 0x419F90 +signed int skyAlphaTex; // size: 0x4, address: 0x50FD34 +signed int skyVertexAlpha; // size: 0x4, address: 0x50FD38 +float xFXanimUV2PScale[2]; // size: 0x8, address: 0x50E888 +float xFXanimUV2PTrans[2]; // size: 0x8, address: 0x50F9F0 +float xFXanimUV2PRotMat1[2]; // size: 0x8, address: 0x50E880 +float xFXanimUV2PRotMat0[2]; // size: 0x8, address: 0x50E878 +float xFXanimUVScale[2]; // size: 0x8, address: 0x50E870 +float xFXanimUVTrans[2]; // size: 0x8, address: 0x50F9E8 +float xFXanimUVRotMat1[2]; // size: 0x8, address: 0x50E868 +float xFXanimUVRotMat0[2]; // size: 0x8, address: 0x50E860 +class RwTexture * xFXanimUV2PTexture; // size: 0x4, address: 0x50F9F8 +class RwRaster * skyTextureRaster; // size: 0x4, address: 0x50FD30 +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RxPS2AllPipeData { + // total size: 0x48 +public: + class rxNodePS2AllPvtData * objPvtData; // offset 0x0, size 0x4 + class rxNodePS2AllMatPvtData * matPvtData; // offset 0x4, size 0x4 + void * sourceObject; // offset 0x8, size 0x4 + class RpMeshHeader * meshHeader; // offset 0xC, size 0x4 + class RwMeshCache * meshCache; // offset 0x10, size 0x4 + enum RxInstanceFlags objInstance; // offset 0x14, size 0x4 + unsigned int objIdentifier; // offset 0x18, size 0x4 + float spExtra; // offset 0x1C, size 0x4 + signed int numMorphTargets; // offset 0x20, size 0x4 + unsigned int fastMorphing; // offset 0x24, size 0x4 + unsigned char transType; // offset 0x28, size 0x1 + unsigned char primType; // offset 0x29, size 0x1 + unsigned char matModulate; // offset 0x2A, size 0x1 + unsigned char vu1CodeIndex; // offset 0x2B, size 0x1 + class RpMesh * mesh; // offset 0x2C, size 0x4 + class RwResEntry * * cacheEntryRef; // offset 0x30, size 0x4 + enum RxInstanceFlags meshInstance; // offset 0x34, size 0x4 + unsigned int meshIdentifier; // offset 0x38, size 0x4 + class RwSurfaceProperties * surfProps; // offset 0x3C, size 0x4 + class RwTexture * texture; // offset 0x40, size 0x4 + class RwRGBA matCol; // offset 0x44, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rwPS2AllResEntryHeader { + // total size: 0x1B0 +public: + signed int refCnt; // offset 0x0, size 0x4 + signed int clrCnt; // offset 0x4, size 0x4 + __int128 * data; // offset 0x8, size 0x4 + unsigned int numVerts; // offset 0xC, size 0x4 + unsigned int objIdentifier; // offset 0x10, size 0x4 + unsigned int meshIdentifier; // offset 0x14, size 0x4 + signed int batchSize; // offset 0x18, size 0x4 + signed int numBatches; // offset 0x1C, size 0x4 + signed int batchesPerTag; // offset 0x20, size 0x4 + signed int morphStart; // offset 0x24, size 0x4 + signed int morphFinish; // offset 0x28, size 0x4 + signed int morphNum; // offset 0x2C, size 0x4 + class rwPS2AllClusterQuickInfo clquickinfo[12]; // offset 0x30, size 0x60 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x90, size 0x120 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class rxNodePS2AllPvtData { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class rxNodePS2AllMatPvtData { + // total size: 0x32C +public: + signed int (* meshInstanceTestCB)(class RxPS2AllPipeData *); // offset 0x0, size 0x4 + class RwResEntry * (* resEntryAllocCB)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x4, size 0x4 + signed int (* instanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x8, size 0x4 + signed int (* bridgeCB)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + signed int (* postMeshCB)(class RxPS2AllPipeData *); // offset 0x10, size 0x4 + signed int vifOffset; // offset 0x14, size 0x4 + void * * vu1CodeArray; // offset 0x18, size 0x4 + unsigned int codeArrayLength; // offset 0x1C, size 0x4 + class rwPS2AllClusterInstanceInfo clinfo[12]; // offset 0x20, size 0x60 + unsigned int cliIndex[12]; // offset 0x80, size 0x30 + enum RpMeshHeaderFlags pipeType; // offset 0xB0, size 0x4 + unsigned char totallyOpaque; // offset 0xB4, size 0x1 + unsigned char numStripes; // offset 0xB5, size 0x1 + unsigned char sizeOnVU; // offset 0xB6, size 0x1 + unsigned char pad0; // offset 0xB7, size 0x1 + class rwPS2AllResEntryFormat strip; // offset 0xB8, size 0x138 + class rwPS2AllResEntryFormat list; // offset 0x1F0, size 0x138 + unsigned int magicValue; // offset 0x328, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class rwPS2AllClusterInstanceInfo { + // total size: 0x8 +public: + unsigned int attrib; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RpMeshHeaderFlags { + rpMESHHEADERTRISTRIP = 1, + rpMESHHEADERTRIFAN = 2, + rpMESHHEADERLINELIST = 4, + rpMESHHEADERPOLYLINE = 8, + rpMESHHEADERPOINTLIST = 16, + rpMESHHEADERPRIMMASK = 255, + rpMESHHEADERUNINDEXED = 256, + rpMESHHEADERFLAGSFORCEENUMSIZEINT = 2147483647, +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum RxInstanceFlags { + rxINSTANCENAINSTANCEFLAG = 0, + rxINSTANCEDONTINSTANCE = 1, + rxINSTANCEINPLACEINSTANCE = 2, + rxINSTANCECONGRUENTINSTANCE = 4, + rxINSTANCEFULLINSTANCE = 8, + rxINSTANCETYPEMASK = 14, + rxINSTANCEXYZ = 16, + rxINSTANCENORMAL = 32, + rxINSTANCERGBA = 64, + rxINSTANCEUV = 128, + rxINSTANCEUV1 = 128, + rxINSTANCEUV2 = 256, + rxINSTANCEUV3 = 512, + rxINSTANCEUV4 = 1024, + rxINSTANCEUV5 = 2048, + rxINSTANCEUV6 = 4096, + rxINSTANCEUV7 = 8192, + rxINSTANCEUV8 = 16384, + rxINSTANCEUSER1 = 32768, + rxINSTANCEUSER2 = 65536, + rxINSTANCEUSER3 = 131072, + rxINSTANCEUSER4 = 262144, + rxINSTANCEALL = 524272, + rxINSTANCEMASK = 524287, + rxINSTANCEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class rwPS2AllResEntryFormat { + // total size: 0x138 +public: + unsigned char batchRound; // offset 0x0, size 0x1 + unsigned char stripReverse; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + unsigned int maxInputSize; // offset 0x4, size 0x4 + signed int batchSize; // offset 0x8, size 0x4 + signed int batchesPerTag; // offset 0xC, size 0x4 + signed int morphBatchSize; // offset 0x10, size 0x4 + signed int morphBatchesPerTag; // offset 0x14, size 0x4 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x18, size 0x120 +}; +class rwPS2AllClusterQuickInfo { + // total size: 0x8 +public: + __int128 * data; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; + +/* + Compile unit: C:\SB\Core\p2\iFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA3F0 -> 0x001AA4B8 +*/ +// Range: 0x1AA3F0 -> 0x1AA4B8 +class RxPipeline * iFXanimUVCreatePipe() { + // Blocks + /* anonymous block */ { + // Range: 0x1AA3F0 -> 0x1AA4B8 + class RxPipeline * newPipe; // r2 + class RxPipeline * matPipe; // r18 + class RxPipelineNode * plNode; // r17 + class RxPipeline * lPipe; // r16 + class RxNodeDefinition * ps2All; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA4C0 -> 0x001AA6A0 +*/ +// Range: 0x1AA4C0 -> 0x1AA6A0 +static class RxPipeline * iFXanimUVCreateMaterialPipe() { + // Blocks + /* anonymous block */ { + // Range: 0x1AA4C0 -> 0x1AA6A0 + class RxPipeline * newPipe; // r2 + class RxPipeline * lockedPipe; // r16 + class RxNodeDefinition * ps2AllMat; // r18 + class RxPipelineNode * plNode; // r17 + void * VUCodeArray[32]; // @ 0x00416D60 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA6A0 -> 0x001AAF34 +*/ +// Range: 0x1AA6A0 -> 0x1AAF34 +static signed int iFXanimUVBridgeCallBack(class RxPS2AllPipeData * ps2AllPipeData /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AA6A0 -> 0x1AAF34 + unsigned int numInitialQW; // r17 + unsigned int numUserInitialQW; // r2 + unsigned int numExtraQW; // r3 + unsigned int prim; // r3 + unsigned int primSwitch; // r2 + unsigned int fogSwitch; // r12 + class RwRaster * customRaster; // r17 + unsigned long tmp; // r3 + unsigned long tmp1; // r11 + __int128 ltmp; // r12 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RwTexture * _nwtx; // r18 + class RwRaster * _nwrs; // r17 + unsigned int cFormat; // r3 + signed int textureUploadSuccess; // r2 + unsigned int _itQW; // r2 + unsigned int _xaQW; // r2 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + __int128 * _rwDMA_local_rwDMAPktPtr; // r10 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r4 + unsigned long __tmp1; // r4 + unsigned int __prmTmp; // r3 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r4 + float __colScale; // r29+0x40 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r5 + unsigned long __tmp1; // r5 + unsigned int __skySwitchFlag; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + unsigned long __tmp; // r8 + unsigned long __tmp1; // r3 + __int128 __ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + void * _kohd; // r5 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class rwPS2AllResEntryHeader * _p2rh; // r2 + unsigned long __tmp; // r3 + unsigned long __tmp1; // r5 + __int128 __ltmp; // r3 + __int128 ___ltmp; // r2 + unsigned int stat; // r2 + } +} + diff --git a/dwarf/SB/Core/p2/iFXgoo.cpp b/dwarf/SB/Core/p2/iFXgoo.cpp new file mode 100644 index 000000000..03e171d87 --- /dev/null +++ b/dwarf/SB/Core/p2/iFXgoo.cpp @@ -0,0 +1,883 @@ +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static float sinRangePoint5[8]; // size: 0x20, address: 0x4E0740 +static float xFXWarbleParam[8]; // size: 0x20, address: 0x5DE700 +static class iFXgooParams gooParams; // size: 0x24, address: 0x4E0760 +static unsigned long gs_alpha_2; // size: 0x4, address: 0x50F0B0 +static class RwTexture * g_txtrGoo; // size: 0x4, address: 0x5100F8 +signed int RpAtomicPS2AllObjectSetupCallBack(class RxPS2AllPipeData *, class RwMatrixTag * *); // size: 0x0, address: 0x237FC8 +signed int iFXgooBridgeCallBack(class RxPS2AllPipeData *); // size: 0x0, address: 0x329C90 +signed int RpMeshPS2AllInstanceCallBack(class RxPS2AllPipeData *, void * *, unsigned int); // size: 0x0, address: 0x239AF8 +class RwResEntry * RpMeshPS2AllResEntryAllocCallBack(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // size: 0x0, address: 0x2382B8 +signed int RpMeshPS2AllMeshInstanceTestCallBack(class RxPS2AllPipeData *); // size: 0x0, address: 0x239A68 +signed long FXgooPRS; // size: 0x4, address: 0x3FA190 +class RxClusterDefinition RxClPS2normal; // size: 0x10, address: 0x419208 +class RxClusterDefinition RxClPS2rgba; // size: 0x10, address: 0x4191F8 +class RxClusterDefinition RxClPS2uv; // size: 0x10, address: 0x4191D8 +class RxClusterDefinition RxClPS2xyz; // size: 0x10, address: 0x4191B8 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +void * skyUploadedCode; // size: 0x4, address: 0x50EBEC +signed long skyTest_1; // size: 0x4, address: 0x50EB58 +signed long skyClamp_1; // size: 0x4, address: 0x50EB70 +signed long skyTex1_1; // size: 0x4, address: 0x50EB78 +unsigned int skyUserSwitch1; // size: 0x4, address: 0x50EBF0 +unsigned int skyUserSwitch2; // size: 0x4, address: 0x50EBF4 +enum RwCullMode gSkyCullState; // size: 0x4, address: 0x50FD3C +__int128 skyClipVect2; // size: 0x10, address: 0x41A020 +__int128 skyClipVect1; // size: 0x10, address: 0x41A010 +__int128 skyCClipVect2; // size: 0x10, address: 0x41A040 +__int128 skyCClipVect1; // size: 0x10, address: 0x41A030 +signed int skyTLClipperMode; // size: 0x4, address: 0x50EBFC +signed int skyTSClipperMode; // size: 0x4, address: 0x50EBF8 +signed long skyPrim_State; // size: 0x4, address: 0x50EB90 +__int128 gifTag128; // size: 0x10, address: 0x419F90 +signed int skyAlphaTex; // size: 0x4, address: 0x50FD34 +signed int skyVertexAlpha; // size: 0x4, address: 0x50FD38 +float xFXanimUV2PScale[2]; // size: 0x8, address: 0x50E888 +float xFXanimUV2PTrans[2]; // size: 0x8, address: 0x50F9F0 +float xFXanimUV2PRotMat1[2]; // size: 0x8, address: 0x50E880 +float xFXanimUV2PRotMat0[2]; // size: 0x8, address: 0x50E878 +float xFXanimUVScale[2]; // size: 0x8, address: 0x50E870 +float xFXanimUVTrans[2]; // size: 0x8, address: 0x50F9E8 +float xFXanimUVRotMat1[2]; // size: 0x8, address: 0x50E868 +float xFXanimUVRotMat0[2]; // size: 0x8, address: 0x50E860 +class RwTexture * xFXanimUV2PTexture; // size: 0x4, address: 0x50F9F8 +class RwRaster * skyTextureRaster; // size: 0x4, address: 0x50FD30 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RxPS2AllPipeData { + // total size: 0x48 +public: + class rxNodePS2AllPvtData * objPvtData; // offset 0x0, size 0x4 + class rxNodePS2AllMatPvtData * matPvtData; // offset 0x4, size 0x4 + void * sourceObject; // offset 0x8, size 0x4 + class RpMeshHeader * meshHeader; // offset 0xC, size 0x4 + class RwMeshCache * meshCache; // offset 0x10, size 0x4 + enum RxInstanceFlags objInstance; // offset 0x14, size 0x4 + unsigned int objIdentifier; // offset 0x18, size 0x4 + float spExtra; // offset 0x1C, size 0x4 + signed int numMorphTargets; // offset 0x20, size 0x4 + unsigned int fastMorphing; // offset 0x24, size 0x4 + unsigned char transType; // offset 0x28, size 0x1 + unsigned char primType; // offset 0x29, size 0x1 + unsigned char matModulate; // offset 0x2A, size 0x1 + unsigned char vu1CodeIndex; // offset 0x2B, size 0x1 + class RpMesh * mesh; // offset 0x2C, size 0x4 + class RwResEntry * * cacheEntryRef; // offset 0x30, size 0x4 + enum RxInstanceFlags meshInstance; // offset 0x34, size 0x4 + unsigned int meshIdentifier; // offset 0x38, size 0x4 + class RwSurfaceProperties * surfProps; // offset 0x3C, size 0x4 + class RwTexture * texture; // offset 0x40, size 0x4 + class RwRGBA matCol; // offset 0x44, size 0x4 +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rwPS2AllResEntryHeader { + // total size: 0x1B0 +public: + signed int refCnt; // offset 0x0, size 0x4 + signed int clrCnt; // offset 0x4, size 0x4 + __int128 * data; // offset 0x8, size 0x4 + unsigned int numVerts; // offset 0xC, size 0x4 + unsigned int objIdentifier; // offset 0x10, size 0x4 + unsigned int meshIdentifier; // offset 0x14, size 0x4 + signed int batchSize; // offset 0x18, size 0x4 + signed int numBatches; // offset 0x1C, size 0x4 + signed int batchesPerTag; // offset 0x20, size 0x4 + signed int morphStart; // offset 0x24, size 0x4 + signed int morphFinish; // offset 0x28, size 0x4 + signed int morphNum; // offset 0x2C, size 0x4 + class rwPS2AllClusterQuickInfo clquickinfo[12]; // offset 0x30, size 0x60 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x90, size 0x120 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class rwPS2AllClusterInstanceInfo { + // total size: 0x8 +public: + unsigned int attrib; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +enum RpMeshHeaderFlags { + rpMESHHEADERTRISTRIP = 1, + rpMESHHEADERTRIFAN = 2, + rpMESHHEADERLINELIST = 4, + rpMESHHEADERPOLYLINE = 8, + rpMESHHEADERPOINTLIST = 16, + rpMESHHEADERPRIMMASK = 255, + rpMESHHEADERUNINDEXED = 256, + rpMESHHEADERFLAGSFORCEENUMSIZEINT = 2147483647, +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class rxNodePS2AllMatPvtData { + // total size: 0x32C +public: + signed int (* meshInstanceTestCB)(class RxPS2AllPipeData *); // offset 0x0, size 0x4 + class RwResEntry * (* resEntryAllocCB)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x4, size 0x4 + signed int (* instanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x8, size 0x4 + signed int (* bridgeCB)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + signed int (* postMeshCB)(class RxPS2AllPipeData *); // offset 0x10, size 0x4 + signed int vifOffset; // offset 0x14, size 0x4 + void * * vu1CodeArray; // offset 0x18, size 0x4 + unsigned int codeArrayLength; // offset 0x1C, size 0x4 + class rwPS2AllClusterInstanceInfo clinfo[12]; // offset 0x20, size 0x60 + unsigned int cliIndex[12]; // offset 0x80, size 0x30 + enum RpMeshHeaderFlags pipeType; // offset 0xB0, size 0x4 + unsigned char totallyOpaque; // offset 0xB4, size 0x1 + unsigned char numStripes; // offset 0xB5, size 0x1 + unsigned char sizeOnVU; // offset 0xB6, size 0x1 + unsigned char pad0; // offset 0xB7, size 0x1 + class rwPS2AllResEntryFormat strip; // offset 0xB8, size 0x138 + class rwPS2AllResEntryFormat list; // offset 0x1F0, size 0x138 + unsigned int magicValue; // offset 0x328, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxInstanceFlags { + rxINSTANCENAINSTANCEFLAG = 0, + rxINSTANCEDONTINSTANCE = 1, + rxINSTANCEINPLACEINSTANCE = 2, + rxINSTANCECONGRUENTINSTANCE = 4, + rxINSTANCEFULLINSTANCE = 8, + rxINSTANCETYPEMASK = 14, + rxINSTANCEXYZ = 16, + rxINSTANCENORMAL = 32, + rxINSTANCERGBA = 64, + rxINSTANCEUV = 128, + rxINSTANCEUV1 = 128, + rxINSTANCEUV2 = 256, + rxINSTANCEUV3 = 512, + rxINSTANCEUV4 = 1024, + rxINSTANCEUV5 = 2048, + rxINSTANCEUV6 = 4096, + rxINSTANCEUV7 = 8192, + rxINSTANCEUV8 = 16384, + rxINSTANCEUSER1 = 32768, + rxINSTANCEUSER2 = 65536, + rxINSTANCEUSER3 = 131072, + rxINSTANCEUSER4 = 262144, + rxINSTANCEALL = 524272, + rxINSTANCEMASK = 524287, + rxINSTANCEFORCEENUMSIZEINT = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class rwPS2AllResEntryFormat { + // total size: 0x138 +public: + unsigned char batchRound; // offset 0x0, size 0x1 + unsigned char stripReverse; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + unsigned int maxInputSize; // offset 0x4, size 0x4 + signed int batchSize; // offset 0x8, size 0x4 + signed int batchesPerTag; // offset 0xC, size 0x4 + signed int morphBatchSize; // offset 0x10, size 0x4 + signed int morphBatchesPerTag; // offset 0x14, size 0x4 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x18, size 0x120 +}; +class rwPS2AllClusterQuickInfo { + // total size: 0x8 +public: + __int128 * data; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class iFXgooParams { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + unsigned int state; // offset 0xC, size 0x4 + float warb_time; // offset 0x10, size 0x4 + float alpha; // offset 0x14, size 0x4 + float min; // offset 0x18, size 0x4 + float max; // offset 0x1C, size 0x4 + float * warbc; // offset 0x20, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +class rxNodePS2AllPvtData { + // total size: 0x0 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003299E0 -> 0x00329AA8 +*/ +// Range: 0x3299E0 -> 0x329AA8 +class RxPipeline * iFXgooCreatePipe() { + // Blocks + /* anonymous block */ { + // Range: 0x3299E0 -> 0x329AA8 + class RxPipeline * newPipe; // r2 + class RxPipeline * matPipe; // r18 + class RxPipelineNode * plNode; // r17 + class RxPipeline * lPipe; // r16 + class RxNodeDefinition * ps2All; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00329AB0 -> 0x00329C90 +*/ +// Range: 0x329AB0 -> 0x329C90 +static class RxPipeline * iFXgooCreateMaterialPipe() { + // Blocks + /* anonymous block */ { + // Range: 0x329AB0 -> 0x329C90 + class RxPipeline * newPipe; // r2 + class RxPipeline * lockedPipe; // r16 + class RxNodeDefinition * ps2AllMat; // r18 + class RxPipelineNode * plNode; // r17 + void * VUCodeArray[32]; // @ 0x004E0790 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00329C90 -> 0x0032A644 +*/ +// Range: 0x329C90 -> 0x32A644 +static signed int iFXgooBridgeCallBack(class RxPS2AllPipeData * ps2AllPipeData /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x329C90 -> 0x32A644 + unsigned int numInitialQW; // r17 + unsigned int numUserInitialQW; // r2 + unsigned int numExtraQW; // r3 + unsigned int prim; // r24 + unsigned int primSwitch; // r2 + unsigned int fogSwitch; // r24 + class RwRaster * customRaster; // r17 + unsigned long tmp; // r5 + unsigned long tmp1; // r14 + __int128 ltmp; // r15 + class RwTexture * tex; // r2 + signed int rc; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RwTexture * _nwtx; // r18 + class RwRaster * _nwrs; // r17 + unsigned int cFormat; // r3 + signed int textureUploadSuccess; // r2 + unsigned int _itQW; // r2 + unsigned int _xaQW; // r2 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + __int128 * _rwDMA_local_rwDMAPktPtr; // r13 + __int128 ___ltmp; // r2 + class iFXgooParams * goo; // r12 + float A; // r2 + float B; // r29+0x40 + float saved_min; // r29+0x40 + float saved_max; // r29+0x40 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r6 + unsigned long __tmp1; // r6 + unsigned int __prmTmp; // r3 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r4 + float __colScale; // r29+0x40 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r5 + unsigned long __tmp1; // r5 + unsigned int __skySwitchFlag; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + unsigned long __tmp; // r8 + unsigned long __tmp1; // r3 + __int128 __ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + void * _kohd; // r5 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class rwPS2AllResEntryHeader * _p2rh; // r2 + unsigned long __tmp; // r3 + unsigned long __tmp1; // r5 + __int128 __ltmp; // r3 + __int128 ___ltmp; // r2 + unsigned int stat; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032A650 -> 0x0032A658 +*/ +// Range: 0x32A650 -> 0x32A658 +void iFXGooSceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x32A650 -> 0x32A658 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032A660 -> 0x0032A688 +*/ +// Range: 0x32A660 -> 0x32A688 +void iFXGooSceneSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x32A660 -> 0x32A688 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXgoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032A690 -> 0x0032A6E8 +*/ +// Range: 0x32A690 -> 0x32A6E8 +void iFXgooSetParams(class xVec3 * center /* r2 */, unsigned int state /* r2 */, float warb_time /* r29 */, float alpha /* r29 */, float min /* r29 */, float max /* r29 */, float * warbc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32A690 -> 0x32A6E8 + } +} + diff --git a/dwarf/SB/Core/p2/iFXshadow.cpp b/dwarf/SB/Core/p2/iFXshadow.cpp new file mode 100644 index 000000000..91ccfdfe9 --- /dev/null +++ b/dwarf/SB/Core/p2/iFXshadow.cpp @@ -0,0 +1,1559 @@ +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class RxPipeline * ShadowMapMaterialPipeline; // size: 0x4, address: 0x51015C +class RxPipeline * ShadowMapAtomicPipeline; // size: 0x4, address: 0x510160 +signed int ShadowAtomicOffset; // size: 0x4, address: 0x0 +signed int ShadowLightOffset; // size: 0x4, address: 0x0 +signed int ShadowWorldOffset; // size: 0x4, address: 0x0 +static void * VUCodeArray[32]; // size: 0x80, address: 0x4E0A40 +unsigned int ShadowMapLightOffset; // size: 0x4, address: 0x510164 +static class RwV3d Yaxis; // size: 0xC, address: 0x0 +static class RwV3d Zaxis; // size: 0xC, address: 0x0 +static unsigned int ShadowWidth; // size: 0x4, address: 0x0 +static unsigned int ShadowHeight; // size: 0x4, address: 0x0 +static float ViewScale; // size: 0x4, address: 0x0 +static float PointLightRadius; // size: 0x4, address: 0x0 +static float PointLightBrightness; // size: 0x4, address: 0x0 +static float DirectionalLightBrightness; // size: 0x4, address: 0x0 +static class RpAtomic * MainAtomic; // size: 0x4, address: 0x0 +static class RpAtomic * ShadowAtomic; // size: 0x4, address: 0x0 +static class RpAtomic * ShadowMapAtomic; // size: 0x4, address: 0x0 +static class RwV3d sc_offset; // size: 0xC, address: 0x0 +static class RwV3d light_offset; // size: 0xC, address: 0x0 +class RwCamera * ShadowCamera; // size: 0x4, address: 0x50FB20 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RpLight * ShadowLight; // size: 0x4, address: 0x50FB00 +class RwCamera * ShadowCamera; // size: 0x4, address: 0x50FB20 +signed int ShadowMapObjectSetupCallBack(class RxPS2AllPipeData *, class RwMatrixTag * *); // size: 0x0, address: 0x33BF30 +signed int ShadowMapBridgeCallBack(class RxPS2AllPipeData *); // size: 0x0, address: 0x33B470 +signed int RpMeshPS2AllInstanceCallBack(class RxPS2AllPipeData *, void * *, unsigned int); // size: 0x0, address: 0x239AF8 +class RwResEntry * RpMeshPS2AllResEntryAllocCallBack(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // size: 0x0, address: 0x2382B8 +signed int RpMeshPS2AllMeshInstanceTestCallBack(class RxPS2AllPipeData *); // size: 0x0, address: 0x239A68 +class RxClusterDefinition RxClPS2normal; // size: 0x10, address: 0x419208 +class RxClusterDefinition RxClPS2rgba; // size: 0x10, address: 0x4191F8 +class RxClusterDefinition RxClPS2uv; // size: 0x10, address: 0x4191D8 +class RxClusterDefinition RxClPS2xyz; // size: 0x10, address: 0x4191B8 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +void * skyUploadedCode; // size: 0x4, address: 0x50EBEC +signed long skyTest_1; // size: 0x4, address: 0x50EB58 +signed long skyClamp_1; // size: 0x4, address: 0x50EB70 +signed long skyTex1_1; // size: 0x4, address: 0x50EB78 +unsigned int skyUserSwitch1; // size: 0x4, address: 0x50EBF0 +unsigned int skyUserSwitch2; // size: 0x4, address: 0x50EBF4 +enum RwCullMode gSkyCullState; // size: 0x4, address: 0x50FD3C +__int128 skyClipVect2; // size: 0x10, address: 0x41A020 +__int128 skyClipVect1; // size: 0x10, address: 0x41A010 +__int128 skyCClipVect2; // size: 0x10, address: 0x41A040 +__int128 skyCClipVect1; // size: 0x10, address: 0x41A030 +signed int skyTLClipperMode; // size: 0x4, address: 0x50EBFC +signed int skyTSClipperMode; // size: 0x4, address: 0x50EBF8 +signed long skyPrim_State; // size: 0x4, address: 0x50EB90 +__int128 gifTag128; // size: 0x10, address: 0x419F90 +signed int skyAlphaTex; // size: 0x4, address: 0x50FD34 +signed int skyVertexAlpha; // size: 0x4, address: 0x50FD38 +class RwRaster * skyTextureRaster; // size: 0x4, address: 0x50FD30 +class RwRaster * ShadowCameraRaster; // size: 0x4, address: 0x50FB24 +float ShadowStrength; // size: 0x4, address: 0x50E8B0 +class RwMatrixTag sm_matrix; // size: 0x40, address: 0x5A51D0 +class RwCamera * ShadowCamera; // size: 0x4, address: 0x50FB20 +unsigned char skyTransType; // size: 0x1, address: 0x50EBE8 +signed int skyCameraExt; // size: 0x4, address: 0x50FD2C +signed int rwPip2GeometryOffset; // size: 0x4, address: 0x50FC18 +signed int rwPip2AtomicOffset; // size: 0x4, address: 0x50FC1C +class RpLight * ShadowLight; // size: 0x4, address: 0x50FB00 +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +class RxPS2AllPipeData { + // total size: 0x48 +public: + class rxNodePS2AllPvtData * objPvtData; // offset 0x0, size 0x4 + class rxNodePS2AllMatPvtData * matPvtData; // offset 0x4, size 0x4 + void * sourceObject; // offset 0x8, size 0x4 + class RpMeshHeader * meshHeader; // offset 0xC, size 0x4 + class RwMeshCache * meshCache; // offset 0x10, size 0x4 + enum RxInstanceFlags objInstance; // offset 0x14, size 0x4 + unsigned int objIdentifier; // offset 0x18, size 0x4 + float spExtra; // offset 0x1C, size 0x4 + signed int numMorphTargets; // offset 0x20, size 0x4 + unsigned int fastMorphing; // offset 0x24, size 0x4 + unsigned char transType; // offset 0x28, size 0x1 + unsigned char primType; // offset 0x29, size 0x1 + unsigned char matModulate; // offset 0x2A, size 0x1 + unsigned char vu1CodeIndex; // offset 0x2B, size 0x1 + class RpMesh * mesh; // offset 0x2C, size 0x4 + class RwResEntry * * cacheEntryRef; // offset 0x30, size 0x4 + enum RxInstanceFlags meshInstance; // offset 0x34, size 0x4 + unsigned int meshIdentifier; // offset 0x38, size 0x4 + class RwSurfaceProperties * surfProps; // offset 0x3C, size 0x4 + class RwTexture * texture; // offset 0x40, size 0x4 + class RwRGBA matCol; // offset 0x44, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class rwPS2AllResEntryHeader { + // total size: 0x1B0 +public: + signed int refCnt; // offset 0x0, size 0x4 + signed int clrCnt; // offset 0x4, size 0x4 + __int128 * data; // offset 0x8, size 0x4 + unsigned int numVerts; // offset 0xC, size 0x4 + unsigned int objIdentifier; // offset 0x10, size 0x4 + unsigned int meshIdentifier; // offset 0x14, size 0x4 + signed int batchSize; // offset 0x18, size 0x4 + signed int numBatches; // offset 0x1C, size 0x4 + signed int batchesPerTag; // offset 0x20, size 0x4 + signed int morphStart; // offset 0x24, size 0x4 + signed int morphFinish; // offset 0x28, size 0x4 + signed int morphNum; // offset 0x2C, size 0x4 + class rwPS2AllClusterQuickInfo clquickinfo[12]; // offset 0x30, size 0x60 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x90, size 0x120 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class rwPS2AllClusterInstanceInfo { + // total size: 0x8 +public: + unsigned int attrib; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RpMeshHeaderFlags { + rpMESHHEADERTRISTRIP = 1, + rpMESHHEADERTRIFAN = 2, + rpMESHHEADERLINELIST = 4, + rpMESHHEADERPOLYLINE = 8, + rpMESHHEADERPOINTLIST = 16, + rpMESHHEADERPRIMMASK = 255, + rpMESHHEADERUNINDEXED = 256, + rpMESHHEADERFLAGSFORCEENUMSIZEINT = 2147483647, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class Shadow { + // total size: 0x1 +}; +class xEnv { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +class rxNodePS2AllMatPvtData { + // total size: 0x32C +public: + signed int (* meshInstanceTestCB)(class RxPS2AllPipeData *); // offset 0x0, size 0x4 + class RwResEntry * (* resEntryAllocCB)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x4, size 0x4 + signed int (* instanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x8, size 0x4 + signed int (* bridgeCB)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + signed int (* postMeshCB)(class RxPS2AllPipeData *); // offset 0x10, size 0x4 + signed int vifOffset; // offset 0x14, size 0x4 + void * * vu1CodeArray; // offset 0x18, size 0x4 + unsigned int codeArrayLength; // offset 0x1C, size 0x4 + class rwPS2AllClusterInstanceInfo clinfo[12]; // offset 0x20, size 0x60 + unsigned int cliIndex[12]; // offset 0x80, size 0x30 + enum RpMeshHeaderFlags pipeType; // offset 0xB0, size 0x4 + unsigned char totallyOpaque; // offset 0xB4, size 0x1 + unsigned char numStripes; // offset 0xB5, size 0x1 + unsigned char sizeOnVU; // offset 0xB6, size 0x1 + unsigned char pad0; // offset 0xB7, size 0x1 + class rwPS2AllResEntryFormat strip; // offset 0xB8, size 0x138 + class rwPS2AllResEntryFormat list; // offset 0x1F0, size 0x138 + unsigned int magicValue; // offset 0x328, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RxInstanceFlags { + rxINSTANCENAINSTANCEFLAG = 0, + rxINSTANCEDONTINSTANCE = 1, + rxINSTANCEINPLACEINSTANCE = 2, + rxINSTANCECONGRUENTINSTANCE = 4, + rxINSTANCEFULLINSTANCE = 8, + rxINSTANCETYPEMASK = 14, + rxINSTANCEXYZ = 16, + rxINSTANCENORMAL = 32, + rxINSTANCERGBA = 64, + rxINSTANCEUV = 128, + rxINSTANCEUV1 = 128, + rxINSTANCEUV2 = 256, + rxINSTANCEUV3 = 512, + rxINSTANCEUV4 = 1024, + rxINSTANCEUV5 = 2048, + rxINSTANCEUV6 = 4096, + rxINSTANCEUV7 = 8192, + rxINSTANCEUV8 = 16384, + rxINSTANCEUSER1 = 32768, + rxINSTANCEUSER2 = 65536, + rxINSTANCEUSER3 = 131072, + rxINSTANCEUSER4 = 262144, + rxINSTANCEALL = 524272, + rxINSTANCEMASK = 524287, + rxINSTANCEFORCEENUMSIZEINT = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xSurface { + // total size: 0x0 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class rwPS2AllClusterQuickInfo { + // total size: 0x8 +public: + __int128 * data; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class rwPS2AllResEntryFormat { + // total size: 0x138 +public: + unsigned char batchRound; // offset 0x0, size 0x1 + unsigned char stripReverse; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + unsigned int maxInputSize; // offset 0x4, size 0x4 + signed int batchSize; // offset 0x8, size 0x4 + signed int batchesPerTag; // offset 0xC, size 0x4 + signed int morphBatchSize; // offset 0x10, size 0x4 + signed int morphBatchesPerTag; // offset 0x14, size 0x4 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x18, size 0x120 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RwFrustumTestResult { + rwSPHEREOUTSIDE = 0, + rwSPHEREBOUNDARY = 1, + rwSPHEREINSIDE = 2, + rwFRUSTUMTESTRESULTFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class rpAtomicPS2AllLightData { + // total size: 0x60 +public: + class RwSurfaceProperties * surface; // offset 0x0, size 0x4 + class RwMatrixTag invMat; // offset 0x10, size 0x40 + float invScale; // offset 0x50, size 0x4 + float recipInvScale; // offset 0x54, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwMemory { + // total size: 0x8 +public: + unsigned char * start; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class rxNodePS2AllPvtData { + // total size: 0x0 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033B190 -> 0x0033B2A8 +*/ +// Range: 0x33B190 -> 0x33B2A8 +signed int ShadowMapCreatePipelines() { + // Blocks + /* anonymous block */ { + // Range: 0x33B190 -> 0x33B2A8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033B2B0 -> 0x0033B464 +*/ +// Range: 0x33B2B0 -> 0x33B464 +static class RxPipeline * ShadowMapCreateMaterialPipeline() { + // Blocks + /* anonymous block */ { + // Range: 0x33B2B0 -> 0x33B464 + class RxPipeline * pipe; // r19 + class RxPipeline * lpipe; // r16 + class RxNodeDefinition * ps2allmat; // r18 + class RxPipelineNode * plnode; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033B470 -> 0x0033BBBC +*/ +// Range: 0x33B470 -> 0x33BBBC +static signed int ShadowMapBridgeCallBack(class RxPS2AllPipeData * ps2AllPipeData /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33B470 -> 0x33BBBC + unsigned int numInitialQW; // r17 + unsigned int numExtraQW; // r3 + unsigned int numShadows; // r20 + unsigned int numShadowQW; // r19 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RwTexture * _nwtx; // r18 + class RwRaster * _nwrs; // r17 + unsigned int cFormat; // r3 + signed int textureUploadSuccess; // r2 + unsigned int _itQW; // r2 + unsigned int _xaQW; // r2 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r5 + unsigned long __tmp1; // r7 + unsigned int __prmTmp; // r3 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r4 + float __colScale; // r29+0x60 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r3 + unsigned long __tmp1; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + __int128 __ltmp; // r5 + unsigned long __tmp1; // r5 + unsigned int __skySwitchFlag; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + unsigned long __tmp; // r8 + unsigned long __tmp1; // r3 + __int128 __ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + void * _kohd; // r5 + unsigned long tmp; // r3 + __int128 ltmp; // r3 + __int128 ___ltmp; // r2 + class RxPS2AllPipeData * _p2apd; // r2 + class rwPS2AllResEntryHeader * _p2rh; // r2 + unsigned long __tmp; // r3 + unsigned long __tmp1; // r5 + __int128 __ltmp; // r3 + __int128 ___ltmp; // r2 + unsigned int stat; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033BBC0 -> 0x0033BDB8 +*/ +// Range: 0x33BBC0 -> 0x33BDB8 +static void ShadowMapUpload(class RxPS2AllPipeData * ps2AllPipeData /* r16 */, unsigned int numShadows /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33BBC0 -> 0x33BDB8 + unsigned long tmp; // r7 + unsigned long tmp1; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033BDC0 -> 0x0033BF28 +*/ +// Range: 0x33BDC0 -> 0x33BF28 +static class Shadow * DKShadowDataUpload(class Shadow * shadow /* r17 */, class RxPS2AllPipeData * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33BDC0 -> 0x33BF28 + unsigned int msw; // r29+0x7C + unsigned int lsw; // r29+0x78 + unsigned long tmp; // r9 + class RwMatrixTag matrix; // r29+0x30 + class RwCamera * camera; // r16 + float val; // r29+0x74 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033BF30 -> 0x0033C394 +*/ +// Range: 0x33BF30 -> 0x33C394 +static signed int ShadowMapObjectSetupCallBack(class RxPS2AllPipeData * ps2AllPipeData /* r18 */, class RwMatrixTag * * transform /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33BF30 -> 0x33C394 + class RpAtomic * atomic; // r16 + enum RwFrustumTestResult inFrustum; // r29+0x5C + class RpGeometry * _gmty; // r7 + class RpInterpolator * _itpltr; // r2 + class RpGeometry * _gmty; // r4 + class RwResEntry * resEntry; // r2 + class rwPS2AllResEntryHeader * ps2AllResHeader; // r3 + class RpInterpolator * interpolator; // r2 + class RwMatrixTag * _viewMatrix; // r19 + class RwMatrixTag * _mpLocalToWorld; // r2 + enum RwFrustumTestResult * _infm; // r17 + class RwFrustumPlane * _frustPlane; // r4 + class RwSphere * _sphere; // r2 + unsigned int _numPlanes; // r6 + float dot; // r1 + enum RwFrustumTestResult _infm; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFXshadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C3A0 -> 0x0033C4B0 +*/ +// Range: 0x33C3A0 -> 0x33C4B0 +static void ShadowMapLightingSetup(class RxPS2AllPipeData * ps2AllPipeData /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C3A0 -> 0x33C4B0 + class RpAtomic * atomic; // r4 + class RpGeometry * geometry; // r16 + class RpMeshHeader * meshHeader; // r3 + class rpAtomicPS2AllLightData lightingData; // r29+0x40 + class RwMatrixTag * frameMat; // r18 + float temp; // r1 + } +} + diff --git a/dwarf/SB/Core/p2/iFile.cpp b/dwarf/SB/Core/p2/iFile.cpp new file mode 100644 index 000000000..ac50e6df5 --- /dev/null +++ b/dwarf/SB/Core/p2/iFile.cpp @@ -0,0 +1,346 @@ +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class AsyncRequest requests[32]; // size: 0x300, address: 0x532830 +static signed int num_open_files; // size: 0x4, address: 0x50F7E8 +char gHostPath[256]; // size: 0x100, address: 0x532B30 +signed int DVD; // size: 0x4, address: 0x50F878 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +void iFileDebugMode(); // size: 0x0, address: 0x1AA1E0 +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +enum IFILE_READSECTOR_STATUS { + IFILE_RDSTAT_NOOP = 0, + IFILE_RDSTAT_INPROG = 1, + IFILE_RDSTAT_DONE = 2, + IFILE_RDSTAT_FAIL = 3, + IFILE_RDSTAT_QUEUED = 4, + IFILE_RDSTAT_EXPIRED = 5, +}; +enum HISMemoryType { + HIS_MEMORY_EE = 0, + HIS_MEMORY_IOP = 1, + HIS_MEMORY_SPU = 2, +}; +enum HISStatus { + HIS_STATUS_INVALID_ID = 0, + HIS_STATUS_DONE = 1, + HIS_STATUS_IN_PROGRESS = 2, + HIS_STATUS_IN_QUEUE = 3, + HIS_STATUS_PARTIAL = 4, + HIS_STATUS_FAILED = 5, + HIS_STATUS_CANCELLED = 6, + HIS_STATUS_DMA_WAIT = 7, +}; +class HISFileIndexDebug { + // total size: 0x3C +public: + signed int logicalSectorNumber; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int sizeInSectors; // offset 0x8, size 0x4 + char name[48]; // offset 0xC, size 0x30 +}; +enum xFileDriveType { + XFILE_DRIVE_CDVD = 0, + XFILE_DRIVE_CONSOLE_HD = 1, +}; +enum xFileDriveStatus { + XFILE_TRAY_OPEN = 0, + XFILE_STOPPED = 1, + XFILE_SPINNING = 2, + XFILE_READING = 3, + XFILE_PAUSED = 4, + XFILE_SEEKING = 5, + XFILE_ERROR = 6, +}; +class HISRequestDebug { + // total size: 0x1C +public: + class /* @class */ { + // total size: 0x4 + public: + signed int nextRequest : 8; // offset 0x0, size 0x4 + enum HISStatus status : 8; // offset 0x0, size 0x4 + enum HISMemoryType destinationType : 8; // offset 0x0, size 0x4 + } small; // offset 0x0, size 0x4 + signed int destination; // offset 0x4, size 0x4 + signed int currentPriority; // offset 0x8, size 0x4 + signed int originalPriority; // offset 0xC, size 0x4 + signed int fileIndex; // offset 0x10, size 0x4 + signed int startSector; // offset 0x14, size 0x4 + signed int sectorsToRead; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + signed int nextRequest : 8; // offset 0x0, size 0x4 + enum HISStatus status : 8; // offset 0x0, size 0x4 + enum HISMemoryType destinationType : 8; // offset 0x0, size 0x4 +}; +class AsyncRequest { + // total size: 0x18 +public: + unsigned char inUse; // offset 0x0, size 0x1 + signed int id; // offset 0x4, size 0x4 + enum IFILE_READSECTOR_STATUS status; // offset 0x8, size 0x4 + void (* callback)(class tag_xFile *); // offset 0xC, size 0x4 + class tag_xFile * file; // offset 0x10, size 0x4 + signed int framesLeft; // offset 0x14, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9520 -> 0x001A9644 +*/ +// Range: 0x1A9520 -> 0x1A9644 +void iFileAsyncService() { + // Blocks + /* anonymous block */ { + // Range: 0x1A9520 -> 0x1A9644 + signed int i; // r17 + enum HISStatus status; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9650 -> 0x001A96A8 +*/ +// Range: 0x1A9650 -> 0x1A96A8 +enum IFILE_READSECTOR_STATUS iFileReadAsyncStatus(signed int key /* r2 */, signed int * amtToFar /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9650 -> 0x1A96A8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A96B0 -> 0x001A973C +*/ +// Range: 0x1A96B0 -> 0x1A973C +void iFileReadStop() { + // Blocks + /* anonymous block */ { + // Range: 0x1A96B0 -> 0x1A973C + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9740 -> 0x001A9940 +*/ +// Range: 0x1A9740 -> 0x1A9940 +signed int iFileReadAsync(class tag_xFile * file /* r20 */, void * buf /* r4 */, unsigned int aSize /* r19 */, void (* callback)(class tag_xFile *) /* r18 */, signed int priority /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9740 -> 0x1A9940 + class tag_iFile * ps; // r17 + signed int i; // r16 + signed int id; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9940 -> 0x001A99DC +*/ +// Range: 0x1A9940 -> 0x1A99DC +void iFileSetPath(char * path /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9940 -> 0x1A99DC + unsigned int len; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A99E0 -> 0x001A9A94 +*/ +// Range: 0x1A99E0 -> 0x1A9A94 +void iFileFullPath(char * relname /* r17 */, char * fullname /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A99E0 -> 0x1A9A94 + char temp[256]; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9AA0 -> 0x001A9BA0 +*/ +// Range: 0x1A9AA0 -> 0x1A9BA0 +unsigned int iFileGetSize(class tag_xFile * file /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9AA0 -> 0x1A9BA0 + signed int size; // r18 + signed int pos; // r17 + class tag_iFile * ps; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9BA0 -> 0x001A9CE4 +*/ +// Range: 0x1A9BA0 -> 0x1A9CE4 +unsigned int iFileClose(class tag_xFile * file /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9BA0 -> 0x1A9CE4 + class tag_iFile * ps; // r18 + signed int ret; // r2 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9CF0 -> 0x001A9DC0 +*/ +// Range: 0x1A9CF0 -> 0x1A9DC0 +unsigned int iFileRead(class tag_xFile * file /* r2 */, void * buf /* r18 */, unsigned int size /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9CF0 -> 0x1A9DC0 + class tag_iFile * ps; // r16 + signed int num; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9DC0 -> 0x001A9EAC +*/ +// Range: 0x1A9DC0 -> 0x1A9EAC +signed int iFileSeek(class tag_xFile * file /* r2 */, signed int offset /* r2 */, signed int whence /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9DC0 -> 0x1A9EAC + class tag_iFile * ps; // r7 + signed int position; // r2 + signed int new_pos; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9EB0 -> 0x001A9FBC +*/ +// Range: 0x1A9EB0 -> 0x1A9FBC +unsigned int iFileOpen(char * name /* r4 */, signed int flags /* r17 */, class tag_xFile * file /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9EB0 -> 0x1A9FBC + class tag_iFile * ps; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A9FC0 -> 0x001AA0C8 +*/ +// Range: 0x1A9FC0 -> 0x1AA0C8 +unsigned int * iFileLoad(char * name /* r16 */, unsigned int * buffer /* r20 */, unsigned int * size /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A9FC0 -> 0x1AA0C8 + signed int index; // r2 + signed int fileSize; // r18 + signed int alignedSize; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA0D0 -> 0x001AA0D8 +*/ +// Range: 0x1AA0D0 -> 0x1AA0D8 +void iFileExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1AA0D0 -> 0x1AA0D8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA0E0 -> 0x001AA1D4 +*/ +// Range: 0x1AA0E0 -> 0x1AA1D4 +void iFileInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1AA0E0 -> 0x1AA1D4 + signed int hisVersion; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iFile.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AA1E0 -> 0x001AA328 +*/ +// Range: 0x1AA1E0 -> 0x1AA328 +static void iFileDebugMode() { + // Blocks + /* anonymous block */ { + // Range: 0x1AA1E0 -> 0x1AA328 + signed int id; // r21 + class HISRequestDebug requestDebug; // r29+0xE0 + class HISFileIndexDebug fileIndexDebug; // r29+0xA0 + char * TYPES[3]; // @ 0x00416D48 + char * STATUSES[9]; // @ 0x00416D20 + } +} + diff --git a/dwarf/SB/Core/p2/iLight.cpp b/dwarf/SB/Core/p2/iLight.cpp new file mode 100644 index 000000000..d3a7802c2 --- /dev/null +++ b/dwarf/SB/Core/p2/iLight.cpp @@ -0,0 +1,587 @@ +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class RpWorld * gLightWorld; // size: 0x4, address: 0x50F7EC +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class iLight { + // total size: 0x3C +public: + unsigned int type; // offset 0x0, size 0x4 + class RpLight * hw; // offset 0x4, size 0x4 + class xSphere sph; // offset 0x8, size 0x10 + float radius_sq; // offset 0x18, size 0x4 + class _xFColor color; // offset 0x1C, size 0x10 + class xVec3 dir; // offset 0x2C, size 0xC + float coneangle; // offset 0x38, size 0x4 +}; +class _xFColor { + // total size: 0x10 +public: + float r; // offset 0x0, size 0x4 + float g; // offset 0x4, size 0x4 + float b; // offset 0x8, size 0x4 + float a; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AAF40 -> 0x001AAF9C +*/ +// Range: 0x1AAF40 -> 0x1AAF9C +void iLightEnv(class iLight * light /* r2 */, signed int env /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AAF40 -> 0x1AAF9C + unsigned int flags; // r7 + } +} + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AAFA0 -> 0x001AAFE8 +*/ +// Range: 0x1AAFA0 -> 0x1AAFE8 +void iLightDestroy(class iLight * light /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AAFA0 -> 0x1AAFE8 + class RwFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AAFF0 -> 0x001AB03C +*/ +// Range: 0x1AAFF0 -> 0x1AB03C +void iLightSetPos(class iLight * light /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AAFF0 -> 0x1AB03C + class RwFrame * f; // r16 + class RwMatrixTag * m; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB040 -> 0x001AB048 +*/ +// Range: 0x1AB040 -> 0x1AB048 +void iLightSetColor(class iLight * light /* r2 */, class _xFColor * col /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB040 -> 0x1AB048 + } +} + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB050 -> 0x001AB17C +*/ +// Range: 0x1AB050 -> 0x1AB17C +void iLightModify(class iLight * light /* r17 */, unsigned int flags /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB050 -> 0x1AB17C + class RwFrame * frame; // r2 + class RwMatrixTag temp; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB180 -> 0x001AB2B0 +*/ +// Range: 0x1AB180 -> 0x1AB2B0 +class iLight * iLightCreate(class iLight * light /* r17 */, unsigned int type /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB180 -> 0x1AB2B0 + class RwFrame * frame; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB2B0 -> 0x001AB2B8 +*/ +// Range: 0x1AB2B0 -> 0x1AB2B8 +void iLightInit(class RpWorld * world /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB2B0 -> 0x1AB2B8 + } +} + diff --git a/dwarf/SB/Core/p2/iMath.cpp b/dwarf/SB/Core/p2/iMath.cpp new file mode 100644 index 000000000..d682c54b5 --- /dev/null +++ b/dwarf/SB/Core/p2/iMath.cpp @@ -0,0 +1,7 @@ +/* + Compile unit: C:\SB\Core\p2\iMath.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +float cosSinPolynomial[16]; // size: 0x40, address: 0x416DE0 + diff --git a/dwarf/SB/Core/p2/iMath3.cpp b/dwarf/SB/Core/p2/iMath3.cpp new file mode 100644 index 000000000..a4861f399 --- /dev/null +++ b/dwarf/SB/Core/p2/iMath3.cpp @@ -0,0 +1,304 @@ +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xTri3 { + // total size: 0x24 +public: + class xVec3 p1; // offset 0x0, size 0xC + class xVec3 p2; // offset 0xC, size 0xC + class xVec3 p3; // offset 0x18, size 0xC +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xPlane { + // total size: 0x10 +public: + class xVec3 norm; // offset 0x0, size 0xC + float d; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB2C0 -> 0x001AB39C +*/ +// Range: 0x1AB2C0 -> 0x1AB39C +void iBoxBoundVec(class xBox * o /* r2 */, class xBox * b /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB2C0 -> 0x1AB39C + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB3A0 -> 0x001AB3D4 +*/ +// Range: 0x1AB3A0 -> 0x1AB3D4 +void iBoxInitBoundVec(class xBox * b /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB3A0 -> 0x1AB3D4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB3E0 -> 0x001AB754 +*/ +// Range: 0x1AB3E0 -> 0x1AB754 +void iBoxIsectSphere(class xBox * box /* r2 */, class xSphere * p /* r17 */, class xIsect * isx /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB3E0 -> 0x1AB754 + unsigned int xcode; // r8 + unsigned int ycode; // r7 + unsigned int zcode; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB760 -> 0x001AB9EC +*/ +// Range: 0x1AB760 -> 0x1AB9EC +void iBoxIsectRay(class xBox * b /* r2 */, class xRay3 * r /* r17 */, class xIsect * isx /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB760 -> 0x1AB9EC + float t_in; // r29+0x5C + float t_out; // r29+0x58 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AB9F0 -> 0x001ABAC8 +*/ +// Range: 0x1AB9F0 -> 0x1ABAC8 +static unsigned int ClipPlane(float denom /* r29 */, float numer /* r29 */, float * t_in /* r2 */, float * t_out /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AB9F0 -> 0x1ABAC8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ABAD0 -> 0x001ABB58 +*/ +// Range: 0x1ABAD0 -> 0x1ABB58 +void iBoxIsectVec(class xBox * b /* r2 */, class xVec3 * v /* r2 */, class xIsect * isx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ABAD0 -> 0x1ABB58 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ABB60 -> 0x001AC568 +*/ +// Range: 0x1ABB60 -> 0x1AC568 +void iBoxVecDist(class xBox * box /* r2 */, class xVec3 * v /* r2 */, class xIsect * isx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ABB60 -> 0x1AC568 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AC570 -> 0x001AC5F0 +*/ +// Range: 0x1AC570 -> 0x1AC5F0 +void iCylinderIsectVec(class xCylinder * c /* r2 */, class xVec3 * v /* r2 */, class xIsect * isx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AC570 -> 0x1AC5F0 + float b; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AC5F0 -> 0x001AC72C +*/ +// Range: 0x1AC5F0 -> 0x1AC72C +void iSphereBoundVec(class xSphere * o /* r2 */, class xSphere * s /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AC5F0 -> 0x1AC72C + float scale; // r2 + class xSphere temp; // r29+0x10 + class xSphere * tp; // r6 + unsigned int usetemp; // r7 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AC730 -> 0x001AC758 +*/ +// Range: 0x1AC730 -> 0x1AC758 +void iSphereInitBoundVec(class xSphere * s /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AC730 -> 0x1AC758 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AC760 -> 0x001AC7DC +*/ +// Range: 0x1AC760 -> 0x1AC7DC +void iSphereIsectSphere(class xSphere * s /* r2 */, class xSphere * p /* r2 */, class xIsect * isx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AC760 -> 0x1AC7DC + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AC7E0 -> 0x001AC9CC +*/ +// Range: 0x1AC7E0 -> 0x1AC9CC +void iSphereIsectRay(class xSphere * s /* r2 */, class xRay3 * r /* r17 */, class xIsect * isx /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AC7E0 -> 0x1AC9CC + float t_in; // r29+0x3C + float t_out; // r29+0x38 + unsigned int num; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AC9D0 -> 0x001ACA34 +*/ +// Range: 0x1AC9D0 -> 0x1ACA34 +void iSphereIsectVec(class xSphere * s /* r2 */, class xVec3 * v /* r2 */, class xIsect * isx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AC9D0 -> 0x1ACA34 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ACA40 -> 0x001ACA48 +*/ +// Range: 0x1ACA40 -> 0x1ACA48 +void iMath3Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x1ACA40 -> 0x1ACA48 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ACA50 -> 0x001ACA58 +*/ +// Range: 0x1ACA50 -> 0x1ACA58 +void iMath3Init() { + // Blocks + /* anonymous block */ { + // Range: 0x1ACA50 -> 0x1ACA58 + } +} + diff --git a/dwarf/SB/Core/p2/iMemMgr.cpp b/dwarf/SB/Core/p2/iMemMgr.cpp new file mode 100644 index 000000000..425341721 --- /dev/null +++ b/dwarf/SB/Core/p2/iMemMgr.cpp @@ -0,0 +1,63 @@ +/* + Compile unit: C:\SB\Core\p2\iMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int StackBase; // size: 0x4, address: 0x50F7F0 +static unsigned int StackSize; // size: 0x4, address: 0x50F7F4 +class xMemInfo_tag gMemInfo; // size: 0x30, address: 0x568900 +char _stack; // size: 0x1, address: 0x1FF0000 +char _heap_size; // size: 0x1, address: 0x19D2180 +char _stack_size; // size: 0x1, address: 0x10000 +char _end; // size: 0x1, address: 0x61DE80 +char _memtop; // size: 0x1, address: 0x2000000 +char __data_start; // size: 0x1, address: 0x4018C0 +class xMemArea_tag { + // total size: 0xC +public: + unsigned int addr; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + unsigned int flags; // offset 0x8, size 0x4 +}; +class xMemInfo_tag { + // total size: 0x30 +public: + class xMemArea_tag system; // offset 0x0, size 0xC + class xMemArea_tag stack; // offset 0xC, size 0xC + class xMemArea_tag DRAM; // offset 0x18, size 0xC + class xMemArea_tag SRAM; // offset 0x24, size 0xC +}; + +/* + Compile unit: C:\SB\Core\p2\iMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ACA60 -> 0x001ACA88 +*/ +// Range: 0x1ACA60 -> 0x1ACA88 +void iMemExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1ACA60 -> 0x1ACA88 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ACA90 -> 0x001ACCB4 +*/ +// Range: 0x1ACA90 -> 0x1ACCB4 +void iMemInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1ACA90 -> 0x1ACCB4 + unsigned int MemBase; // r16 + unsigned int MemTop; // r18 + unsigned int HeapBase; // r17 + unsigned int malloc_max; // r16 + void * p; // r2 + } +} + diff --git a/dwarf/SB/Core/p2/iModel.cpp b/dwarf/SB/Core/p2/iModel.cpp new file mode 100644 index 000000000..40af56676 --- /dev/null +++ b/dwarf/SB/Core/p2/iModel.cpp @@ -0,0 +1,2692 @@ +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int gLastAtomicCount; // size: 0x4, address: 0x50F7F8 +static class RpAtomic * gLastAtomicList[256]; // size: 0x400, address: 0x532C30 +static class RpLight * sEmptyDirectionalLight[4]; // size: 0x10, address: 0x533030 +static class RpLight * sEmptyAmbientLight; // size: 0x4, address: 0x50F7FC +static class RwRGBA sMaterialColor[16]; // size: 0x40, address: 0x533040 +static class RwTexture * sMaterialTexture[16]; // size: 0x40, address: 0x533080 +static unsigned char sMaterialAlpha[16]; // size: 0x10, address: 0x5330C0 +static unsigned int sMaterialIdx; // size: 0x4, address: 0x50F800 +static unsigned int sMaterialFlags; // size: 0x4, address: 0x50F804 +static class RpAtomic * sLastMaterial; // size: 0x4, address: 0x50F808 +class RpMaterial * iModelMaterialMulCB(class RpMaterial *, void *); // size: 0x0, address: 0x1ACD30 +class RpMaterial * iModelSetMaterialTextureCB(class RpMaterial *, void *); // size: 0x0, address: 0x1AD060 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int iModelHack_DisablePrelight; // size: 0x4, address: 0x50FFD0 +class RwFrame * GetChildFrameHierarchy(class RwFrame *, void *); // size: 0x0, address: 0x1AF3C0 +class RpAtomic * NextAtomicCallback(class RpAtomic *, void *); // size: 0x0, address: 0x1AEEC0 +class RpAtomic * FindAtomicCallback(class RpAtomic *, void *); // size: 0x0, address: 0x1AF1D0 +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpHAnimHierarchy { + // total size: 0x24 +public: + signed int flags; // offset 0x0, size 0x4 + signed int numNodes; // offset 0x4, size 0x4 + class RwMatrixTag * pMatrixArray; // offset 0x8, size 0x4 + void * pMatrixArrayUnaligned; // offset 0xC, size 0x4 + class RpHAnimNodeInfo * pNodeInfo; // offset 0x10, size 0x4 + class RwFrame * parentFrame; // offset 0x14, size 0x4 + class RpHAnimHierarchy * parentHierarchy; // offset 0x18, size 0x4 + signed int rootParentOffset; // offset 0x1C, size 0x4 + class RtAnimInterpolator * currentAnim; // offset 0x20, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RtAnimAnimation { + // total size: 0x18 +public: + class RtAnimInterpolatorInfo * interpInfo; // offset 0x0, size 0x4 + signed int numFrames; // offset 0x4, size 0x4 + signed int flags; // offset 0x8, size 0x4 + float duration; // offset 0xC, size 0x4 + void * pFrames; // offset 0x10, size 0x4 + void * customData; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpSkin { + // total size: 0x0 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RtAnimInterpolatorInfo { + // total size: 0x30 +public: + signed int typeID; // offset 0x0, size 0x4 + signed int interpKeyFrameSize; // offset 0x4, size 0x4 + signed int animKeyFrameSize; // offset 0x8, size 0x4 + void (* keyFrameApplyCB)(void *, void *); // offset 0xC, size 0x4 + void (* keyFrameBlendCB)(void *, void *, void *, float); // offset 0x10, size 0x4 + void (* keyFrameInterpolateCB)(void *, void *, void *, float, void *); // offset 0x14, size 0x4 + void (* keyFrameAddCB)(void *, void *, void *); // offset 0x18, size 0x4 + void (* keyFrameMulRecipCB)(void *, void *); // offset 0x1C, size 0x4 + class RtAnimAnimation * (* keyFrameStreamReadCB)(class RwStream *, class RtAnimAnimation *); // offset 0x20, size 0x4 + signed int (* keyFrameStreamWriteCB)(class RtAnimAnimation *, class RwStream *); // offset 0x24, size 0x4 + signed int (* keyFrameStreamGetSizeCB)(class RtAnimAnimation *); // offset 0x28, size 0x4 + signed int customDataSize; // offset 0x2C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpHAnimNodeInfo { + // total size: 0x10 +public: + signed int nodeID; // offset 0x0, size 0x4 + signed int nodeIndex; // offset 0x4, size 0x4 + signed int flags; // offset 0x8, size 0x4 + class RwFrame * pFrame; // offset 0xC, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class RpUserDataArray { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + enum RpUserDataFormat format; // offset 0x4, size 0x4 + signed int numElements; // offset 0x8, size 0x4 + void * data; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RtAnimInterpolator { + // total size: 0x4C +public: + class RtAnimAnimation * pCurrentAnim; // offset 0x0, size 0x4 + float currentTime; // offset 0x4, size 0x4 + void * pNextFrame; // offset 0x8, size 0x4 + class RtAnimInterpolator * (* pAnimCallBack)(class RtAnimInterpolator *, void *); // offset 0xC, size 0x4 + void * pAnimCallBackData; // offset 0x10, size 0x4 + float animCallBackTime; // offset 0x14, size 0x4 + class RtAnimInterpolator * (* pAnimLoopCallBack)(class RtAnimInterpolator *, void *); // offset 0x18, size 0x4 + void * pAnimLoopCallBackData; // offset 0x1C, size 0x4 + signed int maxInterpKeyFrameSize; // offset 0x20, size 0x4 + signed int currentInterpKeyFrameSize; // offset 0x24, size 0x4 + signed int currentAnimKeyFrameSize; // offset 0x28, size 0x4 + signed int numNodes; // offset 0x2C, size 0x4 + signed int isSubInterpolator; // offset 0x30, size 0x4 + signed int offsetInParent; // offset 0x34, size 0x4 + class RtAnimInterpolator * parentAnimation; // offset 0x38, size 0x4 + void (* keyFrameApplyCB)(void *, void *); // offset 0x3C, size 0x4 + void (* keyFrameBlendCB)(void *, void *, void *, float); // offset 0x40, size 0x4 + void (* keyFrameInterpolateCB)(void *, void *, void *, float, void *); // offset 0x44, size 0x4 + void (* keyFrameAddCB)(void *, void *, void *); // offset 0x48, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xModelTagWithNormal : public xModelTag { + // total size: 0x2C +public: + class xVec3 normal; // offset 0x20, size 0xC +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum RpUserDataFormat { + rpNAUSERDATAFORMAT = 0, + rpINTUSERDATA = 1, + rpREALUSERDATA = 2, + rpSTRINGUSERDATA = 3, + rpUSERDATAFORCEENUMSIZEINT = 2147483647, +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwMemory { + // total size: 0x8 +public: + unsigned char * start; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwMatrixWeights { + // total size: 0x10 +public: + float w0; // offset 0x0, size 0x4 + float w1; // offset 0x4, size 0x4 + float w2; // offset 0x8, size 0x4 + float w3; // offset 0xC, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntBoulder { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class zEntHangable { + // total size: 0x0 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ACCC0 -> 0x001ACD2C +*/ +// Range: 0x1ACCC0 -> 0x1ACD2C +void iModelMaterialMul(class RpAtomic * model /* r16 */, float rm /* r29+0x30 */, float gm /* r29+0x30 */, float bm /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ACCC0 -> 0x1ACD2C + class RpGeometry * geom; // r2 + float cols[3]; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ACD30 -> 0x001ACFF8 +*/ +// Range: 0x1ACD30 -> 0x1ACFF8 +static class RpMaterial * iModelMaterialMulCB(class RpMaterial * material /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ACD30 -> 0x1ACFF8 + class RwRGBA * rw_col; // r2 + class RwRGBA col; // r29+0xC + float tmp; // r1 + float * mods; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD000 -> 0x001AD054 +*/ +// Range: 0x1AD000 -> 0x1AD054 +void iModelSetMaterialTexture(class RpAtomic * model /* r16 */, void * texture /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD000 -> 0x1AD054 + class RpGeometry * geom; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD060 -> 0x001AD0B0 +*/ +// Range: 0x1AD060 -> 0x1AD0B0 +static class RpMaterial * iModelSetMaterialTextureCB(class RpMaterial * material /* r16 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD060 -> 0x1AD0B0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD0B0 -> 0x001AD2DC +*/ +// Range: 0x1AD0B0 -> 0x1AD2DC +void iModelResetMaterial(class RpAtomic * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD0B0 -> 0x1AD2DC + unsigned int i; // r20 + class RpGeometry * geom; // r21 + class RpMaterial * material; // r2 + class RwRGBA newColor; // r29+0xAC + class RwRGBA newColor; // r29+0xA8 + class RwRGBA newColor; // r29+0xA4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD2E0 -> 0x001AD3C0 +*/ +// Range: 0x1AD2E0 -> 0x1AD3C0 +void iModelSetMaterialAlpha(class RpAtomic * model /* r2 */, unsigned char alpha /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD2E0 -> 0x1AD3C0 + unsigned int i; // r11 + class RpGeometry * geom; // r10 + class RpMaterial * material; // r25 + class RwRGBA * col; // r2 + class RwRGBA new_col; // r29+0xC + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD3C0 -> 0x001AD680 +*/ +// Range: 0x1AD3C0 -> 0x1AD680 +void iModelTagEval(class RpAtomic * model /* r19 */, class xModelTagWithNormal * tag /* r18 */, class RwMatrixTag * mat /* r17 */, class xVec3 * dest /* r2 */, class xVec3 * normal /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD3C0 -> 0x1AD680 + class RpSkin * skin; // r2 + class RwMatrixTag * skinmat; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD680 -> 0x001AD960 +*/ +// Range: 0x1AD680 -> 0x1AD960 +void iModelTagEval(class RpAtomic * model /* r2 */, class xModelTag * tag /* r19 */, class RwMatrixTag * mat /* r18 */, class xVec3 * dest /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD680 -> 0x1AD960 + class RpGeometry * geom; // r2 + class RpSkin * skin; // r2 + class RwMatrixTag * skinmat; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD960 -> 0x001AD9C8 +*/ +// Range: 0x1AD960 -> 0x1AD9C8 +unsigned int iModelTagSetup(class xModelTagWithNormal * tag /* r16 */, class RpAtomic * model /* r17 */, float x /* r29+0x30 */, float y /* r29+0x30 */, float z /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD960 -> 0x1AD9C8 + unsigned int index; // r2 + class xVec3 * normals; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD9D0 -> 0x001AD9D8 +*/ +// Range: 0x1AD9D0 -> 0x1AD9D8 +unsigned int iModelTagSetup(class xModelTag * tag /* r2 */, class RpAtomic * model /* r2 */, float x /* r29 */, float y /* r29 */, float z /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD9D0 -> 0x1AD9D8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AD9E0 -> 0x001ADB88 +*/ +// Range: 0x1AD9E0 -> 0x1ADB88 +static unsigned int iModelTagInternal(class xModelTag * tag /* r17 */, class RpAtomic * model /* r2 */, float x /* r29+0x40 */, float y /* r29+0x40 */, float z /* r29+0x40 */, signed int closeV /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AD9E0 -> 0x1ADB88 + class RpGeometry * geom; // r3 + class RwV3d * vert; // r7 + signed int v; // r4 + signed int numV; // r3 + float distSqr; // r29+0x40 + float closeDistSqr; // r3 + class RpSkin * skin; // r18 + class RwMatrixWeights * wt; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ADB90 -> 0x001ADDC4 +*/ +// Range: 0x1ADB90 -> 0x1ADDC4 +static unsigned int iModelTagUserData(class xModelTag * tag /* r21 */, class RpAtomic * model /* r20 */, float x /* r22 */, float y /* r21 */, float z /* r20 */, signed int closeV /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ADB90 -> 0x1ADDC4 + signed int i; // r18 + signed int count; // r17 + class RpUserDataArray * array; // r16 + class RpUserDataArray * testarray; // r22 + float distSqr; // r29+0x90 + float closeDistSqr; // r3 + signed int numTags; // r6 + signed int t; // r5 + class xModelTag * tagList; // r4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ADDD0 -> 0x001AE158 +*/ +// Range: 0x1ADDD0 -> 0x1AE158 +unsigned int iModelNormalEval(class xVec3 * out /* r18 */, class RpAtomic & m /* r2 */, class RwMatrixTag * mat /* r29+0xF0 */, unsigned int index /* r16 */, signed int size /* r29+0xE0 */, class xVec3 * in /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ADDD0 -> 0x1AE158 + class RpGeometry * geom; // r2 + signed int max_size; // r3 + class RpSkin * skin; // r17 + class RwMatrixTag * skin_mats; // r29+0xD0 + float * bone_weights; // r29+0xC0 + unsigned int * bone_indices; // r23 + class xMat4x3 nmat; // r29+0x100 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AE160 -> 0x001AE4E0 +*/ +// Range: 0x1AE160 -> 0x1AE4E0 +unsigned int iModelVertEval(class RpAtomic * model /* r2 */, unsigned int index /* r16 */, unsigned int count /* r20 */, class RwMatrixTag * mat /* r19 */, class xVec3 * vert /* r18 */, class xVec3 * dest /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AE160 -> 0x1AE4E0 + class RpGeometry * geom; // r3 + unsigned int numV; // r2 + class RpSkin * skin; // r21 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AE4E0 -> 0x001AE664 +*/ +// Range: 0x1AE4E0 -> 0x1AE664 +void iModel_SetLightKit(class xLightKit * lightKit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AE4E0 -> 0x1AE664 + class RpLight * amb; // r10 + class RpLight * dir[4]; // r29+0x30 + signed int lightTypes[5]; // r29+0x10 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AE670 -> 0x001AE67C +*/ +// Range: 0x1AE670 -> 0x1AE67C +unsigned int iModelVertCount(class RpAtomic * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AE670 -> 0x1AE67C + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AE680 -> 0x001AE8F0 +*/ +// Range: 0x1AE680 -> 0x1AE8F0 +signed int iModelCullPlusShadow(class RpAtomic * model /* r18 */, class RwMatrixTag * mat /* r20 */, class xVec3 * shadowVec /* r17 */, signed int * shadowOutside /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AE680 -> 0x1AE8F0 + float xScale2; // r8 + float yScale2; // r5 + float zScale2; // r1 + class RwV3d * up; // r2 + class RwV3d * at; // r2 + class RwCamera * cam; // r19 + class RwSphere worldsph; // r29+0x60 + class RwFrustumPlane * frustumPlane; // r6 + signed int numPlanes; // r5 + float nDot; // r29+0x70 + float nDot; // r2 + float sDot; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AE8F0 -> 0x001AE91C +*/ +// Range: 0x1AE8F0 -> 0x1AE91C +signed int iModelSphereCull(class xSphere * sphere /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AE8F0 -> 0x1AE91C + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AE920 -> 0x001AEA40 +*/ +// Range: 0x1AE920 -> 0x1AEA40 +signed int iModelCull(class RpAtomic * model /* r2 */, class RwMatrixTag * mat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AE920 -> 0x1AEA40 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEA40 -> 0x001AEBD0 +*/ +// Range: 0x1AEA40 -> 0x1AEBD0 +void iModelRender(class RpAtomic * model /* r20 */, class RwMatrixTag * mat /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEA40 -> 0x1AEBD0 + class RwMatrixTag * pAnimOldMatrix; // r18 + class RwFrame * frame; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEBD0 -> 0x001AEDEC +*/ +// Range: 0x1AEBD0 -> 0x1AEDEC +void iModelAnimMatrices(class RpAtomic * model /* r2 */, class xQuat * quat /* r18 */, class xVec3 * tran /* r17 */, class RwMatrixTag * mat /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEBD0 -> 0x1AEDEC + class RpHAnimHierarchy * pHierarchy; // r3 + class RwMatrixTag matrixStack[32]; // r29+0x50 + class RwMatrixTag * pMatrixStackTop; // r11 + class RpHAnimNodeInfo * pCurrentFrame; // r7 + signed int pCurrentFrameFlags; // r6 + signed int i; // r5 + signed int numFrames; // r4 + class RwMatrixTag * pMatrixArray; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEDF0 -> 0x001AEE68 +*/ +// Range: 0x1AEDF0 -> 0x1AEE68 +unsigned int iModelNumBones(class RpAtomic * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEDF0 -> 0x1AEE68 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEE70 -> 0x001AEEB4 +*/ +// Range: 0x1AEE70 -> 0x1AEEB4 +class RpAtomic * iModelFile_RWMultiAtomic(class RpAtomic * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEE70 -> 0x1AEEB4 + class RpClump * clump; // r2 + class RpAtomic * nextModel; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEEC0 -> 0x001AEEF0 +*/ +// Range: 0x1AEEC0 -> 0x1AEEF0 +static class RpAtomic * NextAtomicCallback(class RpAtomic * atomic /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEEC0 -> 0x1AEEF0 + class RpAtomic * * nextModel; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEEF0 -> 0x001AEF5C +*/ +// Range: 0x1AEEF0 -> 0x1AEF5C +void iModelUnload(class RpAtomic * userdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEEF0 -> 0x1AEF5C + class RpClump * clump; // r17 + class RwFrame * frame; // r16 + class RwFrame * root; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEF60 -> 0x001AEF94 +*/ +// Range: 0x1AEF60 -> 0x1AEF94 +class RpAtomic * iModelFileNew(void * buffer /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEF60 -> 0x1AEF94 + class RwMemory rwmem; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AEFA0 -> 0x001AF1C4 +*/ +// Range: 0x1AEFA0 -> 0x1AF1C4 +static class RpAtomic * iModelStreamRead(class RwStream * stream /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AEFA0 -> 0x1AF1C4 + class RpClump * clump; // r16 + unsigned int i; // r5 + unsigned int maxIndex; // r2 + float maxRadius; // r7 + float testRadius; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF1D0 -> 0x001AF2F8 +*/ +// Range: 0x1AF1D0 -> 0x1AF2F8 +static class RpAtomic * FindAtomicCallback(class RpAtomic * atomic /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF1D0 -> 0x1AF2F8 + class RpHAnimHierarchy * pHier; // r19 + class RpSkin * pSkin; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF300 -> 0x001AF3BC +*/ +// Range: 0x1AF300 -> 0x1AF3BC +void iModelInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1AF300 -> 0x1AF3BC + class RwFrame * frame; // r2 + class RwRGBAReal black; // r29+0x30 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF3C0 -> 0x001AF41C +*/ +// Range: 0x1AF3C0 -> 0x1AF41C +static class RwFrame * GetChildFrameHierarchy(class RwFrame * frame /* r17 */, void * data /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF3C0 -> 0x1AF41C + class RpHAnimHierarchy * hierarchy; // r2 + } +} + diff --git a/dwarf/SB/Core/p2/iModelBucketPDS.cpp b/dwarf/SB/Core/p2/iModelBucketPDS.cpp new file mode 100644 index 000000000..7ac1e3b47 --- /dev/null +++ b/dwarf/SB/Core/p2/iModelBucketPDS.cpp @@ -0,0 +1,728 @@ +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class PipeTranslation sPipeTrans[6]; // size: 0x90, address: 0x4E42B0 +static class FastPipeTrans sFastPipeList[2]; // size: 0x10, address: 0x4E4340 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum RpPDSPipeID { + rpNAPDSPIPEID = 0, + rwPDS_G3_Generic_MatPipeID = 1, + rwPDS_G3_Generic_AtmPipeID = 2, + rwPDS_G3_Generic_SctPipeID = 3, + rwPDS_G3_Im3D_TriPipeID = 4, + rwPDS_G3_Im3D_SegPipeID = 5, + rwPDS_G3_Im3D_TriObjPipeID = 6, + rwPDS_G3_Im3D_SegObjPipeID = 7, + rwPDS_G3_Generic_GrpMatPipeID = 4097, + rwPDS_G3_Generic_GrpAtmPipeID = 4098, + rwPDS_G3_Generic_GrpSctPipeID = 4099, + rwPDS_G3_Skin_MatPipeID = 65537, + rwPDS_G3_Skin_AtmPipeID = 65538, + rwPDS_G3_Emb_MatPipeID = 65539, + rwPDS_G3_Gem_MatPipeID = 65540, + rwPDS_G3_Bem_MatPipeID = 65541, + rwPDS_G3_Dup_MatPipeID = 65542, + rwPDS_G3_Toon_MatPipeID = 65543, + rwPDS_G3_SkinEmb_MatPipeID = 65544, + rwPDS_G3_SkinGem_MatPipeID = 65545, + rwPDS_G3_SkinBem_MatPipeID = 65546, + rwPDS_G3_SkinDup_MatPipeID = 65547, + rwPDS_G3_SkinToon_MatPipeID = 65548, + rwPDS_G2_BPatch_AtmPipeID = 65549, + rwPDS_G2_BPatch_MatPipeID = 65550, + rwPDS_G2_SkinBPatch_AtmPipeID = 65551, + rwPDS_G2_SkinBPatch_MatPipeID = 65552, + rwPDS_G2_EmbBPatch_MatPipeID = 65553, + rwPDS_G2_GemBPatch_MatPipeID = 65554, + rwPDS_G2_BemBPatch_MatPipeID = 65555, + rwPDS_G2_DupBPatch_MatPipeID = 65556, + rwPDS_G2_SkinEmbBPatch_MatPipeID = 65557, + rwPDS_G2_SkinGemBPatch_MatPipeID = 65558, + rwPDS_G2_SkinBemBPatch_MatPipeID = 65559, + rwPDS_G2_SkinDupBPatch_MatPipeID = 65560, + rwPDS_G3_2DStroke_MatPipeID = 65561, + rwPDS_G3_2DStroke_ObjPipeID = 65562, + rwPDS_G3_2DFont_MatPipeID = 65563, + rwPDS_G3_2DFont_ObjPipeID = 65564, + rwPDS_G3_2DFill_MatPipeID = 65565, + rwPDS_G3_2DFill_ObjPipeID = 65566, + rwPDS_G3_SkSpt_AtmPipeID = 65567, + rwPDS_G3_SkSpt_MatPipeID = 65568, + rwPDS_G3_SkSptEmb_MatPipeID = 65569, + rwPDS_G3_SkSptGem_MatPipeID = 65570, + rwPDS_G3_SkSptBem_MatPipeID = 65571, + rwPDS_G3_SkSptDup_MatPipeID = 65572, + rwPDS_G3_SkSptToon_MatPipeID = 65573, + rwPDS_G3_Uva_MatPipeID = 65574, + rwPDS_G3_DupUva_MatPipeID = 65575, + rwPDS_G3_SkinUva_MatPipeID = 65576, + rwPDS_G3_SkinDupUva_MatPipeID = 65577, + rwPDS_G3_SkSptUva_MatPipeID = 65578, + rwPDS_G3_SkSptDupUva_MatPipeID = 65579, + rwPDS_G3_Skin_GrpMatPipeID = 69633, + rwPDS_G3_Skin_GrpAtmPipeID = 69634, + rwPDS_G2_DarkMaps_GrpMatPipeID = 69635, + rwPDS_G2_DarkMaps_GrpAtmPipeID = 69636, + rwPDS_G2_DarkMaps_GrpSctPipeID = 69637, + rwPDS_G3_Toon_GrpMatPipeID = 69638, + rwPDS_G3_Toon_GrpAtmPipeID = 69639, + rwPDS_G3_Toon_GrpSctPipeID = 69640, + rwPDS_G3_SkinToon_GrpMatPipeID = 69641, + rwPDS_G3_SkinToon_GrpAtmPipeID = 69642, + rwPDS_G3_MatfxUV1_GrpMatPipeID = 69643, + rwPDS_G3_MatfxUV2_GrpMatPipeID = 69644, + rwPDS_G3_MatfxUV1_GrpAtmPipeID = 69645, + rwPDS_G3_MatfxUV2_GrpAtmPipeID = 69646, + rwPDS_G3_MatfxUV1_GrpSctPipeID = 69647, + rwPDS_G3_MatfxUV2_GrpSctPipeID = 69648, + rwPDS_G3_SkinfxUV1_GrpMatPipeID = 69649, + rwPDS_G3_SkinfxUV2_GrpMatPipeID = 69650, + rwPDS_G3_SkinfxUV1_GrpAtmPipeID = 69651, + rwPDS_G3_SkinfxUV2_GrpAtmPipeID = 69652, + rwPDS_G2_BPatch_GrpAtmPipeID = 69653, + rwPDS_G2_BPatch_GrpMatPipeID = 69654, + rwPDS_G2_SkinBPatch_GrpAtmPipeID = 69655, + rwPDS_G2_SkinBPatch_GrpMatPipeID = 69656, + rwPDS_G2_MatfxUV1BPatch_GrpMatPipeID = 69657, + rwPDS_G2_MatfxUV2BPatch_GrpMatPipeID = 69658, + rwPDS_G2_MatfxUV1BPatch_GrpAtmPipeID = 69659, + rwPDS_G2_MatfxUV2BPatch_GrpAtmPipeID = 69660, + rwPDS_G2_SkinfxUV1BPatch_GrpMatPipeID = 69661, + rwPDS_G2_SkinfxUV2BPatch_GrpMatPipeID = 69662, + rwPDS_G2_SkinfxUV1BPatch_GrpAtmPipeID = 69663, + rwPDS_G2_SkinfxUV2BPatch_GrpAtmPipeID = 69664, + rwPDS_VCL_Uva_MatPipeID = 73728, + rwPDS_VCL_DupUva_MatPipeID = 73729, + rwPDS_VCL_SkinUva_MatPipeID = 73730, + rwPDS_VCL_SkinDupUva_MatPipeID = 73731, + rwPDS_G3x_Generic_AtmPipeID = 327681, + rwPDS_G3x_APL_MatPipeID = 327682, + rwPDS_G3x_ADL_MatPipeID = 327683, + rwPDS_G3x_A4D_MatPipeID = 327684, + rwPDS_G3x_APLDup_MatPipeID = 327685, + rwPDS_G3x_ADLDup_MatPipeID = 327686, + rwPDS_G3x_A4DDup_MatPipeID = 327687, + rwPDS_G3x_APLGem_MatPipeID = 327688, + rwPDS_G3x_ADLGem_MatPipeID = 327689, + rwPDS_G3x_A4DGem_MatPipeID = 327690, + rwPDS_G3x_Skin_AtmPipeID = 327691, + rwPDS_G3x_APLSkin_MatPipeID = 327692, + rwPDS_G3x_ADLSkin_MatPipeID = 327693, + rwPDS_G3x_A4DSkin_MatPipeID = 327694, + rwPDS_G3x_APLSkinDup_MatPipeID = 327695, + rwPDS_G3x_ADLSkinDup_MatPipeID = 327696, + rwPDS_G3x_A4DSkinDup_MatPipeID = 327697, + rwPDS_G3x_APLSkinGem_MatPipeID = 327698, + rwPDS_G3x_ADLSkinGem_MatPipeID = 327699, + rwPDS_G3x_A4DSkinGem_MatPipeID = 327700, + rwPDS_G3x_ADLClone_MatPipeID = 327701, + rwPDS_G3x_ADLClone_AtmPipeID = 327702, + rwPDS_G3x_OPLClone_MatPipeID = 327703, + rwPDS_G3x_OPLClone_AtmPipeID = 327704, + rwPDS_G3x_Team_MatPipeID = 327705, + rwPDS_G3x_DupTeam_MatPipeID = 327706, + rwPDS_G3x_GemTeam_MatPipeID = 327707, + rwPDS_G3x_SkinTeam_MatPipeID = 327708, + rwPDS_G3x_SkinDupTeam_MatPipeID = 327709, + rwPDS_G3x_SkinGemTeam_MatPipeID = 327710, + rwPDS_G3x_Team_AtmPipeID = 327711, + rwPDS_G3x_SkinTeam_AtmPipeID = 327712, + rwPDS_G3x_APLUva_MatPipeID = 327713, + rwPDS_G3x_ADLUva_MatPipeID = 327714, + rwPDS_G3x_A4DUva_MatPipeID = 327715, + rwPDS_G3x_APLDupUva_MatPipeID = 327716, + rwPDS_G3x_ADLDupUva_MatPipeID = 327717, + rwPDS_G3x_A4DDupUva_MatPipeID = 327718, + rwPDS_G3x_APLSkinUva_MatPipeID = 327719, + rwPDS_G3x_ADLSkinUva_MatPipeID = 327720, + rwPDS_G3x_A4DSkinUva_MatPipeID = 327721, + rwPDS_G3x_APLSkDupUva_MatPipeID = 327722, + rwPDS_G3x_ADLSkDupUva_MatPipeID = 327723, + rwPDS_G3x_A4DSkDupUva_MatPipeID = 327724, + rwPDS_G3xd_APL_MatPipeID = 327725, + rwPDS_G3xd_ADL_MatPipeID = 327726, + rwPDS_G3xd_A4D_MatPipeID = 327727, + rwPDS_G3xd_APLDup_MatPipeID = 327728, + rwPDS_G3xd_ADLDup_MatPipeID = 327729, + rwPDS_G3xd_A4DDup_MatPipeID = 327730, + rwPDS_G3xd_APLGem_MatPipeID = 327731, + rwPDS_G3xd_ADLGem_MatPipeID = 327732, + rwPDS_G3xd_A4DGem_MatPipeID = 327733, + rwPDS_G3xd_APLUva_MatPipeID = 327734, + rwPDS_G3xd_ADLUva_MatPipeID = 327735, + rwPDS_G3xd_A4DUva_MatPipeID = 327736, + rwPDS_G3xd_APLDupUva_MatPipeID = 327737, + rwPDS_G3xd_ADLDupUva_MatPipeID = 327738, + rwPDS_G3xd_A4DDupUva_MatPipeID = 327739, + rwPDS_G3xd_APLSkin_MatPipeID = 327740, + rwPDS_G3xd_ADLSkin_MatPipeID = 327741, + rwPDS_G3xd_A4DSkin_MatPipeID = 327742, + rwPDS_G3xd_APLSkinDup_MatPipeID = 327743, + rwPDS_G3xd_ADLSkinDup_MatPipeID = 327744, + rwPDS_G3xd_A4DSkinDup_MatPipeID = 327745, + rwPDS_G3xd_APLSkinGem_MatPipeID = 327746, + rwPDS_G3xd_ADLSkinGem_MatPipeID = 327747, + rwPDS_G3xd_A4DSkinGem_MatPipeID = 327748, + rwPDS_G3xd_APLSkinUva_MatPipeID = 327749, + rwPDS_G3xd_ADLSkinUva_MatPipeID = 327750, + rwPDS_G3xd_A4DSkinUva_MatPipeID = 327751, + rwPDS_G3xd_APLSkDupUva_MatPipeID = 327752, + rwPDS_G3xd_ADLSkDupUva_MatPipeID = 327753, + rwPDS_G3xd_A4DSkDupUva_MatPipeID = 327754, + rwPDS_VCL_Generic_AtmPipeID = 331776, + rwPDS_VCL_ADLDot3_MatPipeID = 331777, + rwPDS_VCL_APLDot3_MatPipeID = 331778, + rwPDS_VCL_ADLSpec_MatPipeID = 331779, + rwPDS_VCL_APLSpec_MatPipeID = 331780, + rwPDS_VCL_Skin_AtmPipeID = 331781, + rwPDS_VCL_ADLSkinDot3_MatPipeID = 331782, + rwPDS_VCL_APLSkinDot3_MatPipeID = 331783, + rwPDS_VCL_ADLSkinSpec_MatPipeID = 331784, + rwPDS_VCL_APLSkinSpec_MatPipeID = 331785, + rpPDSMAXPIPEID = 331786, + rpPDSPIPEIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum RpMatFXMaterialFlags { + rpMATFXEFFECTNULL = 0, + rpMATFXEFFECTBUMPMAP = 1, + rpMATFXEFFECTENVMAP = 2, + rpMATFXEFFECTBUMPENVMAP = 3, + rpMATFXEFFECTDUAL = 4, + rpMATFXEFFECTUVTRANSFORM = 5, + rpMATFXEFFECTDUALUVTRANSFORM = 6, + rpMATFXEFFECTMAX = 7, + rpMATFXNUMEFFECTS = 6, + rpMATFXFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class FastPipeTrans { + // total size: 0x8 +public: + enum RpPDSPipeID fast; // offset 0x0, size 0x4 + class RxPipeline * fastPipe; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class PipeTranslation { + // total size: 0x18 +public: + enum RpPDSPipeID atm; // offset 0x0, size 0x4 + enum RpPDSPipeID mat; // offset 0x4, size 0x4 + class RxPipeline * (* atmpipeTranslateCB)(class RpAtomic *, class RpMaterial *); // offset 0x8, size 0x4 + class RxPipeline * (* matpipeTranslateCB)(class RpAtomic *, class RpMaterial *); // offset 0xC, size 0x4 + class RxPipeline * atmPipe; // offset 0x10, size 0x4 + class RxPipeline * matPipe; // offset 0x14, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE020 -> 0x003AE24C +*/ +// Range: 0x3AE020 -> 0x3AE24C +unsigned char iModelCanUseFastPipes(class RpAtomic * dataTemp /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AE020 -> 0x3AE24C + class RxPipeline * curAtmPipe; // r5 + signed int i; // r4 + class RpMaterialList * matList; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE250 -> 0x003AE470 +*/ +// Range: 0x3AE250 -> 0x3AE470 +void iModelUseFastPipes(class RpAtomic * dataTemp /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AE250 -> 0x3AE470 + class RxPipeline * curAtmPipe; // r19 + signed int i; // r5 + class RpMaterialList * matList; // r16 + signed int i; // r22 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE470 -> 0x003AE510 +*/ +// Range: 0x3AE470 -> 0x3AE510 +void iModelInitFastPipes() { + // Blocks + /* anonymous block */ { + // Range: 0x3AE470 -> 0x3AE510 + signed int i; // r17 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE510 -> 0x003AE540 +*/ +// Range: 0x3AE510 -> 0x3AE540 +static class RxPipeline * GenericMatCB() { + // Blocks + /* anonymous block */ { + // Range: 0x3AE510 -> 0x3AE540 + class RxPipeline * p; // @ 0x00510278 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE540 -> 0x003AE570 +*/ +// Range: 0x3AE540 -> 0x3AE570 +static class RxPipeline * GenericAtmCB() { + // Blocks + /* anonymous block */ { + // Range: 0x3AE540 -> 0x3AE570 + class RxPipeline * p; // @ 0x00510274 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE570 -> 0x003AE5A0 +*/ +// Range: 0x3AE570 -> 0x3AE5A0 +static class RxPipeline * SkinMatCB() { + // Blocks + /* anonymous block */ { + // Range: 0x3AE570 -> 0x3AE5A0 + class RxPipeline * p; // @ 0x00510270 + } +} + +/* + Compile unit: C:\SB\Core\p2\iModelBucketPDS.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE5A0 -> 0x003AE5D0 +*/ +// Range: 0x3AE5A0 -> 0x3AE5D0 +static class RxPipeline * SkinAtmCB() { + // Blocks + /* anonymous block */ { + // Range: 0x3AE5A0 -> 0x3AE5D0 + class RxPipeline * p; // @ 0x0051026C + } +} + diff --git a/dwarf/SB/Core/p2/iMorph.cpp b/dwarf/SB/Core/p2/iMorph.cpp new file mode 100644 index 000000000..215de11e6 --- /dev/null +++ b/dwarf/SB/Core/p2/iMorph.cpp @@ -0,0 +1,546 @@ +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class RpGeometry * s_geom; // size: 0x4, address: 0x50F80C +static class RpMorphTarget * s_tgt; // size: 0x4, address: 0x50F810 +static float * s_alloc; // size: 0x4, address: 0x50F814 +static float * s_vTemp; // size: 0x4, address: 0x50F818 +static float * s_nTemp; // size: 0x4, address: 0x50F81C +static signed int s_numV; // size: 0x4, address: 0x50F820 +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class DirtyMorph { + // total size: 0x20 +public: + unsigned int count; // offset 0x0, size 0x4 + float scale; // offset 0x4, size 0x4 + signed short weight[4]; // offset 0x8, size 0x8 + signed short * v_array[4]; // offset 0x10, size 0x10 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpUserDataArray { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + enum RpUserDataFormat format; // offset 0x4, size 0x4 + signed int numElements; // offset 0x8, size 0x4 + void * data; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum RpUserDataFormat { + rpNAUSERDATAFORMAT = 0, + rpINTUSERDATA = 1, + rpREALUSERDATA = 2, + rpSTRINGUSERDATA = 3, + rpUSERDATAFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF420 -> 0x001AF570 +*/ +// Range: 0x1AF420 -> 0x1AF570 +void FastS16weight4(float * dest /* r2 */, signed short * * v_array /* r2 */, signed short * weight /* r2 */, signed int count /* r2 */, float scale /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF420 -> 0x1AF570 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF570 -> 0x001AF680 +*/ +// Range: 0x1AF570 -> 0x1AF680 +void FastS16weight2(float * dest /* r2 */, signed short * * v_array /* r2 */, signed short * weight /* r2 */, signed int count /* r2 */, float scale /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF570 -> 0x1AF680 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF680 -> 0x001AF770 +*/ +// Range: 0x1AF680 -> 0x1AF770 +void FastS16unpack(float * dest /* r2 */, signed short * v /* r2 */, signed int count /* r2 */, float scale /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF680 -> 0x1AF770 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF770 -> 0x001AF7A4 +*/ +// Range: 0x1AF770 -> 0x1AF7A4 +void iMorphRender(class RpAtomic * model /* r2 */, class RwMatrixTag * mat /* r2 */, signed short * * v_array /* r2 */, signed short * weight /* r2 */, unsigned int normals /* r2 */, float scale /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF770 -> 0x1AF7A4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF7B0 -> 0x001AF83C +*/ +// Range: 0x1AF7B0 -> 0x1AF83C +void iMorphOptimize(class RpAtomic * model /* r2 */, signed int normals /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF7B0 -> 0x1AF83C + class RpGeometry * geom; // r16 + signed int usridx; // r2 + class RpUserDataArray * usr; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001AF840 -> 0x001B006C +*/ +// Range: 0x1AF840 -> 0x1B006C +static void MorphCommon(class RpAtomic * model /* r30 */, class RwMatrixTag * mat /* r29+0xD0 */, signed short * * v_array /* r29+0xCC */, signed short * weight /* r2 */, unsigned int normals /* r20 */, float scale /* r20 */, signed int dorender /* r29+0xC8 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1AF840 -> 0x1B006C + unsigned int i; // r8 + unsigned int a; // r19 + signed short wa[4]; // r29+0xF8 + signed short * va[4]; // r29+0xE0 + signed int wsum; // r18 + class RwV3d * vold; // r29+0xB0 + class RwV3d * nold; // r22 + signed int lockMode; // r21 + class RpUserDataArray * usr; // r23 + class DirtyMorph * dm; // r7 + } +} + diff --git a/dwarf/SB/Core/p2/iPad.cpp b/dwarf/SB/Core/p2/iPad.cpp new file mode 100644 index 000000000..ac9a00636 --- /dev/null +++ b/dwarf/SB/Core/p2/iPad.cpp @@ -0,0 +1,270 @@ +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned char mReadData[32]; // size: 0x20, address: 0x533100 +static __int128 mPadDmaBuffer[4][16]; // size: 0x400, address: 0x533140 +static unsigned char mActDirect[6]; // size: 0x6, address: 0x50F828 +static unsigned char mActAlign[6]; // size: 0x6, address: 0x50F830 +static float mLargeMotor[4]; // size: 0x10, address: 0x533540 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0070 -> 0x001B0078 +*/ +// Range: 0x1B0070 -> 0x1B0078 +void iPadKill() { + // Blocks + /* anonymous block */ { + // Range: 0x1B0070 -> 0x1B0078 + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0080 -> 0x001B019C +*/ +// Range: 0x1B0080 -> 0x1B019C +void iPadStartRumble(class _tagxPad * pad /* r2 */, class _tagxRumble * rumble /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B0080 -> 0x1B019C + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B01A0 -> 0x001B01BC +*/ +// Range: 0x1B01A0 -> 0x1B01BC +void iPadStopRumble(class _tagxPad * pad /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B01A0 -> 0x1B01BC + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B01C0 -> 0x001B026C +*/ +// Range: 0x1B01C0 -> 0x1B026C +void iPadRumbleFx(class _tagxPad * p /* r2 */, class _tagxRumble * r /* r2 */, float time_passed /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B01C0 -> 0x1B026C + float act; // r2 + float scale; // r1 + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0270 -> 0x001B05D4 +*/ +// Range: 0x1B0270 -> 0x1B05D4 +signed int iPadUpdate(class _tagxPad * pad /* r17 */, unsigned int * on /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B0270 -> 0x1B05D4 + signed int temp; // r2 + unsigned int temp_on; // r2 + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B05E0 -> 0x001B070C +*/ +// Range: 0x1B05E0 -> 0x1B070C +static void iPadTRCUpdate(class _tagxPad * pad /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B05E0 -> 0x1B070C + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0710 -> 0x001B077C +*/ +// Range: 0x1B0710 -> 0x1B077C +class _tagxPad * iPadEnable(class _tagxPad * pad /* r16 */, signed short port /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B0710 -> 0x1B077C + enum _tagPadInit pad_init; // r29+0x2C + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0780 -> 0x001B0B08 +*/ +// Range: 0x1B0780 -> 0x1B0B08 +class _tagxPad * iPadEnableGuts(class _tagxPad * pad /* r17 */, enum _tagPadInit * pad_init /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B0780 -> 0x1B0B08 + signed int state; // r2 + signed int id; // r18 + signed int exid; // r2 + signed int state3; // r2 + signed int state3; // r2 + signed int state5; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0B10 -> 0x001B0B54 +*/ +// Range: 0x1B0B10 -> 0x1B0B54 +signed int iPadInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1B0B10 -> 0x1B0B54 + } +} + diff --git a/dwarf/SB/Core/p2/iParMgr.cpp b/dwarf/SB/Core/p2/iParMgr.cpp new file mode 100644 index 000000000..4976c02d4 --- /dev/null +++ b/dwarf/SB/Core/p2/iParMgr.cpp @@ -0,0 +1,2550 @@ +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int gColorTableInit; // size: 0x4, address: 0x50F838 +static float gColorTable[256]; // size: 0x400, address: 0x533550 +class RpAtomic * sParAtomic; // size: 0x4, address: 0x0 +class RpClump * sParClump; // size: 0x4, address: 0x0 +class RpMaterial * sParMaterial; // size: 0x4, address: 0x0 +class RwFrame * sParClumpFrame; // size: 0x4, address: 0x0 +class RwFrame * sParAtomicFrame; // size: 0x4, address: 0x0 +class RwTexture * sParTexture; // size: 0x4, address: 0x0 +float sParEmitterWidth; // size: 0x4, address: 0x0 +float sParEmitterLength; // size: 0x4, address: 0x0 +float sParEmitterAngle; // size: 0x4, address: 0x0 +float sParSize; // size: 0x4, address: 0x0 +float sParGrowth; // size: 0x4, address: 0x0 +float sParAspectRatio; // size: 0x4, address: 0x0 +float sParFlightTime; // size: 0x4, address: 0x0 +float sParMinSpeed; // size: 0x4, address: 0x0 +float sParMaxSpeed; // size: 0x4, address: 0x0 +float sParDamping; // size: 0x4, address: 0x0 +class RwV3d sParForce; // size: 0xC, address: 0x0 +signed int sParStartColor; // size: 0x4, address: 0x0 +signed int sParStartAlpha; // size: 0x4, address: 0x0 +signed int sParEndColor; // size: 0x4, address: 0x0 +signed int sParEndAlpha; // size: 0x4, address: 0x0 +static class RwRGBA sParColors[8]; // size: 0x20, address: 0x0 +static signed int sParAdded; // size: 0x4, address: 0x0 +class tagiRenderArrays gRenderArr; // size: 0x5280, address: 0x533950 +class tagiRenderInput gRenderBuffer; // size: 0x80, address: 0x538BD0 +float cosSinPolynomial[]; // size: 0x0, address: 0x416DE0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class tagiRenderInput { + // total size: 0x80 +public: + unsigned short * m_index; // offset 0x0, size 0x4 + class RxObjSpace3DVertex * m_vertex; // offset 0x4, size 0x4 + float * m_vertexTZ; // offset 0x8, size 0x4 + unsigned int m_mode; // offset 0xC, size 0x4 + signed int m_vertexType; // offset 0x10, size 0x4 + signed int m_vertexTypeSize; // offset 0x14, size 0x4 + signed int m_indexCount; // offset 0x18, size 0x4 + signed int m_vertexCount; // offset 0x1C, size 0x4 + class xMat4x3 m_camViewMatrix; // offset 0x20, size 0x40 + class xVec4 m_camViewR; // offset 0x60, size 0x10 + class xVec4 m_camViewU; // offset 0x70, size 0x10 +}; +class xSurface { + // total size: 0x0 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zParSys : public xParSys { + // total size: 0x2C +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class tagiRenderArrays { + // total size: 0x5280 +public: + unsigned short m_index[960]; // offset 0x0, size 0x780 + class RxObjSpace3DVertex m_vertex[480]; // offset 0x780, size 0x4380 + float m_vertexTZ[480]; // offset 0x4B00, size 0x780 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0B60 -> 0x001B0C58 +*/ +// Range: 0x1B0B60 -> 0x1B0C58 +void iParMgrRenderParSys_Flat(void * data /* r18 */, class xParGroup * ps /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B0B60 -> 0x1B0C58 + class xPar * idx; // r16 + class RwTexture * texture; // r3 + class RwRaster * raster; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B0C60 -> 0x001B15B0 +*/ +// Range: 0x1B0C60 -> 0x1B15B0 +void iParMgrRenderParSys_Ground(void * data /* r16 */, class xParGroup * ps /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B0C60 -> 0x1B15B0 + class xPar * idx; // r20 + class zParSys * s; // r2 + class RwTexture * texture; // r3 + class RwRaster * raster; // r2 + class xParCmdTex * tex; // r19 + class xPar * p; // r2 + void * vertices; // r18 + unsigned short * indices; // r17 + signed int vertexCount; // r23 + signed int indexCount; // r30 + float size; // r29+0x170 + class xVec3 vert[4]; // r29+0xD0 + unsigned char r; // r5 + unsigned char g; // r4 + unsigned char b; // r3 + unsigned char a; // r2 + class xMat3x3 groundmat; // r29+0xA0 + float angx; // r6 + float angy; // r5 + float angz; // r4 + class xVec3 zdir; // r29+0x160 + class xVec3 xdir; // r29+0x150 + class xVec3 centre; // r29+0x140 + class RwRGBA * _col; // r9 + class RwRGBA * _col; // r8 + class RwRGBA * _col; // r7 + class RwRGBA * _col; // r6 + class RwV3d _packed; // r29+0x130 + class RwV3d _packed; // r29+0x120 + class RwV3d _packed; // r29+0x110 + class RwV3d _packed; // r29+0x100 + float u1; // r3 + float u2; // r1 + float v1; // r29+0x170 + float v2; // r29+0x170 + unsigned short * src; // r2 + unsigned short * dst; // r5 + signed int i; // r4 + class RxObjSpace3DVertex v3d[4]; // @ 0x00538D70 + unsigned short i3d[6]; // @ 0x00416E40 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B15B0 -> 0x001B15B8 +*/ +// Range: 0x1B15B0 -> 0x1B15B8 +void iParMgrRenderParSys_Static() { + // Blocks + /* anonymous block */ { + // Range: 0x1B15B0 -> 0x1B15B8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B15C0 -> 0x001B16D0 +*/ +// Range: 0x1B15C0 -> 0x1B16D0 +void iParMgrRenderParSys_QuadStreak(void * data /* r18 */, class xParGroup * ps /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B15C0 -> 0x1B16D0 + class xPar * idx; // r16 + class RwTexture * texture; // r3 + class RwRaster * raster; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B16D0 -> 0x001B19A8 +*/ +// Range: 0x1B16D0 -> 0x1B19A8 +void iParMgrRenderParSys_InvStreak(void * data /* r17 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B16D0 -> 0x1B19A8 + unsigned int transformFlags; // r2 + class xPar * idx; // r16 + class zParSys * s; // r2 + class RwTexture * texture; // r3 + class RwRaster * raster; // r2 + class RxObjSpace3DVertex * v3d; // r7 + class xPar * p; // r2 + void * vertices; // r2 + signed int vertexCount; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B19B0 -> 0x001B1C88 +*/ +// Range: 0x1B19B0 -> 0x1B1C88 +void iParMgrRenderParSys_Streak(void * data /* r17 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B19B0 -> 0x1B1C88 + unsigned int transformFlags; // r2 + class xPar * idx; // r16 + class zParSys * s; // r2 + class RwTexture * texture; // r3 + class RwRaster * raster; // r2 + class RxObjSpace3DVertex * v3d; // r7 + class xPar * p; // r2 + void * vertices; // r2 + signed int vertexCount; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B1C90 -> 0x001B21DC +*/ +// Range: 0x1B1C90 -> 0x1B21DC +static void iRenderPushFlat(class xPar * p /* r21 */, class xParCmdTex * tex /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B1C90 -> 0x1B21DC + void * vertices; // r23 + unsigned short * indices; // r19 + unsigned char r; // r18 + unsigned char g; // r17 + unsigned char b; // r16 + unsigned char a; // r22 + float size; // r20 + class xMat3x3 groundmat; // r29+0xA0 + float yaw; // r29+0xD0 + class RwRGBA * _col; // r5 + class RwRGBA * _col; // r4 + class RwRGBA * _col; // r3 + class RwRGBA * _col; // r2 + float u1; // r1 + float u2; // r1 + float v1; // r29+0xD0 + float v2; // r29+0xD0 + unsigned short * dst; // r4 + class RxObjSpace3DVertex v3d[4]; // @ 0x00538CE0 + unsigned short i3d[6]; // @ 0x00416E30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B21E0 -> 0x001B26E0 +*/ +// Range: 0x1B21E0 -> 0x1B26E0 +void iRenderPushQuadStreak(class xPar * p /* r19 */, class xParCmdTex * tex /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B21E0 -> 0x1B26E0 + void * vertices; // r17 + unsigned short * indices; // r16 + unsigned char r; // r2 + unsigned char g; // r2 + unsigned char b; // r2 + unsigned char a; // r2 + float size; // r12 + class RwRGBA * _col; // r9 + class RwRGBA * _col; // r8 + class RwRGBA * _col; // r7 + class RwRGBA * _col; // r6 + float u1; // r1 + float u2; // r1 + float v1; // r29+0x70 + float v2; // r29+0x70 + unsigned short * dst; // r4 + class RxObjSpace3DVertex v3d[4]; // @ 0x00538C50 + unsigned short i3d[6]; // @ 0x00416E20 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B26E0 -> 0x001B28E4 +*/ +// Range: 0x1B26E0 -> 0x1B28E4 +void iRenderSetCameraViewMatrix(class xMat4x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B26E0 -> 0x1B28E4 + class RwMatrixTag * mat; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B28F0 -> 0x001B30E0 +*/ +// Range: 0x1B28F0 -> 0x1B30E0 +void iParMgrRenderParSys_Sprite(void * data /* r17 */, class xParGroup * ps /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B28F0 -> 0x1B30E0 + class xPar * idx; // r21 + class zParSys * s; // r2 + class RwTexture * texture; // r3 + class RwRaster * raster; // r2 + signed int indexCount; // r7 + signed int vertexCount; // r3 + unsigned short * i3d; // r20 + class RxObjSpace3DVertex * v3d; // r19 + class xParCmdTex * tex; // r18 + unsigned int pivot; // r17 + class xVec3 offset; // r29+0x130 + class xVec3 temp_offset; // r29+0x120 + class xPar * p; // r16 + float u1; // r7 + float u2; // r1 + float v1; // r6 + float v2; // r29+0x140 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B30E0 -> 0x001B30E8 +*/ +// Range: 0x1B30E0 -> 0x1B30E8 +void iParMgrRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1B30E0 -> 0x1B30E8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B30F0 -> 0x001B30F8 +*/ +// Range: 0x1B30F0 -> 0x1B30F8 +void iParMgrUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x1B30F0 -> 0x1B30F8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3100 -> 0x001B3230 +*/ +// Range: 0x1B3100 -> 0x1B3230 +void iParMgrInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1B3100 -> 0x1B3230 + signed int i; // r9 + } +} + diff --git a/dwarf/SB/Core/p2/iScrFX.cpp b/dwarf/SB/Core/p2/iScrFX.cpp new file mode 100644 index 000000000..19667a988 --- /dev/null +++ b/dwarf/SB/Core/p2/iScrFX.cpp @@ -0,0 +1,488 @@ +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int sMotionBlurEnabled; // size: 0x4, address: 0x50F854 +static class _iMotionBlurData sMBD; // size: 0x130, address: 0x5393A0 +static class RxObjSpace3DVertex * Im3DBuffer; // size: 0x4, address: 0x50F858 +static unsigned int Im3DBufferPos; // size: 0x4, address: 0x50F85C +unsigned int dplines; // size: 0x4, address: 0x0 +signed int gNumDistortionParticles; // size: 0x4, address: 0x50FAE8 +class tagiRenderInput gRenderBuffer; // size: 0x80, address: 0x538BD0 +class DistortionParticle gDistortionParticles[100]; // size: 0x12C0, address: 0x5A3A40 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +signed long skyAlpha_1; // size: 0x4, address: 0x50EB80 +signed long skyClamp_1; // size: 0x4, address: 0x50EB70 +class RwRect { + // total size: 0x10 +public: + signed int x; // offset 0x0, size 0x4 + signed int y; // offset 0x4, size 0x4 + signed int w; // offset 0x8, size 0x4 + signed int h; // offset 0xC, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class DistortionParticle { + // total size: 0x30 +public: + class xVec3 pos; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class xVec3 dir; // offset 0x10, size 0xC + float life; // offset 0x1C, size 0x4 + class xVec3 vel; // offset 0x20, size 0xC + float death; // offset 0x2C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class _iMotionBlurData { + // total size: 0x130 +public: + signed int motionBlurAlpha; // offset 0x0, size 0x4 + class RwRaster * motionBlurFrontBuffer; // offset 0x4, size 0x4 + class RwSky2DVertex vertex[4]; // offset 0x10, size 0x100 + unsigned short index[6]; // offset 0x110, size 0xC + unsigned int w; // offset 0x11C, size 0x4 + unsigned int h; // offset 0x120, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class tagiRenderInput { + // total size: 0x80 +public: + unsigned short * m_index; // offset 0x0, size 0x4 + class RxObjSpace3DVertex * m_vertex; // offset 0x4, size 0x4 + float * m_vertexTZ; // offset 0x8, size 0x4 + unsigned int m_mode; // offset 0xC, size 0x4 + signed int m_vertexType; // offset 0x10, size 0x4 + signed int m_vertexTypeSize; // offset 0x14, size 0x4 + signed int m_indexCount; // offset 0x18, size 0x4 + signed int m_vertexCount; // offset 0x1C, size 0x4 + class xMat4x3 m_camViewMatrix; // offset 0x20, size 0x40 + class xVec4 m_camViewR; // offset 0x60, size 0x10 + class xVec4 m_camViewU; // offset 0x70, size 0x10 +}; + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B69C0 -> 0x001B731C +*/ +// Range: 0x1B69C0 -> 0x1B731C +void iScrFxDistortionRender(class RwCamera * camera /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B69C0 -> 0x1B731C + class xVec3 at; // r29+0x280 + class DistortionParticle * dp; // r20 + class RwMatrixTag * mat; // r29+0xF0 + class RwMatrixTag ptmat; // r29+0x180 + class RwMatrixTag tmp; // r29+0x140 + class RwMatrixTag invMtx; // r29+0x100 + class RwMatrixTag * matrix; // r2 + signed int i; // r19 + class RxObjSpace3DVertex * Im3DBuffer; // r18 + class RxObjSpace3DVertex * imv; // r18 + class xVec3 a; // r29+0x270 + class xVec3 b; // r29+0x260 + class xVec3 c; // r29+0x250 + class xVec3 d; // r29+0x240 + class xVec3 sa; // r29+0x230 + class xVec3 sb; // r29+0x220 + class xVec3 sc; // r29+0x210 + class xVec3 sd; // r29+0x200 + class xVec3 mmsa; // r29+0x1F0 + class xVec3 mmsb; // r29+0x1E0 + class xVec3 mmsc; // r29+0x1D0 + class xVec3 mmsd; // r29+0x1C0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7320 -> 0x001B7364 +*/ +// Range: 0x1B7320 -> 0x1B7364 +signed int iScrFxCameraDestroyed() { + // Blocks + /* anonymous block */ { + // Range: 0x1B7320 -> 0x1B7364 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7370 -> 0x001B7480 +*/ +// Range: 0x1B7370 -> 0x1B7480 +signed int iScrFxMotionBlurOpen(class RwCamera * camera /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7370 -> 0x1B7480 + class RwRect rect; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7480 -> 0x001B78F8 +*/ +// Range: 0x1B7480 -> 0x1B78F8 +static void iCameraOverlayRender(class RwRaster * ras /* r16 */, class RwRGBA col /* r29+0x2C */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7480 -> 0x1B78F8 + class RwRect rect; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7900 -> 0x001B7AC4 +*/ +// Range: 0x1B7900 -> 0x1B7AC4 +static void iScrFxMotionBlurCreateImmediateModeData(class RwCamera * camera /* r17 */, class RwRect * rect /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7900 -> 0x1B7AC4 + float w; // r22 + float h; // r21 + float xSize; // r3 + float U; // r24 + float V; // r23 + float u; // r20 + class RwSky2DVertex * ver; // r16 + float nearz; // r29+0x50 + float oocameraNearClipPlane; // r7 + float wstep; // r29+0x50 + float hstep; // r29+0x50 + float ustep; // r2 + float vstep; // r10 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7AD0 -> 0x001B7B24 +*/ +// Range: 0x1B7AD0 -> 0x1B7B24 +void iScrFxCameraEndScene(class RwCamera * pCamera /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7AD0 -> 0x1B7B24 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7B30 -> 0x001B7B84 +*/ +// Range: 0x1B7B30 -> 0x1B7B84 +void iScrFxCameraCreated(class RwCamera * pCamera /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7B30 -> 0x1B7B84 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7B90 -> 0x001B7C10 +*/ +// Range: 0x1B7B90 -> 0x1B7C10 +void iCameraSetBlurriness(float amount /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7B90 -> 0x1B7C10 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7C10 -> 0x001B7C18 +*/ +// Range: 0x1B7C10 -> 0x1B7C18 +void iCameraMotionBlurActivate(unsigned int activate /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7C10 -> 0x1B7C18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7C20 -> 0x001B7FBC +*/ +// Range: 0x1B7C20 -> 0x1B7FBC +void iScrFxDrawBox(float x1 /* r29 */, float y1 /* r29 */, float x2 /* r29 */, float y2 /* r29 */, unsigned char red /* r2 */, unsigned char green /* r2 */, unsigned char blue /* r2 */, unsigned char alpha /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B7C20 -> 0x1B7FBC + unsigned short indices[4]; // @ 0x0050E7F8 + class RwSky2DVertex v[4]; // @ 0x005392A0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B7FC0 -> 0x001B8028 +*/ +// Range: 0x1B7FC0 -> 0x1B8028 +void iScrFxEnd() { + // Blocks + /* anonymous block */ { + // Range: 0x1B7FC0 -> 0x1B8028 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8030 -> 0x001B80A4 +*/ +// Range: 0x1B8030 -> 0x1B80A4 +void iScrFxBegin() { + // Blocks + /* anonymous block */ { + // Range: 0x1B8030 -> 0x1B80A4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iScrFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B80B0 -> 0x001B80B8 +*/ +// Range: 0x1B80B0 -> 0x1B80B8 +void iScrFxInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1B80B0 -> 0x1B80B8 + } +} + diff --git a/dwarf/SB/Core/p2/iSnd.cpp b/dwarf/SB/Core/p2/iSnd.cpp new file mode 100644 index 000000000..47f7054c5 --- /dev/null +++ b/dwarf/SB/Core/p2/iSnd.cpp @@ -0,0 +1,635 @@ +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * gSndWhere_str[23]; // size: 0x5C, address: 0x0 +static enum eSndWhereEnum gSndWhere; // size: 0x4, address: 0x50F860 +static class iSndFileInfo eeFiles[512]; // size: 0x3800, address: 0x5394D0 +static signed int eeFileCount; // size: 0x4, address: 0x50F864 +static unsigned int currentStatus[2]; // size: 0x8, address: 0x50F868 +static void (* externalCallback)(unsigned int, unsigned char); // size: 0x4, address: 0x50F870 +static unsigned int currentSPUAddress; // size: 0x4, address: 0x50F874 +class xSndGlobals gSnd; // size: 0x13A0, address: 0x5B7800 +class iSndFileInfo { + // total size: 0x1C +public: + unsigned int ID; // offset 0x0, size 0x4 + unsigned int assetID; // offset 0x4, size 0x4 + unsigned short sample_rate; // offset 0x8, size 0x2 + unsigned char is_streamed; // offset 0xA, size 0x1 + union { // inferred + class /* @class */ { + // total size: 0x8 + public: + unsigned int address; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + } nonstream; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + signed int file_index; // offset 0x0, size 0x4 + unsigned int lsn; // offset 0x4, size 0x4 + unsigned int data_size; // offset 0x8, size 0x4 + unsigned short stream_interleave_size; // offset 0xC, size 0x2 + unsigned short stream_interleave_count; // offset 0xE, size 0x2 + } stream; // offset 0xC, size 0x10 + }; +}; +class xSndVoiceInfo { + // total size: 0x64 +public: + unsigned int assetID; // offset 0x0, size 0x4 + unsigned int sndID; // offset 0x4, size 0x4 + unsigned int parentID; // offset 0x8, size 0x4 + class xVec3 * parentPos; // offset 0xC, size 0x4 + signed int internalID; // offset 0x10, size 0x4 + unsigned int flags; // offset 0x14, size 0x4 + unsigned short pad; // offset 0x18, size 0x2 + unsigned short priority; // offset 0x1A, size 0x2 + float vol; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + unsigned int sample_rate; // offset 0x24, size 0x4 + unsigned int deadct; // offset 0x28, size 0x4 + enum sound_category category; // offset 0x2C, size 0x4 + class xVec3 actualPos; // offset 0x30, size 0xC + class xVec3 playPos; // offset 0x3C, size 0xC + float innerRadius2; // offset 0x48, size 0x4 + float outerRadius2; // offset 0x4C, size 0x4 + unsigned int lock_owner; // offset 0x50, size 0x4 + class iSndInfo ps; // offset 0x54, size 0x10 +}; +enum sound_category { + SND_CAT_INVALID = -1, + SND_CAT_GAME = 0, + SND_CAT_DIALOG = 1, + SND_CAT_MUSIC = 2, + SND_CAT_CUTSCENE = 3, + SND_CAT_UI = 4, + SND_CAT_NUM_CATEGORIES = 5, +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int address; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + signed int file_index; // offset 0x0, size 0x4 + unsigned int lsn; // offset 0x4, size 0x4 + unsigned int data_size; // offset 0x8, size 0x4 + unsigned short stream_interleave_size; // offset 0xC, size 0x2 + unsigned short stream_interleave_count; // offset 0xE, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class SndInfo { + // total size: 0x38 +public: + unsigned int num_effects; // offset 0x0, size 0x4 + unsigned int num_streams; // offset 0x4, size 0x4 + class VAGheader vagHeaders[1]; // offset 0x8, size 0x30 +}; +class iSndInfo { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + class iSndVol vol; // offset 0x4, size 0x4 + unsigned int pitch; // offset 0x8, size 0x4 + signed int lastStreamBuffer; // offset 0xC, size 0x4 +}; +class VAGheader { + // total size: 0x30 +public: + char id[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int assetID; // offset 0x8, size 0x4 + unsigned int data_size; // offset 0xC, size 0x4 + unsigned int frequency; // offset 0x10, size 0x4 + unsigned int streamInterleaveSize; // offset 0x14, size 0x4 + unsigned int streamInterleaveCount; // offset 0x18, size 0x4 + unsigned int reserved2[1]; // offset 0x1C, size 0x4 + char name[16]; // offset 0x20, size 0x10 +}; +enum sound_listener_game_mode { + SND_LISTENER_MODE_PLAYER = 0, + SND_LISTENER_MODE_CAMERA = 1, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum eSndWhereEnum { + eSndWhere_NA = 0, + eSndWhere_iSndSuspendCD = 1, + eSndWhere_iSndLoadFasterer = 2, + eSndWhere_UpdateVoiceStatus = 3, + eSndWhere_UpdateRecycleVoices = 4, + eSndWhere_UpdateDebugVoices = 5, + eSndWhere_Update3DSounds = 6, + eSndWhere_UpdateFireCallbacks = 7, + eSndWhere_UpdateFlushAsync = 8, + eSndWhere_DelayFrame = 9, + eSndWhere_PlayStart = 10, + eSndWhere_PlayTrigger = 11, + eSndWhere_PlaySndAsync = 12, + eSndWhere_PlaySndDone = 13, + eSndWhere_PlayExternalAsync = 14, + eSndWhere_PlayExternalWait = 15, + eSndWhere_PlayExternalDone = 16, + eSndWhere_PlayStream = 17, + eSndWhere_PlayStreamAsync = 18, + eSndWhere_PlayStreamDone = 19, + eSndWhere_StartStereo = 20, + eSndWhere_FindFreeVoice = 21, + eSndWhere_Pause = 22, +}; +class iSndVol { + // total size: 0x4 +public: + signed short volL; // offset 0x0, size 0x2 + signed short volR; // offset 0x2, size 0x2 +}; +class xSndGlobals { + // total size: 0x13A0 +public: + unsigned int stereo; // offset 0x0, size 0x4 + unsigned int SndCount; // offset 0x4, size 0x4 + float categoryVolFader[5]; // offset 0x8, size 0x14 + class xSndVoiceInfo voice[48]; // offset 0x1C, size 0x12C0 + class xMat4x3 listenerMat[2]; // offset 0x12E0, size 0x80 + enum sound_listener_game_mode listenerMode; // offset 0x1360, size 0x4 + unsigned int suspendCD; // offset 0x1364, size 0x4 + class xVec3 right; // offset 0x1368, size 0xC + class xVec3 up; // offset 0x1374, size 0xC + class xVec3 at; // offset 0x1380, size 0xC + class xVec3 pos; // offset 0x138C, size 0xC +}; + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B80C0 -> 0x001B80CC +*/ +// Range: 0x1B80C0 -> 0x1B80CC +void iSndStereo(unsigned int stereo /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B80C0 -> 0x1B80CC + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B80D0 -> 0x001B80D8 +*/ +// Range: 0x1B80D0 -> 0x1B80D8 +void iSndSetExternalCallback(void (* callback)(unsigned int, unsigned char) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B80D0 -> 0x1B80D8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B80E0 -> 0x001B8198 +*/ +// Range: 0x1B80E0 -> 0x1B8198 +void iSndLoadExternalData(unsigned int snd /* r20 */, void * data /* r19 */, signed int forceBuffer /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B80E0 -> 0x1B8198 + class xSndVoiceInfo * vp; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B81A0 -> 0x001B8284 +*/ +// Range: 0x1B81A0 -> 0x1B8284 +void iSndWaitForDeadSounds() { + // Blocks + /* anonymous block */ { + // Range: 0x1B81A0 -> 0x1B8284 + signed int i; // r19 + signed int numdelay; // r18 + unsigned long zombies; // r17 + class xSndVoiceInfo * vp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8290 -> 0x001B83DC +*/ +// Range: 0x1B8290 -> 0x1B83DC +void iSndSetPitch(unsigned int snd /* r2 */, float pitch /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8290 -> 0x1B83DC + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B83E0 -> 0x001B8470 +*/ +// Range: 0x1B83E0 -> 0x1B8470 +float iSndGetVol(unsigned int snd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B83E0 -> 0x1B8470 + class xSndVoiceInfo * vp; // r5 + signed int i; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8470 -> 0x001B865C +*/ +// Range: 0x1B8470 -> 0x1B865C +void iSndSetVol(unsigned int snd /* r20 */, float vol /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8470 -> 0x1B865C + class xSndVoiceInfo * vp; // r19 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8660 -> 0x001B8718 +*/ +// Range: 0x1B8660 -> 0x1B8718 +void iSndStop(unsigned int snd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8660 -> 0x1B8718 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8720 -> 0x001B87AC +*/ +// Range: 0x1B8720 -> 0x1B87AC +void iSndPause(unsigned int snd /* r2 */, unsigned int pause /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8720 -> 0x1B87AC + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B87B0 -> 0x001B8B34 +*/ +// Range: 0x1B87B0 -> 0x1B8B34 +unsigned int iSndFindFreeVoice(unsigned int priority /* r23 */, unsigned int flags /* r2 */, unsigned int owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B87B0 -> 0x1B8B34 + unsigned int i; // r20 + unsigned int vlo; // r2 + unsigned int vhi; // r22 + unsigned int best; // r19 + unsigned int bestpri; // r18 + signed int bestvol; // r17 + class xSndVoiceInfo * vp; // r16 + class xSndVoiceInfo * begin; // r21 + class xSndVoiceInfo * end; // r3 + class xSndVoiceInfo * v; // r16 + signed int volR; // r21 + signed int L; // r21 + signed int R; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8B40 -> 0x001B8D08 +*/ +// Range: 0x1B8B40 -> 0x1B8D08 +void iSndStartStereo(unsigned int id1 /* r2 */, unsigned int id2 /* r2 */, float pitch /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8B40 -> 0x1B8D08 + signed int v1; // r17 + signed int v2; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8D10 -> 0x001B8D88 +*/ +// Range: 0x1B8D10 -> 0x1B8D88 +unsigned char iSndIsReady(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8D10 -> 0x1B8D88 + signed int v; // r5 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B8D90 -> 0x001B91F0 +*/ +// Range: 0x1B8D90 -> 0x1B91F0 +unsigned int iSndPlay(class xSndVoiceInfo * vp /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B8D90 -> 0x1B91F0 + class iSndVol nvol; // r29+0x6C + unsigned int voice; // r17 + class iSndFileInfo * file; // r2 + class iSndFileInfo * file; // r2 + unsigned char loop; // r4 + unsigned char paused; // r11 + unsigned int offset; // r2 + unsigned int track; // r3 + unsigned int numTracks; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B91F0 -> 0x001B9260 +*/ +// Range: 0x1B91F0 -> 0x1B9260 +unsigned char iSndIsPlayingByHandle(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B91F0 -> 0x1B9260 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9260 -> 0x001B92D0 +*/ +// Range: 0x1B9260 -> 0x1B92D0 +unsigned char iSndIsPlaying(unsigned int assetID /* r2 */, unsigned int parid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B9260 -> 0x1B92D0 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B92D0 -> 0x001B9328 +*/ +// Range: 0x1B92D0 -> 0x1B9328 +unsigned char iSndIsPlaying(unsigned int assetID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B92D0 -> 0x1B9328 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9330 -> 0x001B95D8 +*/ +// Range: 0x1B9330 -> 0x1B95D8 +void iSndUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9330 -> 0x1B95D8 + signed int i; // r7 + class xSndVoiceInfo * vp; // r6 + unsigned char active; // r5 + signed int i; // r20 + class xSndVoiceInfo * vp; // r19 + class iSndVol nvol; // r29+0x6C + signed int i; // r19 + class xSndVoiceInfo * vp; // r18 + signed int testBuffer; // r17 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B95E0 -> 0x001B98E8 +*/ +// Range: 0x1B95E0 -> 0x1B98E8 +class iSndVol iSndCalcVol(class xSndVoiceInfo * vp /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B95E0 -> 0x1B98E8 + float volL; // r20 + float volR; // r2 + class xVec3 to; // r29+0x60 + float pan; // r22 + float volscale; // r21 + float fadeRange; // r1 + float tmp; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B98F0 -> 0x001B98F8 +*/ +// Range: 0x1B98F0 -> 0x1B98F8 +void iSndSetEnvironmentalEffect() { + // Blocks + /* anonymous block */ { + // Range: 0x1B98F0 -> 0x1B98F8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9900 -> 0x001B9908 +*/ +// Range: 0x1B9900 -> 0x1B9908 +void iSndExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9900 -> 0x1B9908 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9910 -> 0x001B993C +*/ +// Range: 0x1B9910 -> 0x1B993C +void iSndInitSceneLoaded() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9910 -> 0x1B993C + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9940 -> 0x001B9BAC +*/ +// Range: 0x1B9940 -> 0x1B9BAC +void iSndLoadFasterer() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9940 -> 0x1B9BAC + unsigned int size; // r29+0xDC + signed int index; // r22 + class SndInfo * sndInfo; // r20 + class VAGheader * vagIterator; // r19 + class st_PKR_ASSET_TOCINFO xinfo; // r29+0xC0 + char * hipname; // r2 + signed int fileIndex; // r18 + unsigned int startSPUAddress; // r23 + unsigned int totalToRead; // r17 + signed int i; // r3 + class iSndFileInfo * file; // r6 + signed int i; // r16 + class st_PKR_ASSET_TOCINFO xinfo; // r29+0xA0 + class iSndFileInfo * file; // r4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9BB0 -> 0x001B9BB8 +*/ +// Range: 0x1B9BB0 -> 0x1B9BB8 +void iSndInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9BB0 -> 0x1B9BB8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9BC0 -> 0x001B9BE4 +*/ +// Range: 0x1B9BC0 -> 0x1B9BE4 +void iSndSuspendCD() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9BC0 -> 0x1B9BE4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9BF0 -> 0x001B9C50 +*/ +// Range: 0x1B9BF0 -> 0x1B9C50 +class iSndFileInfo * iSndLookup(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B9BF0 -> 0x1B9C50 + signed int i; // r6 + } +} + diff --git a/dwarf/SB/Core/p2/iSystem.cpp b/dwarf/SB/Core/p2/iSystem.cpp new file mode 100644 index 000000000..693a21bff --- /dev/null +++ b/dwarf/SB/Core/p2/iSystem.cpp @@ -0,0 +1,1088 @@ +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +void * hackResourceArenaPointer; // size: 0x4, address: 0x0 +signed int DVD; // size: 0x4, address: 0x50F878 +static signed int g_dumpEachAllocOp; // size: 0x4, address: 0x0 +class RwVideoMode sVideoMode; // size: 0x18, address: 0x53CCD0 +signed int gFB_Flags; // size: 0x4, address: 0x50E804 +class DBWATCHData * g_watchthisblock; // size: 0x4, address: 0x0 +unsigned int gVsyncCount; // size: 0x4, address: 0x50F87C +unsigned int gTransitionSceneID; // size: 0x4, address: 0x50F708 +signed int vsyncCounterHandler(signed int); // size: 0x0, address: 0x1BA2E0 +class RwTexture * TextureRead(char *, char *); // size: 0x0, address: 0x1BA0E0 +class RpPDSSkyObjTemplate rwPDS_G3_SkinfxUV2_AtmPipe; // size: 0x14, address: 0x41AE58 +class RpPDSSkyObjTemplate rwPDS_G3_SkinfxUV1_AtmPipe; // size: 0x14, address: 0x41AE40 +class RpPDSSkyMatTemplate rwPDS_G3_SkinfxUV2_MatPipe; // size: 0x84, address: 0x41ADB8 +class RpPDSSkyMatTemplate rwPDS_G3_SkinfxUV1_MatPipe; // size: 0x84, address: 0x41AD30 +class RpPDSSkyObjTemplate rwPDS_G3_Skin_AtmPipe; // size: 0x14, address: 0x41ACA8 +class RpPDSSkyMatTemplate rwPDS_G3_Skin_MatPipe; // size: 0x84, address: 0x41AC20 +class RpPDSSkyObjTemplate rwPDS_G3_MatfxUV2_SctPipe; // size: 0x14, address: 0x41ABE8 +class RpPDSSkyObjTemplate rwPDS_G3_MatfxUV1_SctPipe; // size: 0x14, address: 0x41ABD0 +class RpPDSSkyObjTemplate rwPDS_G3_MatfxUV2_AtmPipe; // size: 0x14, address: 0x41ABB8 +class RpPDSSkyObjTemplate rwPDS_G3_MatfxUV1_AtmPipe; // size: 0x14, address: 0x41ABA0 +class RpPDSSkyMatTemplate rwPDS_G3_MatfxUV2_MatPipe; // size: 0x84, address: 0x41AB18 +class RpPDSSkyMatTemplate rwPDS_G3_MatfxUV1_MatPipe; // size: 0x84, address: 0x41AA90 +class RpPDSSkyObjTemplate rwPDS_G3_Im3D_SegObjPipe; // size: 0x14, address: 0x41A800 +class RpPDSSkyObjTemplate rwPDS_G3_Im3D_TriObjPipe; // size: 0x14, address: 0x41A7E8 +class RpPDSSkyMatTemplate rwPDS_G3_Im3D_SegPipe; // size: 0x84, address: 0x41A760 +class RpPDSSkyMatTemplate rwPDS_G3_Im3D_TriPipe; // size: 0x84, address: 0x41A6D8 +class RpPDSSkyObjTemplate rwPDS_G3_Generic_SctPipe; // size: 0x14, address: 0x41A6C0 +class RpPDSSkyObjTemplate rwPDS_G3_Generic_AtmPipe; // size: 0x14, address: 0x41A6A8 +class RpPDSSkyMatTemplate rwPDS_G3_Generic_MatPipe; // size: 0x84, address: 0x41A620 +class RpPDSSkyObjTemplate rwPDS_G3x_OPLClone_AtmPipe; // size: 0x14, address: 0x41B630 +class RpPDSSkyMatTemplate rwPDS_G3x_OPLClone_MatPipe; // size: 0x84, address: 0x41B5A8 +class RpPDSSkyMatTemplate rwPDS_G3xd_ADLGem_MatPipe; // size: 0x84, address: 0x41B278 +class RpPDSSkyMatTemplate rwPDS_G3xd_A4DSkinGem_MatPipe; // size: 0x84, address: 0x41B520 +class RpPDSSkyMatTemplate rwPDS_G3xd_ADLSkinGem_MatPipe; // size: 0x84, address: 0x41B498 +class RpPDSSkyMatTemplate rwPDS_G3xd_A4DGem_MatPipe; // size: 0x84, address: 0x41B300 +class RpPDSSkyMatTemplate rwPDS_G3xd_A4DSkin_MatPipe; // size: 0x84, address: 0x41B410 +class RpPDSSkyMatTemplate rwPDS_G3xd_ADLSkin_MatPipe; // size: 0x84, address: 0x41B388 +class RpPDSSkyMatTemplate rwPDS_G3xd_A4D_MatPipe; // size: 0x84, address: 0x41B1F0 +class RpPDSSkyMatTemplate rwPDS_G3xd_ADL_MatPipe; // size: 0x84, address: 0x41B168 +class RpPDSSkyMatTemplate rwPDS_G3x_A4DSkin_MatPipe; // size: 0x84, address: 0x41B0E0 +class RpPDSSkyMatTemplate rwPDS_G3x_ADLSkin_MatPipe; // size: 0x84, address: 0x41B058 +class RpPDSSkyObjTemplate rwPDS_G3x_Skin_AtmPipe; // size: 0x14, address: 0x41B040 +class RpPDSSkyMatTemplate rwPDS_G3x_A4D_MatPipe; // size: 0x84, address: 0x41AF10 +class RpPDSSkyMatTemplate rwPDS_G3x_ADL_MatPipe; // size: 0x84, address: 0x41AE88 +class RpPDSSkyObjTemplate rwPDS_G3x_Generic_AtmPipe; // size: 0x14, address: 0x41AE70 +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum RwPrimitiveType { + rwPRIMTYPENAPRIMTYPE = 0, + rwPRIMTYPELINELIST = 1, + rwPRIMTYPEPOLYLINE = 2, + rwPRIMTYPETRILIST = 3, + rwPRIMTYPETRISTRIP = 4, + rwPRIMTYPETRIFAN = 5, + rwPRIMTYPEPOINTLIST = 6, + rwPRIMITIVETYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RxPS2AllPipeData { + // total size: 0x48 +public: + class rxNodePS2AllPvtData * objPvtData; // offset 0x0, size 0x4 + class rxNodePS2AllMatPvtData * matPvtData; // offset 0x4, size 0x4 + void * sourceObject; // offset 0x8, size 0x4 + class RpMeshHeader * meshHeader; // offset 0xC, size 0x4 + class RwMeshCache * meshCache; // offset 0x10, size 0x4 + enum RxInstanceFlags objInstance; // offset 0x14, size 0x4 + unsigned int objIdentifier; // offset 0x18, size 0x4 + float spExtra; // offset 0x1C, size 0x4 + signed int numMorphTargets; // offset 0x20, size 0x4 + unsigned int fastMorphing; // offset 0x24, size 0x4 + unsigned char transType; // offset 0x28, size 0x1 + unsigned char primType; // offset 0x29, size 0x1 + unsigned char matModulate; // offset 0x2A, size 0x1 + unsigned char vu1CodeIndex; // offset 0x2B, size 0x1 + class RpMesh * mesh; // offset 0x2C, size 0x4 + class RwResEntry * * cacheEntryRef; // offset 0x30, size 0x4 + enum RxInstanceFlags meshInstance; // offset 0x34, size 0x4 + unsigned int meshIdentifier; // offset 0x38, size 0x4 + class RwSurfaceProperties * surfProps; // offset 0x3C, size 0x4 + class RwTexture * texture; // offset 0x40, size 0x4 + class RwRGBA matCol; // offset 0x44, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxNodePS2AllMatPvtData { + // total size: 0x32C +public: + signed int (* meshInstanceTestCB)(class RxPS2AllPipeData *); // offset 0x0, size 0x4 + class RwResEntry * (* resEntryAllocCB)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x4, size 0x4 + signed int (* instanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x8, size 0x4 + signed int (* bridgeCB)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + signed int (* postMeshCB)(class RxPS2AllPipeData *); // offset 0x10, size 0x4 + signed int vifOffset; // offset 0x14, size 0x4 + void * * vu1CodeArray; // offset 0x18, size 0x4 + unsigned int codeArrayLength; // offset 0x1C, size 0x4 + class rwPS2AllClusterInstanceInfo clinfo[12]; // offset 0x20, size 0x60 + unsigned int cliIndex[12]; // offset 0x80, size 0x30 + enum RpMeshHeaderFlags pipeType; // offset 0xB0, size 0x4 + unsigned char totallyOpaque; // offset 0xB4, size 0x1 + unsigned char numStripes; // offset 0xB5, size 0x1 + unsigned char sizeOnVU; // offset 0xB6, size 0x1 + unsigned char pad0; // offset 0xB7, size 0x1 + class rwPS2AllResEntryFormat strip; // offset 0xB8, size 0x138 + class rwPS2AllResEntryFormat list; // offset 0x1F0, size 0x138 + unsigned int magicValue; // offset 0x328, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class DBWATCHData { + // total size: 0x200 +public: + char putWatchOnMe[512]; // offset 0x0, size 0x200 +}; +class sceCdCLOCK { + // total size: 0x8 +public: + unsigned char stat; // offset 0x0, size 0x1 + unsigned char second; // offset 0x1, size 0x1 + unsigned char minute; // offset 0x2, size 0x1 + unsigned char hour; // offset 0x3, size 0x1 + unsigned char pad; // offset 0x4, size 0x1 + unsigned char day; // offset 0x5, size 0x1 + unsigned char month; // offset 0x6, size 0x1 + unsigned char year; // offset 0x7, size 0x1 +}; +class RpPDSSkyMatTemplate { + // total size: 0x84 +public: + unsigned int pluginId; // offset 0x0, size 0x4 + unsigned int pluginData; // offset 0x4, size 0x4 + class RpPDSSkyMatCluster clusters[10]; // offset 0x8, size 0x50 + class RpPDSSkyMatPrimitive primitive; // offset 0x58, size 0x14 + class RpPDSSkyVU1CodeTemplate * vu1code; // offset 0x6C, size 0x4 + signed int (* meshInstanceTestCallBack)(class RxPS2AllPipeData *); // offset 0x70, size 0x4 + class RwResEntry * (* resEntryAllocCallBack)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x74, size 0x4 + signed int (* instanceCallBack)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x78, size 0x4 + signed int (* bridgeCallBack)(class RxPS2AllPipeData *); // offset 0x7C, size 0x4 + signed int (* postMeshCallBack)(class RxPS2AllPipeData *); // offset 0x80, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpPDSSkyVU1CodeTemplate { + // total size: 0x8 +public: + void * * array; // offset 0x0, size 0x4 + unsigned int slots; // offset 0x4, size 0x4 +}; +enum RxInstanceFlags { + rxINSTANCENAINSTANCEFLAG = 0, + rxINSTANCEDONTINSTANCE = 1, + rxINSTANCEINPLACEINSTANCE = 2, + rxINSTANCECONGRUENTINSTANCE = 4, + rxINSTANCEFULLINSTANCE = 8, + rxINSTANCETYPEMASK = 14, + rxINSTANCEXYZ = 16, + rxINSTANCENORMAL = 32, + rxINSTANCERGBA = 64, + rxINSTANCEUV = 128, + rxINSTANCEUV1 = 128, + rxINSTANCEUV2 = 256, + rxINSTANCEUV3 = 512, + rxINSTANCEUV4 = 1024, + rxINSTANCEUV5 = 2048, + rxINSTANCEUV6 = 4096, + rxINSTANCEUV7 = 8192, + rxINSTANCEUV8 = 16384, + rxINSTANCEUSER1 = 32768, + rxINSTANCEUSER2 = 65536, + rxINSTANCEUSER3 = 131072, + rxINSTANCEUSER4 = 262144, + rxINSTANCEALL = 524272, + rxINSTANCEMASK = 524287, + rxINSTANCEFORCEENUMSIZEINT = 2147483647, +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum RwVideoModeFlag { + rwVIDEOMODEEXCLUSIVE = 1, + rwVIDEOMODEINTERLACE = 2, + rwVIDEOMODEFFINTERLACE = 4, + rwVIDEOMODE_PS2_FSAASHRINKBLIT = 256, + rwVIDEOMODE_PS2_FSAAREADCIRCUIT = 512, + rwVIDEOMODE_XBOX_WIDESCREEN = 256, + rwVIDEOMODE_XBOX_PROGRESSIVE = 512, + rwVIDEOMODE_XBOX_FIELD = 1024, + rwVIDEOMODE_XBOX_10X11PIXELASPECT = 2048, + rwVIDEOMODEFLAGFORCEENUMSIZEINT = 2147483647, +}; +class rwPS2AllResEntryFormat { + // total size: 0x138 +public: + unsigned char batchRound; // offset 0x0, size 0x1 + unsigned char stripReverse; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + unsigned int maxInputSize; // offset 0x4, size 0x4 + signed int batchSize; // offset 0x8, size 0x4 + signed int batchesPerTag; // offset 0xC, size 0x4 + signed int morphBatchSize; // offset 0x10, size 0x4 + signed int morphBatchesPerTag; // offset 0x14, size 0x4 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x18, size 0x120 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpPDSSkyObjTemplate { + // total size: 0x14 +public: + unsigned int pluginId; // offset 0x0, size 0x4 + unsigned int pluginData; // offset 0x4, size 0x4 + signed int (* objectSetupCallBack)(class RxPS2AllPipeData *, class RwMatrixTag * *); // offset 0x8, size 0x4 + signed int (* objectFinalizeCallBack)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + class RxPipeline * matGroup; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +enum RpPDSPipeType { + rpNAPDSPIPETYPE = 0, + rpPDSMATPIPE = 1, + rpPDSOBJPIPE = 2, + rpPDSPIPETYPEFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwVideoMode { + // total size: 0x18 +public: + signed int width; // offset 0x0, size 0x4 + signed int height; // offset 0x4, size 0x4 + signed int depth; // offset 0x8, size 0x4 + enum RwVideoModeFlag flags; // offset 0xC, size 0x4 + signed int refRate; // offset 0x10, size 0x4 + signed int format; // offset 0x14, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpPDSPipeDefinition { + // total size: 0x4 +public: + union { // inferred + void * ptr; // offset 0x0, size 0x4 + class RpPDSSkyMatTemplate * mat; // offset 0x0, size 0x4 + class RpPDSSkyObjTemplate * obj; // offset 0x0, size 0x4 + }; +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpPDSRegister { + // total size: 0x14 +public: + class RpPDSPipeDefinition def; // offset 0x0, size 0x4 + enum RpPDSPipeID attachId; // offset 0x4, size 0x4 + enum RpPDSPipeID id; // offset 0x8, size 0x4 + enum RpPDSPipeType type; // offset 0xC, size 0x4 + class RxPipeline * pipe; // offset 0x10, size 0x4 +}; +enum RpPDSPipeID { + rpNAPDSPIPEID = 0, + rwPDS_G3_Generic_MatPipeID = 1, + rwPDS_G3_Generic_AtmPipeID = 2, + rwPDS_G3_Generic_SctPipeID = 3, + rwPDS_G3_Im3D_TriPipeID = 4, + rwPDS_G3_Im3D_SegPipeID = 5, + rwPDS_G3_Im3D_TriObjPipeID = 6, + rwPDS_G3_Im3D_SegObjPipeID = 7, + rwPDS_G3_Generic_GrpMatPipeID = 4097, + rwPDS_G3_Generic_GrpAtmPipeID = 4098, + rwPDS_G3_Generic_GrpSctPipeID = 4099, + rwPDS_G3_Skin_MatPipeID = 65537, + rwPDS_G3_Skin_AtmPipeID = 65538, + rwPDS_G3_Emb_MatPipeID = 65539, + rwPDS_G3_Gem_MatPipeID = 65540, + rwPDS_G3_Bem_MatPipeID = 65541, + rwPDS_G3_Dup_MatPipeID = 65542, + rwPDS_G3_Toon_MatPipeID = 65543, + rwPDS_G3_SkinEmb_MatPipeID = 65544, + rwPDS_G3_SkinGem_MatPipeID = 65545, + rwPDS_G3_SkinBem_MatPipeID = 65546, + rwPDS_G3_SkinDup_MatPipeID = 65547, + rwPDS_G3_SkinToon_MatPipeID = 65548, + rwPDS_G2_BPatch_AtmPipeID = 65549, + rwPDS_G2_BPatch_MatPipeID = 65550, + rwPDS_G2_SkinBPatch_AtmPipeID = 65551, + rwPDS_G2_SkinBPatch_MatPipeID = 65552, + rwPDS_G2_EmbBPatch_MatPipeID = 65553, + rwPDS_G2_GemBPatch_MatPipeID = 65554, + rwPDS_G2_BemBPatch_MatPipeID = 65555, + rwPDS_G2_DupBPatch_MatPipeID = 65556, + rwPDS_G2_SkinEmbBPatch_MatPipeID = 65557, + rwPDS_G2_SkinGemBPatch_MatPipeID = 65558, + rwPDS_G2_SkinBemBPatch_MatPipeID = 65559, + rwPDS_G2_SkinDupBPatch_MatPipeID = 65560, + rwPDS_G3_2DStroke_MatPipeID = 65561, + rwPDS_G3_2DStroke_ObjPipeID = 65562, + rwPDS_G3_2DFont_MatPipeID = 65563, + rwPDS_G3_2DFont_ObjPipeID = 65564, + rwPDS_G3_2DFill_MatPipeID = 65565, + rwPDS_G3_2DFill_ObjPipeID = 65566, + rwPDS_G3_SkSpt_AtmPipeID = 65567, + rwPDS_G3_SkSpt_MatPipeID = 65568, + rwPDS_G3_SkSptEmb_MatPipeID = 65569, + rwPDS_G3_SkSptGem_MatPipeID = 65570, + rwPDS_G3_SkSptBem_MatPipeID = 65571, + rwPDS_G3_SkSptDup_MatPipeID = 65572, + rwPDS_G3_SkSptToon_MatPipeID = 65573, + rwPDS_G3_Uva_MatPipeID = 65574, + rwPDS_G3_DupUva_MatPipeID = 65575, + rwPDS_G3_SkinUva_MatPipeID = 65576, + rwPDS_G3_SkinDupUva_MatPipeID = 65577, + rwPDS_G3_SkSptUva_MatPipeID = 65578, + rwPDS_G3_SkSptDupUva_MatPipeID = 65579, + rwPDS_G3_Skin_GrpMatPipeID = 69633, + rwPDS_G3_Skin_GrpAtmPipeID = 69634, + rwPDS_G2_DarkMaps_GrpMatPipeID = 69635, + rwPDS_G2_DarkMaps_GrpAtmPipeID = 69636, + rwPDS_G2_DarkMaps_GrpSctPipeID = 69637, + rwPDS_G3_Toon_GrpMatPipeID = 69638, + rwPDS_G3_Toon_GrpAtmPipeID = 69639, + rwPDS_G3_Toon_GrpSctPipeID = 69640, + rwPDS_G3_SkinToon_GrpMatPipeID = 69641, + rwPDS_G3_SkinToon_GrpAtmPipeID = 69642, + rwPDS_G3_MatfxUV1_GrpMatPipeID = 69643, + rwPDS_G3_MatfxUV2_GrpMatPipeID = 69644, + rwPDS_G3_MatfxUV1_GrpAtmPipeID = 69645, + rwPDS_G3_MatfxUV2_GrpAtmPipeID = 69646, + rwPDS_G3_MatfxUV1_GrpSctPipeID = 69647, + rwPDS_G3_MatfxUV2_GrpSctPipeID = 69648, + rwPDS_G3_SkinfxUV1_GrpMatPipeID = 69649, + rwPDS_G3_SkinfxUV2_GrpMatPipeID = 69650, + rwPDS_G3_SkinfxUV1_GrpAtmPipeID = 69651, + rwPDS_G3_SkinfxUV2_GrpAtmPipeID = 69652, + rwPDS_G2_BPatch_GrpAtmPipeID = 69653, + rwPDS_G2_BPatch_GrpMatPipeID = 69654, + rwPDS_G2_SkinBPatch_GrpAtmPipeID = 69655, + rwPDS_G2_SkinBPatch_GrpMatPipeID = 69656, + rwPDS_G2_MatfxUV1BPatch_GrpMatPipeID = 69657, + rwPDS_G2_MatfxUV2BPatch_GrpMatPipeID = 69658, + rwPDS_G2_MatfxUV1BPatch_GrpAtmPipeID = 69659, + rwPDS_G2_MatfxUV2BPatch_GrpAtmPipeID = 69660, + rwPDS_G2_SkinfxUV1BPatch_GrpMatPipeID = 69661, + rwPDS_G2_SkinfxUV2BPatch_GrpMatPipeID = 69662, + rwPDS_G2_SkinfxUV1BPatch_GrpAtmPipeID = 69663, + rwPDS_G2_SkinfxUV2BPatch_GrpAtmPipeID = 69664, + rwPDS_VCL_Uva_MatPipeID = 73728, + rwPDS_VCL_DupUva_MatPipeID = 73729, + rwPDS_VCL_SkinUva_MatPipeID = 73730, + rwPDS_VCL_SkinDupUva_MatPipeID = 73731, + rwPDS_G3x_Generic_AtmPipeID = 327681, + rwPDS_G3x_APL_MatPipeID = 327682, + rwPDS_G3x_ADL_MatPipeID = 327683, + rwPDS_G3x_A4D_MatPipeID = 327684, + rwPDS_G3x_APLDup_MatPipeID = 327685, + rwPDS_G3x_ADLDup_MatPipeID = 327686, + rwPDS_G3x_A4DDup_MatPipeID = 327687, + rwPDS_G3x_APLGem_MatPipeID = 327688, + rwPDS_G3x_ADLGem_MatPipeID = 327689, + rwPDS_G3x_A4DGem_MatPipeID = 327690, + rwPDS_G3x_Skin_AtmPipeID = 327691, + rwPDS_G3x_APLSkin_MatPipeID = 327692, + rwPDS_G3x_ADLSkin_MatPipeID = 327693, + rwPDS_G3x_A4DSkin_MatPipeID = 327694, + rwPDS_G3x_APLSkinDup_MatPipeID = 327695, + rwPDS_G3x_ADLSkinDup_MatPipeID = 327696, + rwPDS_G3x_A4DSkinDup_MatPipeID = 327697, + rwPDS_G3x_APLSkinGem_MatPipeID = 327698, + rwPDS_G3x_ADLSkinGem_MatPipeID = 327699, + rwPDS_G3x_A4DSkinGem_MatPipeID = 327700, + rwPDS_G3x_ADLClone_MatPipeID = 327701, + rwPDS_G3x_ADLClone_AtmPipeID = 327702, + rwPDS_G3x_OPLClone_MatPipeID = 327703, + rwPDS_G3x_OPLClone_AtmPipeID = 327704, + rwPDS_G3x_Team_MatPipeID = 327705, + rwPDS_G3x_DupTeam_MatPipeID = 327706, + rwPDS_G3x_GemTeam_MatPipeID = 327707, + rwPDS_G3x_SkinTeam_MatPipeID = 327708, + rwPDS_G3x_SkinDupTeam_MatPipeID = 327709, + rwPDS_G3x_SkinGemTeam_MatPipeID = 327710, + rwPDS_G3x_Team_AtmPipeID = 327711, + rwPDS_G3x_SkinTeam_AtmPipeID = 327712, + rwPDS_G3x_APLUva_MatPipeID = 327713, + rwPDS_G3x_ADLUva_MatPipeID = 327714, + rwPDS_G3x_A4DUva_MatPipeID = 327715, + rwPDS_G3x_APLDupUva_MatPipeID = 327716, + rwPDS_G3x_ADLDupUva_MatPipeID = 327717, + rwPDS_G3x_A4DDupUva_MatPipeID = 327718, + rwPDS_G3x_APLSkinUva_MatPipeID = 327719, + rwPDS_G3x_ADLSkinUva_MatPipeID = 327720, + rwPDS_G3x_A4DSkinUva_MatPipeID = 327721, + rwPDS_G3x_APLSkDupUva_MatPipeID = 327722, + rwPDS_G3x_ADLSkDupUva_MatPipeID = 327723, + rwPDS_G3x_A4DSkDupUva_MatPipeID = 327724, + rwPDS_G3xd_APL_MatPipeID = 327725, + rwPDS_G3xd_ADL_MatPipeID = 327726, + rwPDS_G3xd_A4D_MatPipeID = 327727, + rwPDS_G3xd_APLDup_MatPipeID = 327728, + rwPDS_G3xd_ADLDup_MatPipeID = 327729, + rwPDS_G3xd_A4DDup_MatPipeID = 327730, + rwPDS_G3xd_APLGem_MatPipeID = 327731, + rwPDS_G3xd_ADLGem_MatPipeID = 327732, + rwPDS_G3xd_A4DGem_MatPipeID = 327733, + rwPDS_G3xd_APLUva_MatPipeID = 327734, + rwPDS_G3xd_ADLUva_MatPipeID = 327735, + rwPDS_G3xd_A4DUva_MatPipeID = 327736, + rwPDS_G3xd_APLDupUva_MatPipeID = 327737, + rwPDS_G3xd_ADLDupUva_MatPipeID = 327738, + rwPDS_G3xd_A4DDupUva_MatPipeID = 327739, + rwPDS_G3xd_APLSkin_MatPipeID = 327740, + rwPDS_G3xd_ADLSkin_MatPipeID = 327741, + rwPDS_G3xd_A4DSkin_MatPipeID = 327742, + rwPDS_G3xd_APLSkinDup_MatPipeID = 327743, + rwPDS_G3xd_ADLSkinDup_MatPipeID = 327744, + rwPDS_G3xd_A4DSkinDup_MatPipeID = 327745, + rwPDS_G3xd_APLSkinGem_MatPipeID = 327746, + rwPDS_G3xd_ADLSkinGem_MatPipeID = 327747, + rwPDS_G3xd_A4DSkinGem_MatPipeID = 327748, + rwPDS_G3xd_APLSkinUva_MatPipeID = 327749, + rwPDS_G3xd_ADLSkinUva_MatPipeID = 327750, + rwPDS_G3xd_A4DSkinUva_MatPipeID = 327751, + rwPDS_G3xd_APLSkDupUva_MatPipeID = 327752, + rwPDS_G3xd_ADLSkDupUva_MatPipeID = 327753, + rwPDS_G3xd_A4DSkDupUva_MatPipeID = 327754, + rwPDS_VCL_Generic_AtmPipeID = 331776, + rwPDS_VCL_ADLDot3_MatPipeID = 331777, + rwPDS_VCL_APLDot3_MatPipeID = 331778, + rwPDS_VCL_ADLSpec_MatPipeID = 331779, + rwPDS_VCL_APLSpec_MatPipeID = 331780, + rwPDS_VCL_Skin_AtmPipeID = 331781, + rwPDS_VCL_ADLSkinDot3_MatPipeID = 331782, + rwPDS_VCL_APLSkinDot3_MatPipeID = 331783, + rwPDS_VCL_ADLSkinSpec_MatPipeID = 331784, + rwPDS_VCL_APLSkinSpec_MatPipeID = 331785, + rpPDSMAXPIPEID = 331786, + rpPDSPIPEIDFORCEENUMSIZEINT = 2147483647, +}; +class rxNodePS2AllPvtData { + // total size: 0x0 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RpPDSSkyMatCluster { + // total size: 0x8 +public: + class RxClusterDefinition * definition; // offset 0x0, size 0x4 + unsigned int type; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwEngineOpenParams { + // total size: 0x4 +public: + void * displayID; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class rwPS2AllClusterInstanceInfo { + // total size: 0x8 +public: + unsigned int attrib; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RpPDSSkyMatPrimitive { + // total size: 0x14 +public: + enum RwPrimitiveType type; // offset 0x0, size 0x4 + signed int clusterStride; // offset 0x4, size 0x4 + signed int vertexCount; // offset 0x8, size 0x4 + signed int primCount; // offset 0xC, size 0x4 + signed int vifOffset; // offset 0x10, size 0x4 +}; +enum RpMeshHeaderFlags { + rpMESHHEADERTRISTRIP = 1, + rpMESHHEADERTRIFAN = 2, + rpMESHHEADERLINELIST = 4, + rpMESHHEADERPOLYLINE = 8, + rpMESHHEADERPOINTLIST = 16, + rpMESHHEADERPRIMMASK = 255, + rpMESHHEADERUNINDEXED = 256, + rpMESHHEADERFLAGSFORCEENUMSIZEINT = 2147483647, +}; + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9C50 -> 0x001B9C58 +*/ +// Range: 0x1B9C50 -> 0x1B9C58 +void iSystem_GapTrackReport() { + // Blocks + /* anonymous block */ { + // Range: 0x1B9C50 -> 0x1B9C58 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9C60 -> 0x001B9DB0 +*/ +// Range: 0x1B9C60 -> 0x1B9DB0 +void iLoadModule(char * moduleName /* r18 */, char * arguments /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B9C60 -> 0x1B9DB0 + char workingName[256]; // r29+0x40 + signed int j; // r7 + signed int errorCode; // r2 + char * PATHS_CDROM[3]; // @ 0x00416FD0 + char * PATHS_HOST[3]; // @ 0x00416FE0 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9DB0 -> 0x001B9F08 +*/ +// Range: 0x1B9DB0 -> 0x1B9F08 +unsigned int iGetCurrFormattedTime(char * str /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B9DB0 -> 0x1B9F08 + class sceCdCLOCK clock; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B9F10 -> 0x001BA010 +*/ +// Range: 0x1B9F10 -> 0x1BA010 +unsigned int iGetCurrFormattedDate(char * str /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B9F10 -> 0x1BA010 + class sceCdCLOCK clock; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA010 -> 0x001BA03C +*/ +// Range: 0x1BA010 -> 0x1BA03C +unsigned char iGetMonth() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA010 -> 0x1BA03C + class sceCdCLOCK clock; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA040 -> 0x001BA06C +*/ +// Range: 0x1BA040 -> 0x1BA06C +unsigned char iGetDay() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA040 -> 0x1BA06C + class sceCdCLOCK clock; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA070 -> 0x001BA09C +*/ +// Range: 0x1BA070 -> 0x1BA09C +unsigned char iGetHour() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA070 -> 0x1BA09C + class sceCdCLOCK clock; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA0A0 -> 0x001BA0CC +*/ +// Range: 0x1BA0A0 -> 0x1BA0CC +unsigned char iGetMinute() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA0A0 -> 0x1BA0CC + class sceCdCLOCK clock; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA0D0 -> 0x001BA0D8 +*/ +// Range: 0x1BA0D0 -> 0x1BA0D8 +void iVSync() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA0D0 -> 0x1BA0D8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA0E0 -> 0x001BA1D8 +*/ +// Range: 0x1BA0E0 -> 0x1BA1D8 +static class RwTexture * TextureRead(char * name /* r18 */, char * maskName /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BA0E0 -> 0x1BA1D8 + char tmpname[256]; // r29+0x40 + class RwTexture * result; // r16 + unsigned int assetid; // r2 + unsigned int tmpsize; // r29+0x14C + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA1E0 -> 0x001BA2D4 +*/ +// Range: 0x1BA1E0 -> 0x1BA2D4 +unsigned int iRenderWareInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA1E0 -> 0x1BA2D4 + class RwEngineOpenParams openParams; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA2E0 -> 0x001BA2F4 +*/ +// Range: 0x1BA2E0 -> 0x1BA2F4 +static signed int vsyncCounterHandler() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA2E0 -> 0x1BA2F4 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BA300 -> 0x001BAB0C +*/ +// Range: 0x1BA300 -> 0x1BAB0C +static unsigned int RWAttachPlugins() { + // Blocks + /* anonymous block */ { + // Range: 0x1BA300 -> 0x1BAB0C + class RpPDSRegister _objPipe; // r29+0x4B0 + class RpPDSRegister _matPipe; // r29+0x490 + class RpPDSRegister _matPipe; // r29+0x470 + class RpPDSRegister _objPipe; // r29+0x450 + class RpPDSRegister _matPipe; // r29+0x430 + class RpPDSRegister _objPipe; // r29+0x410 + class RpPDSRegister _matPipe; // r29+0x3F0 + class RpPDSRegister _matPipe; // r29+0x3D0 + class RpPDSRegister _matPipe; // r29+0x3B0 + class RpPDSRegister _matPipe; // r29+0x390 + class RpPDSRegister _matPipe; // r29+0x370 + class RpPDSRegister _matPipe; // r29+0x350 + class RpPDSRegister _matPipe; // r29+0x330 + class RpPDSRegister _matPipe; // r29+0x310 + class RpPDSRegister _matPipe; // r29+0x2F0 + class RpPDSRegister _matPipe; // r29+0x2D0 + class RpPDSRegister _matPipe; // r29+0x2B0 + class RpPDSRegister _matPipe; // r29+0x290 + class RpPDSRegister _objPipe; // r29+0x270 + class RpPDSRegister _matPipe; // r29+0x250 + class RpPDSRegister _objPipe; // r29+0x230 + class RpPDSRegister _objPipe; // r29+0x210 + class RpPDSRegister _matPipe; // r29+0x1F0 + class RpPDSRegister _matPipe; // r29+0x1D0 + class RpPDSRegister _objPipe; // r29+0x1B0 + class RpPDSRegister _objPipe; // r29+0x190 + class RpPDSRegister _matPipe; // r29+0x170 + class RpPDSRegister _matPipe; // r29+0x150 + class RpPDSRegister _objPipe; // r29+0x130 + class RpPDSRegister _objPipe; // r29+0x110 + class RpPDSRegister _objPipe; // r29+0xF0 + class RpPDSRegister _objPipe; // r29+0xD0 + class RpPDSRegister _matPipe; // r29+0xB0 + class RpPDSRegister _objPipe; // r29+0x90 + class RpPDSRegister _matPipe; // r29+0x70 + class RpPDSRegister _matPipe; // r29+0x50 + class RpPDSRegister _objPipe; // r29+0x30 + class RpPDSRegister _objPipe; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAB10 -> 0x001BAB64 +*/ +// Range: 0x1BAB10 -> 0x1BAB64 +void iSystemExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1BAB10 -> 0x1BAB64 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAB70 -> 0x001BAD34 +*/ +// Range: 0x1BAB70 -> 0x1BAD34 +void iSystemInit(unsigned int options /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BAB70 -> 0x1BAD34 + char * CDROM_IMAGE_FILE; // r2 + char * HOSTIO_IMAGE_FILE; // r17 + char * iopImageFile; // r2 + signed int disk_type; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iSystem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAD40 -> 0x001BAE40 +*/ +// Range: 0x1BAD40 -> 0x1BAE40 +unsigned int psSelectDevice() { + // Blocks + /* anonymous block */ { + // Range: 0x1BAD40 -> 0x1BAE40 + class RwVideoMode videoMode; // r29+0x60 + signed int i; // r20 + signed int num; // r19 + } +} + diff --git a/dwarf/SB/Core/p2/iTime.cpp b/dwarf/SB/Core/p2/iTime.cpp new file mode 100644 index 000000000..c1f564b28 --- /dev/null +++ b/dwarf/SB/Core/p2/iTime.cpp @@ -0,0 +1,195 @@ +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int tim0_handler_id; // size: 0x4, address: 0x50F880 +signed long tim0_high; // size: 0x4, address: 0x50F888 +static signed int sProfLevel; // size: 0x4, address: 0x0 +static char * sProfMap; // size: 0x4, address: 0x0 +static char * * sProfFunc; // size: 0x4, address: 0x0 +static char * * sProfFile; // size: 0x4, address: 0x0 +static unsigned int * sProfBin; // size: 0x4, address: 0x0 +static unsigned int sProfCount; // size: 0x4, address: 0x0 +unsigned int pvsyncaddr; // size: 0x4, address: 0x0 +class prof_info * pip; // size: 0x4, address: 0x50F890 +unsigned int pil; // size: 0x4, address: 0x50F894 +unsigned int app_top; // size: 0x4, address: 0x0 +unsigned int app_end; // size: 0x4, address: 0x0 +unsigned int app_hits; // size: 0x4, address: 0x50F898 +unsigned int kernel_hits; // size: 0x4, address: 0x50F89C +unsigned int vsync_hits; // size: 0x4, address: 0x50F8A0 +unsigned int scene_id; // size: 0x4, address: 0x50E808 +unsigned int prof_enable; // size: 0x4, address: 0x50F8A4 +static unsigned int * profSampleBuffer; // size: 0x4, address: 0x50F8A8 +static unsigned int * profSampleStatic; // size: 0x4, address: 0x50F8AC +static unsigned int profSampleSize; // size: 0x4, address: 0x50F8B0 +static float sGameTime; // size: 0x4, address: 0x50F8B4 +signed int TimerHandler(signed int, void *, void *); // size: 0x0, address: 0x1BB010 +class prof_info { + // total size: 0xC +public: + unsigned int addr; // offset 0x0, size 0x4 + unsigned int len; // offset 0x4, size 0x4 + unsigned int count; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAE40 -> 0x001BAE48 +*/ +// Range: 0x1BAE40 -> 0x1BAE48 +void iFuncProfileDump() { + // Blocks + /* anonymous block */ { + // Range: 0x1BAE40 -> 0x1BAE48 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAE50 -> 0x001BAE58 +*/ +// Range: 0x1BAE50 -> 0x1BAE58 +void iFuncProfileParse() { + // Blocks + /* anonymous block */ { + // Range: 0x1BAE50 -> 0x1BAE58 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAE60 -> 0x001BAF0C +*/ +// Range: 0x1BAE60 -> 0x1BAF0C +void iProfileClear(unsigned int sceneID /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BAE60 -> 0x1BAF0C + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAF10 -> 0x001BAF18 +*/ +// Range: 0x1BAF10 -> 0x1BAF18 +void iTimeSetGame(float time /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BAF10 -> 0x1BAF18 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAF20 -> 0x001BAF30 +*/ +// Range: 0x1BAF20 -> 0x1BAF30 +void iTimeGameAdvance(float elapsed /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BAF20 -> 0x1BAF30 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAF30 -> 0x001BAF7C +*/ +// Range: 0x1BAF30 -> 0x1BAF7C +float iTimeDiffSec(signed long t0 /* r2 */, signed long t1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BAF30 -> 0x1BAF7C + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAF80 -> 0x001BAFC8 +*/ +// Range: 0x1BAF80 -> 0x1BAFC8 +float iTimeDiffSec(signed long time /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BAF80 -> 0x1BAFC8 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BAFD0 -> 0x001BB008 +*/ +// Range: 0x1BAFD0 -> 0x1BB008 +signed long iTimeGet() { + // Blocks + /* anonymous block */ { + // Range: 0x1BAFD0 -> 0x1BB008 + signed long high0; // r5 + signed long low0; // r2 + signed long high1; // r4 + signed long low1; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB010 -> 0x001BB068 +*/ +// Range: 0x1BB010 -> 0x1BB068 +static signed int TimerHandler(signed int ca /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BB010 -> 0x1BB068 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB070 -> 0x001BB098 +*/ +// Range: 0x1BB070 -> 0x1BB098 +void iTimeExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1BB070 -> 0x1BB098 + } +} + +/* + Compile unit: C:\SB\Core\p2\iTime.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB0A0 -> 0x001BB100 +*/ +// Range: 0x1BB0A0 -> 0x1BB100 +void iTimeInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1BB0A0 -> 0x1BB100 + } +} + diff --git a/dwarf/SB/Core/p2/iVU0.cpp b/dwarf/SB/Core/p2/iVU0.cpp new file mode 100644 index 000000000..16ee95e5f --- /dev/null +++ b/dwarf/SB/Core/p2/iVU0.cpp @@ -0,0 +1,31 @@ +/* + Compile unit: C:\SB\Core\p2\iVU0.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class VU0Block blocks[8]; // size: 0x80, address: 0x5E5410 +static unsigned int lru; // size: 0x4, address: 0x5101F4 +class VU0Block { + // total size: 0x10 +public: + signed int parent; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + void * address; // offset 0x8, size 0x4 + unsigned int lru; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\iVU0.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00378830 -> 0x00378870 +*/ +// Range: 0x378830 -> 0x378870 +void iVU0Reset() { + // Blocks + /* anonymous block */ { + // Range: 0x378830 -> 0x378870 + signed int i; // r7 + } +} + diff --git a/dwarf/SB/Core/p2/isavegame.cpp b/dwarf/SB/Core/p2/isavegame.cpp new file mode 100644 index 000000000..929c6a76b --- /dev/null +++ b/dwarf/SB/Core/p2/isavegame.cpp @@ -0,0 +1,3024 @@ +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static char * g_scoobydoo_icon_list; // size: 0x4, address: 0x50F83C +signed int gIconSize; // size: 0x4, address: 0x50F840 +static char * g_scoobydoo_icon_copy; // size: 0x4, address: 0x50F844 +static char * g_scoobydoo_icon_delete; // size: 0x4, address: 0x50F848 +static signed int g_isginit; // size: 0x4, address: 0x50F84C +static class st_ISG_MEMCARD_DATA g_mcdata_MAIN; // size: 0x100, address: 0x538E00 +static class st_ISGSESSION g_isgdata_MAIN; // size: 0x9C, address: 0x538F00 +static class st_ISG_MEMCARD_DATA g_mcdata_MONITOR; // size: 0x100, address: 0x538FC0 +static class st_ISGSESSION g_isgdata_MONITOR; // size: 0x9C, address: 0x5390C0 +static char * g_isg_scemodule[3]; // size: 0xC, address: 0x416E50 +static char * g_strz_egotrip[8]; // size: 0x20, address: 0x416E60 +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class st_ISGTHUMDATA { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class st_ISG_MEMCARD_DATA { + // total size: 0x100 +public: + signed int mcport; // offset 0x0, size 0x4 + signed int mcslot; // offset 0x4, size 0x4 + signed int mcfp; // offset 0x8, size 0x4 + enum en_ISG_IOMODE fmode; // offset 0xC, size 0x4 + char gamepath[64]; // offset 0x10, size 0x40 + class sceMcTblGetDir finfo; // offset 0x80, size 0x40 + signed int cur_mcop; // offset 0xC0, size 0x4 + enum en_ISGMC_ERRSTATUS mcerr; // offset 0xC4, size 0x4 + signed int allow_cache; // offset 0xC8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class st_ISGSESSION { + // total size: 0x9C +public: + class st_ISG_MEMCARD_DATA * mcdata; // offset 0x0, size 0x4 + char gameroot[64]; // offset 0x4, size 0x40 + char gamedir[64]; // offset 0x44, size 0x40 + enum en_ASYNC_OPCODE as_curop; // offset 0x84, size 0x4 + enum en_ASYNC_OPSTAT as_opstat; // offset 0x88, size 0x4 + enum en_ASYNC_OPERR as_operr; // offset 0x8C, size 0x4 + void * cltdata; // offset 0x90, size 0x4 + enum en_CHGCODE chgcode; // offset 0x94, size 0x4 + void (* chgfunc)(void *, enum en_CHGCODE); // offset 0x98, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class rxReq { + // total size: 0x0 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class sceCdCLOCK { + // total size: 0x8 +public: + unsigned char stat; // offset 0x0, size 0x1 + unsigned char second; // offset 0x1, size 0x1 + unsigned char minute; // offset 0x2, size 0x1 + unsigned char hour; // offset 0x3, size 0x1 + unsigned char pad; // offset 0x4, size 0x1 + unsigned char day; // offset 0x5, size 0x1 + unsigned char month; // offset 0x6, size 0x1 + unsigned char year; // offset 0x7, size 0x1 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class sceMcTblGetDir { + // total size: 0x40 +public: + class sceMcStDateTime _Create; // offset 0x0, size 0x8 + class sceMcStDateTime _Modify; // offset 0x8, size 0x8 + unsigned int FileSizeByte; // offset 0x10, size 0x4 + unsigned short AttrFile; // offset 0x14, size 0x2 + unsigned short Reserve1; // offset 0x16, size 0x2 + unsigned int Reserve2; // offset 0x18, size 0x4 + unsigned int PdaAplNo; // offset 0x1C, size 0x4 + unsigned char EntryName[32]; // offset 0x20, size 0x20 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum en_ASYNC_OPCODE { + ISG_OPER_NOOP = 0, + ISG_OPER_INIT = 1, + ISG_OPER_SAVE = 2, + ISG_OPER_LOAD = 3, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zPlatform { + // total size: 0x0 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum en_CHGCODE { + ISG_CHG_NONE = 0, + ISG_CHG_TARGET = 1, + ISG_CHG_GAMELIST = 2, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum en_NAMEGEN_TYPE { + ISG_NGTYP_GAMEDIR = 0, + ISG_NGTYP_GAMEFILE = 1, + ISG_NGTYP_CONFIG = 2, + ISG_NGTYP_ICONTHUM = 3, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class sceMcStDateTime { + // total size: 0x8 +public: + unsigned char Resv2; // offset 0x0, size 0x1 + unsigned char Sec; // offset 0x1, size 0x1 + unsigned char Min; // offset 0x2, size 0x1 + unsigned char Hour; // offset 0x3, size 0x1 + unsigned char Day; // offset 0x4, size 0x1 + unsigned char Month; // offset 0x5, size 0x1 + unsigned short Year; // offset 0x6, size 0x2 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class sceMcIconSys { + // total size: 0x3C4 +public: + unsigned char Head[4]; // offset 0x0, size 0x4 + unsigned short Reserv1; // offset 0x4, size 0x2 + unsigned short OffsLF; // offset 0x6, size 0x2 + unsigned int Reserv2; // offset 0x8, size 0x4 + unsigned int TransRate; // offset 0xC, size 0x4 + signed int BgColor[4][4]; // offset 0x10, size 0x40 + float LightDir[3][4]; // offset 0x50, size 0x30 + float LightColor[3][4]; // offset 0x80, size 0x30 + float Ambient[4]; // offset 0xB0, size 0x10 + unsigned char TitleName[68]; // offset 0xC0, size 0x44 + unsigned char FnameView[64]; // offset 0x104, size 0x40 + unsigned char FnameCopy[64]; // offset 0x144, size 0x40 + unsigned char FnameDel[64]; // offset 0x184, size 0x40 + unsigned char Reserve3[512]; // offset 0x1C4, size 0x200 +}; +enum en_ISGMC_ERRSTATUS { + ISGMC_ERR_NONE = 0, + ISGMC_ERR_NOMEMCARD = 1, + ISGMC_ERR_MKDIR = 2, + ISGMC_ERR_OPEN = 3, + ISGMC_ERR_CLOSE = 4, + ISGMC_ERR_READ = 5, + ISGMC_ERR_WRITE = 6, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum en_ISGMCA_STATUS { + ISG_MCA_STAT_DONE_ERR = -1, + ISG_MCA_STAT_INPROG = 0, + ISG_MCA_STAT_DONE = 1, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum en_ASYNC_OPSTAT { + ISG_OPSTAT_FAILURE = -1, + ISG_OPSTAT_INPROG = 0, + ISG_OPSTAT_SUCCESS = 1, +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +enum en_ISG_IOMODE { + ISG_IOMODE_READ = 1, + ISG_IOMODE_WRITE = 2, + ISG_IOMODE_APPEND = 3, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum en_ASYNC_OPERR { + ISG_OPERR_NONE = 0, + ISG_OPERR_NOOPER = 1, + ISG_OPERR_MULTIOPER = 2, + ISG_OPERR_INITFAIL = 3, + ISG_OPERR_GAMEDIR = 4, + ISG_OPERR_NOCARD = 5, + ISG_OPERR_NOROOM = 6, + ISG_OPERR_DAMAGE = 7, + ISG_OPERR_CORRUPT = 8, + ISG_OPERR_OTHER = 9, + ISG_OPERR_SVNOSPACE = 10, + ISG_OPERR_SVINIT = 11, + ISG_OPERR_SVWRITE = 12, + ISG_OPERR_SVOPEN = 13, + ISG_OPERR_LDINIT = 14, + ISG_OPERR_LDREAD = 15, + ISG_OPERR_LDOPEN = 16, + ISG_OPERR_TGTERR = 17, + ISG_OPERR_TGTREM = 18, + ISG_OPERR_TGTPREP = 19, + ISG_OPERR_UNKNOWN = 20, + ISG_OPERR_NOMORE = 21, +}; +enum en_MEMCARD_SEEKPT { + ISG_MCSEEK_TOP = 0, + ISG_MCSEEK_CUR = 1, + ISG_MCSEEK_END = 2, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3230 -> 0x001B329C +*/ +// Range: 0x1B3230 -> 0x1B329C +unsigned char iSGCheckMemoryCard(signed int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3230 -> 0x1B329C + signed int result; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B32A0 -> 0x001B33B0 +*/ +// Range: 0x1B32A0 -> 0x1B33B0 +unsigned char iSGCheckForGameFiles(signed int mcPort /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B32A0 -> 0x1B33B0 + char fileNames[3][25]; // r29+0x40 + char * gameDir; // r2 + signed int resultCode; // r29+0x8C + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B33B0 -> 0x001B34D0 +*/ +// Range: 0x1B33B0 -> 0x1B34D0 +unsigned char iSGIsGameCorrupt(class st_ISGSESSION * sess /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B33B0 -> 0x1B34D0 + char fileNames[3][25]; // r29+0x40 + char * gameDir; // r2 + signed int resultCode; // r29+0x8C + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B34D0 -> 0x001B34DC +*/ +// Range: 0x1B34D0 -> 0x1B34DC +void iSGIconInit(void * iconData /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B34D0 -> 0x1B34DC + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B34E0 -> 0x001B34E8 +*/ +// Range: 0x1B34E0 -> 0x1B34E8 +void iSGMakeTimeStamp(char * str /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B34E0 -> 0x1B34E8 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B34F0 -> 0x001B3538 +*/ +// Range: 0x1B34F0 -> 0x1B3538 +signed int iSG_is_MCOP_realerr(signed int mcop /* r2 */, signed int que_rc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B34F0 -> 0x1B3538 + signed int is_ok; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3540 -> 0x001B3A58 +*/ +// Range: 0x1B3540 -> 0x1B3A58 +signed int iSG_is_synccode_realerr(signed int mcop /* r2 */, signed int mcopret /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3540 -> 0x1B3A58 + signed int is_ok; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3A60 -> 0x001B3BEC +*/ +// Range: 0x1B3A60 -> 0x1B3BEC +enum en_ISGMCA_STATUS iSG_mcasync_chkop(class st_ISG_MEMCARD_DATA * mcdata /* r20 */, signed int block /* r19 */, signed int * sync_resval /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3A60 -> 0x1B3BEC + enum en_ISGMCA_STATUS result; // r17 + signed int rc; // r2 + signed int ret; // r29+0x6C + signed int mcf; // r29+0x68 + unsigned int on; // r29+0x64 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3BF0 -> 0x001B3C60 +*/ +// Range: 0x1B3BF0 -> 0x1B3C60 +signed int iSG_mca_fwrite(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, char * data /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3BF0 -> 0x1B3C60 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3C60 -> 0x001B3CC8 +*/ +// Range: 0x1B3C60 -> 0x1B3CC8 +signed int iSG_mca_fread(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, char * buf /* r2 */, signed int bufsize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3C60 -> 0x1B3CC8 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3CD0 -> 0x001B3D40 +*/ +// Range: 0x1B3CD0 -> 0x1B3D40 +signed int iSG_mca_fopen(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, char * fname /* r5 */, enum en_ISG_IOMODE mode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3CD0 -> 0x1B3D40 + signed int result; // r16 + signed int rc; // r2 + signed int ps2mode; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3D40 -> 0x001B3DC0 +*/ +// Range: 0x1B3D40 -> 0x1B3DC0 +signed int iSG_mca_unfmt(class st_ISG_MEMCARD_DATA * mcdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3D40 -> 0x1B3DC0 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3DC0 -> 0x001B3E84 +*/ +// Range: 0x1B3DC0 -> 0x1B3E84 +signed int iSG_mca_fmt(class st_ISG_MEMCARD_DATA * mcdata /* r18 */, signed int force /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3DC0 -> 0x1B3E84 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3E90 -> 0x001B3F80 +*/ +// Range: 0x1B3E90 -> 0x1B3F80 +signed int iSG_get_fmoddate(class st_ISG_MEMCARD_DATA * mcdata /* r2 */, char * fname /* r2 */, signed int * sec /* r22 */, signed int * min /* r21 */, signed int * hr /* r20 */, signed int * mon /* r19 */, signed int * day /* r18 */, signed int * yr /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3E90 -> 0x1B3F80 + signed int result; // r23 + signed int rc; // r2 + class sceMcTblGetDir * finf; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B3F80 -> 0x001B4194 +*/ +// Range: 0x1B3F80 -> 0x1B4194 +signed int iSG_get_finfo(class st_ISG_MEMCARD_DATA * mcdata /* r19 */, char * fname /* r18 */, char * path /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B3F80 -> 0x1B4194 + signed int result; // r16 + signed int rc; // r2 + char str_buf[64]; // r29+0x50 + signed int len; // r2 + signed int numfound; // r29+0x9C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B41A0 -> 0x001B4338 +*/ +// Range: 0x1B41A0 -> 0x1B4338 +signed int iSG_isSpaceForFile(class st_ISG_MEMCARD_DATA * mcdata /* r22 */, signed int mcidx /* r21 */, signed int fsize /* r20 */, char * dpath /* r2 */, char * fname /* r23 */, signed int * bytesNeeded /* r19 */, signed int * availOnDisk /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B41A0 -> 0x1B4338 + signed int rc; // r2 + signed int fc_need; // r17 + signed int fEc_need; // r30 + signed int xtra_fent; // r2 + signed int estclust; // r17 + signed int totclust; // r2 + signed int reset_mcpath; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4340 -> 0x001B43F0 +*/ +// Range: 0x1B4340 -> 0x1B43F0 +signed int iSG_mc_availDirEnt(class st_ISG_MEMCARD_DATA * mcdata /* r18 */, signed int mcidx /* r2 */, char * dpath /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4340 -> 0x1B43F0 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B43F0 -> 0x001B4498 +*/ +// Range: 0x1B43F0 -> 0x1B4498 +signed int iSG_mc_availclust(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, signed int mcidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B43F0 -> 0x1B4498 + signed int result; // r16 + signed int rc; // r2 + signed int clust; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B44A0 -> 0x001B4560 +*/ +// Range: 0x1B44A0 -> 0x1B4560 +signed int iSG_mc_isPSIIcard(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, signed int mcidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B44A0 -> 0x1B4560 + signed int result; // r16 + signed int rc; // r2 + signed int type; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4560 -> 0x001B4614 +*/ +// Range: 0x1B4560 -> 0x1B4614 +signed int iSG_mc_isformatted(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, signed int mcidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4560 -> 0x1B4614 + signed int result; // r16 + signed int rc; // r2 + signed int is_fmtd; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4620 -> 0x001B46C0 +*/ +// Range: 0x1B4620 -> 0x1B46C0 +signed int iSG_mc_exists(class st_ISG_MEMCARD_DATA * mcdata /* r17 */, signed int mcidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4620 -> 0x1B46C0 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B46C0 -> 0x001B486C +*/ +// Range: 0x1B46C0 -> 0x1B486C +signed int iSG_mcidx_portslot(signed int mcidx /* r22 */, signed int * port /* r30 */, signed int * slot /* r29+0xA0 */, signed int * concnt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B46C0 -> 0x1B486C + signed int result; // r23 + signed int rc; // r2 + signed int ret; // r29+0xAC + signed int i; // r20 + signed int type; // r29+0xA8 + signed int tp; // r19 + signed int con_p0; // r18 + signed int con_p1; // r17 + signed int use_port; // r16 + signed int cur_mcop; // r29+0xA4 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4870 -> 0x001B4A3C +*/ +// Range: 0x1B4870 -> 0x1B4A3C +void SQUIB_init_st_iconsys(class sceMcIconSys * icsys /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4870 -> 0x1B4A3C + signed int bgcolor[4][4]; // r29+0xE0 + float lightdir[3][4]; // r29+0xB0 + float lightcol[3][4]; // r29+0x80 + float ambient[4]; // r29+0x70 + char * iconname; // r2 + unsigned char sjistitle[68]; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4A40 -> 0x001B4C18 +*/ +// Range: 0x1B4A40 -> 0x1B4C18 +signed int iSG_add_sysicons(class st_ISG_MEMCARD_DATA * mcdata /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4A40 -> 0x1B4C18 + class sceMcIconSys icsysdata; // r29+0x30 + char * iconname; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4C20 -> 0x001B4D7C +*/ +// Range: 0x1B4C20 -> 0x1B4D7C +signed int iSG_add_cfgholder(class st_ISG_MEMCARD_DATA * mcdata /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4C20 -> 0x1B4D7C + char cfgdata[992]; // r29+0x40 + char * strptr; // r18 + char * cfgname; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4D80 -> 0x001B4E28 +*/ +// Range: 0x1B4D80 -> 0x1B4E28 +signed int iSG_start_your_engines() { + // Blocks + /* anonymous block */ { + // Range: 0x1B4D80 -> 0x1B4E28 + signed int result; // r17 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4E30 -> 0x001B4EB0 +*/ +// Range: 0x1B4E30 -> 0x1B4EB0 +signed int iSGAutoSave_Monitor(class st_ISGSESSION * isg /* r16 */, signed int idx_target /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4E30 -> 0x1B4EB0 + unsigned int stat; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4EB0 -> 0x001B4EBC +*/ +// Range: 0x1B4EB0 -> 0x1B4EBC +void iSGAutoSave_Disconnect(class st_ISGSESSION * isg /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4EB0 -> 0x1B4EBC + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4EC0 -> 0x001B4F80 +*/ +// Range: 0x1B4EC0 -> 0x1B4F80 +class st_ISGSESSION * iSGAutoSave_Connect(signed int idx_target /* r16 */, void * cltdata /* r2 */, void (* chg)(void *, enum en_CHGCODE) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4EC0 -> 0x1B4F80 + class st_ISGSESSION * isg; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4F80 -> 0x001B4F88 +*/ +// Range: 0x1B4F80 -> 0x1B4F88 +void iSGAutoSave_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x1B4F80 -> 0x1B4F88 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B4F90 -> 0x001B51D4 +*/ +// Range: 0x1B4F90 -> 0x1B51D4 +enum en_ASYNC_OPERR iSGOpError(class st_ISGSESSION * isgdata /* r17 */, char * errmsg /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B4F90 -> 0x1B51D4 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B51E0 -> 0x001B5388 +*/ +// Range: 0x1B51E0 -> 0x1B5388 +enum en_ASYNC_OPSTAT iSGPollStatus(class st_ISGSESSION * isgdata /* r16 */, enum en_ASYNC_OPCODE * curop /* r2 */, signed int block /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B51E0 -> 0x1B5388 + signed int rc; // r2 + signed int sceResultCode; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5390 -> 0x001B5660 +*/ +// Range: 0x1B5390 -> 0x1B5660 +signed int iSGReadLeader(class st_ISGSESSION * isgdata /* r22 */, char * fname /* r23 */, char * databuf /* r21 */, signed int numbytes /* r20 */, signed int async /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5390 -> 0x1B5660 + signed int result; // r19 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5660 -> 0x001B56F0 +*/ +// Range: 0x1B5660 -> 0x1B56F0 +signed int iSGLoadFile(class st_ISGSESSION * isgdata /* r20 */, char * fname /* r19 */, char * databuf /* r18 */, signed int async /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5660 -> 0x1B56F0 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B56F0 -> 0x001B5A18 +*/ +// Range: 0x1B56F0 -> 0x1B5A18 +signed int iSGSaveFile(class st_ISGSESSION * isgdata /* r22 */, char * fname /* r21 */, char * data /* r20 */, signed int n /* r19 */, signed int async /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B56F0 -> 0x1B5A18 + signed int result; // r18 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5A20 -> 0x001B5D40 +*/ +// Range: 0x1B5A20 -> 0x1B5D40 +signed int iSGSetupGameDir(class st_ISGSESSION * isgdata /* r16 */, char * dname /* r2 */, signed int force_iconfix /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5A20 -> 0x1B5D40 + signed int result; // r19 + signed int rc; // r2 + class st_ISG_MEMCARD_DATA * mcdata; // r18 + signed int dir_isnew; // r17 + char * strptr; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5D40 -> 0x001B5E2C +*/ +// Range: 0x1B5D40 -> 0x1B5E2C +signed int iSGSelectGameDir(class st_ISGSESSION * isgdata /* r16 */, char * dname /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5D40 -> 0x1B5E2C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5E30 -> 0x001B5F90 +*/ +// Range: 0x1B5E30 -> 0x1B5F90 +char * iSGFileModDate(class st_ISGSESSION * isgdata /* r2 */, char * fname /* r2 */, signed int * sec /* r2 */, signed int * min /* r2 */, signed int * hr /* r2 */, signed int * mon /* r2 */, signed int * day /* r2 */, signed int * yr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5E30 -> 0x1B5F90 + signed int rc; // r2 + class sceMcTblGetDir * finf; // r21 + class sceCdCLOCK clock; // r29+0x88 + char datestr[64]; // @ 0x00539260 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5F90 -> 0x001B5FAC +*/ +// Range: 0x1B5F90 -> 0x1B5FAC +char * iSGFileModDate(class st_ISGSESSION * isgdata /* r2 */, char * fname /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5F90 -> 0x1B5FAC + char * date_str; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B5FB0 -> 0x001B6000 +*/ +// Range: 0x1B5FB0 -> 0x1B6000 +signed int iSGFileSize(class st_ISGSESSION * isgdata /* r2 */, char * fname /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B5FB0 -> 0x1B6000 + signed int size; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6000 -> 0x001B6198 +*/ +// Range: 0x1B6000 -> 0x1B6198 +unsigned char iSGGameExists(class st_ISGSESSION * isgdata /* r2 */, char * fname /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B6000 -> 0x1B6198 + signed int rc; // r2 + char str_buf[64]; // r29+0x40 + signed int len; // r2 + signed int numfound; // r29+0x8C + class st_ISG_MEMCARD_DATA * mcdata; // r17 + char * path; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B61A0 -> 0x001B61A8 +*/ +// Range: 0x1B61A0 -> 0x1B61A8 +signed int iSGTgtHaveRoomStartup(class st_ISGSESSION * isgdata /* r2 */, signed int tidx /* r2 */, signed int fsize /* r2 */, char * dpath /* r2 */, char * fname /* r2 */, signed int * bytesNeeded /* r2 */, signed int * availOnDisk /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B61A0 -> 0x1B61A8 + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B61B0 -> 0x001B62AC +*/ +// Range: 0x1B61B0 -> 0x1B62AC +signed int iSGTgtHaveRoom(class st_ISGSESSION * isgdata /* r22 */, signed int tidx /* r21 */, signed int fsize /* r20 */, char * dpath /* r19 */, char * fname /* r18 */, signed int * bytesNeeded /* r17 */, signed int * availOnDisk /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B61B0 -> 0x1B62AC + signed int result; // r2 + signed int i; // r16 + char * gameName; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B62B0 -> 0x001B6320 +*/ +// Range: 0x1B62B0 -> 0x1B6320 +signed int iSGTgtSetActive(class st_ISGSESSION * isgdata /* r2 */, signed int tgtidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B62B0 -> 0x1B6320 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6320 -> 0x001B6454 +*/ +// Range: 0x1B6320 -> 0x1B6454 +unsigned int iSGTgtState(class st_ISGSESSION * isgdata /* r18 */, signed int tgtidx /* r17 */, char * dpath /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B6320 -> 0x1B6454 + unsigned int state; // r19 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6460 -> 0x001B6578 +*/ +// Range: 0x1B6460 -> 0x1B6578 +signed int iSGTgtFormat(class st_ISGSESSION * isgdata /* r16 */, signed int tgtidx /* r19 */, signed int async /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B6460 -> 0x1B6578 + signed int result; // r18 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6580 -> 0x001B65D0 +*/ +// Range: 0x1B6580 -> 0x1B65D0 +signed int iSGTgtPhysSlotIdx() { + // Blocks + /* anonymous block */ { + // Range: 0x1B6580 -> 0x1B65D0 + signed int concnt[2]; // r29+0x10 + signed int dp; // r29+0x1C + signed int ds; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B65D0 -> 0x001B6670 +*/ +// Range: 0x1B65D0 -> 0x1B6670 +signed int iSGTgtCount(signed int * max /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B65D0 -> 0x1B6670 + signed int rc; // r16 + signed int tgtmax; // r2 + signed int concnt[2]; // r29+0x30 + signed int dp; // r29+0x3C + signed int ds; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6670 -> 0x001B667C +*/ +// Range: 0x1B6670 -> 0x1B667C +void iSGSessionEnd(class st_ISGSESSION * isgdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B6670 -> 0x1B667C + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6680 -> 0x001B6770 +*/ +// Range: 0x1B6680 -> 0x1B6770 +class st_ISGSESSION * iSGSessionBegin(void * cltdata /* r19 */, void (* chgfunc)(void *, enum en_CHGCODE) /* r18 */, signed int monitor /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B6680 -> 0x1B6770 + class st_ISGSESSION * isgdata; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6770 -> 0x001B6964 +*/ +// Range: 0x1B6770 -> 0x1B6964 +char * iSGMakeName(enum en_NAMEGEN_TYPE type /* r2 */, char * base /* r2 */, signed int idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1B6770 -> 0x1B6964 + char * use_buf; // r16 + char * fmt_sb; // r11 + char * fmt_sd; // r2 + char * fmt_sbd; // r10 + signed int rotate; // @ 0x0050F850 + char rotatebuf[8][32]; // @ 0x00539160 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6970 -> 0x001B6984 +*/ +// Range: 0x1B6970 -> 0x1B6984 +signed int iSGShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x1B6970 -> 0x1B6984 + } +} + +/* + Compile unit: C:\SB\Core\p2\isavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001B6990 -> 0x001B69C0 +*/ +// Range: 0x1B6990 -> 0x1B69C0 +signed int iSGStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x1B6990 -> 0x1B69C0 + } +} + diff --git a/dwarf/SB/Core/p2/p2im3dhack.cpp b/dwarf/SB/Core/p2/p2im3dhack.cpp new file mode 100644 index 000000000..ba798f026 --- /dev/null +++ b/dwarf/SB/Core/p2/p2im3dhack.cpp @@ -0,0 +1,453 @@ +/* + Compile unit: C:\SB\Core\p2\p2im3dhack.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int gRWPS2FastPath; // size: 0x4, address: 0x0 +signed int (* oldTriInstanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // size: 0x4, address: 0x0 +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPS2AllPipeData { + // total size: 0x48 +public: + class rxNodePS2AllPvtData * objPvtData; // offset 0x0, size 0x4 + class rxNodePS2AllMatPvtData * matPvtData; // offset 0x4, size 0x4 + void * sourceObject; // offset 0x8, size 0x4 + class RpMeshHeader * meshHeader; // offset 0xC, size 0x4 + class RwMeshCache * meshCache; // offset 0x10, size 0x4 + enum RxInstanceFlags objInstance; // offset 0x14, size 0x4 + unsigned int objIdentifier; // offset 0x18, size 0x4 + float spExtra; // offset 0x1C, size 0x4 + signed int numMorphTargets; // offset 0x20, size 0x4 + unsigned int fastMorphing; // offset 0x24, size 0x4 + unsigned char transType; // offset 0x28, size 0x1 + unsigned char primType; // offset 0x29, size 0x1 + unsigned char matModulate; // offset 0x2A, size 0x1 + unsigned char vu1CodeIndex; // offset 0x2B, size 0x1 + class RpMesh * mesh; // offset 0x2C, size 0x4 + class RwResEntry * * cacheEntryRef; // offset 0x30, size 0x4 + enum RxInstanceFlags meshInstance; // offset 0x34, size 0x4 + unsigned int meshIdentifier; // offset 0x38, size 0x4 + class RwSurfaceProperties * surfProps; // offset 0x3C, size 0x4 + class RwTexture * texture; // offset 0x40, size 0x4 + class RwRGBA matCol; // offset 0x44, size 0x4 +}; +class rxNodePS2AllPvtData { + // total size: 0x0 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class rxNodePS2AllMatPvtData { + // total size: 0x32C +public: + signed int (* meshInstanceTestCB)(class RxPS2AllPipeData *); // offset 0x0, size 0x4 + class RwResEntry * (* resEntryAllocCB)(class RxPS2AllPipeData *, class RwResEntry * *, unsigned int, void (*)(class RwResEntry *)); // offset 0x4, size 0x4 + signed int (* instanceCB)(class RxPS2AllPipeData *, void * *, unsigned int); // offset 0x8, size 0x4 + signed int (* bridgeCB)(class RxPS2AllPipeData *); // offset 0xC, size 0x4 + signed int (* postMeshCB)(class RxPS2AllPipeData *); // offset 0x10, size 0x4 + signed int vifOffset; // offset 0x14, size 0x4 + void * * vu1CodeArray; // offset 0x18, size 0x4 + unsigned int codeArrayLength; // offset 0x1C, size 0x4 + class rwPS2AllClusterInstanceInfo clinfo[12]; // offset 0x20, size 0x60 + unsigned int cliIndex[12]; // offset 0x80, size 0x30 + enum RpMeshHeaderFlags pipeType; // offset 0xB0, size 0x4 + unsigned char totallyOpaque; // offset 0xB4, size 0x1 + unsigned char numStripes; // offset 0xB5, size 0x1 + unsigned char sizeOnVU; // offset 0xB6, size 0x1 + unsigned char pad0; // offset 0xB7, size 0x1 + class rwPS2AllResEntryFormat strip; // offset 0xB8, size 0x138 + class rwPS2AllResEntryFormat list; // offset 0x1F0, size 0x138 + unsigned int magicValue; // offset 0x328, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class rwPS2AllClusterInstanceInfo { + // total size: 0x8 +public: + unsigned int attrib; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum RpMeshHeaderFlags { + rpMESHHEADERTRISTRIP = 1, + rpMESHHEADERTRIFAN = 2, + rpMESHHEADERLINELIST = 4, + rpMESHHEADERPOLYLINE = 8, + rpMESHHEADERPOINTLIST = 16, + rpMESHHEADERPRIMMASK = 255, + rpMESHHEADERUNINDEXED = 256, + rpMESHHEADERFLAGSFORCEENUMSIZEINT = 2147483647, +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RxInstanceFlags { + rxINSTANCENAINSTANCEFLAG = 0, + rxINSTANCEDONTINSTANCE = 1, + rxINSTANCEINPLACEINSTANCE = 2, + rxINSTANCECONGRUENTINSTANCE = 4, + rxINSTANCEFULLINSTANCE = 8, + rxINSTANCETYPEMASK = 14, + rxINSTANCEXYZ = 16, + rxINSTANCENORMAL = 32, + rxINSTANCERGBA = 64, + rxINSTANCEUV = 128, + rxINSTANCEUV1 = 128, + rxINSTANCEUV2 = 256, + rxINSTANCEUV3 = 512, + rxINSTANCEUV4 = 1024, + rxINSTANCEUV5 = 2048, + rxINSTANCEUV6 = 4096, + rxINSTANCEUV7 = 8192, + rxINSTANCEUV8 = 16384, + rxINSTANCEUSER1 = 32768, + rxINSTANCEUSER2 = 65536, + rxINSTANCEUSER3 = 131072, + rxINSTANCEUSER4 = 262144, + rxINSTANCEALL = 524272, + rxINSTANCEMASK = 524287, + rxINSTANCEFORCEENUMSIZEINT = 2147483647, +}; +class rwPS2AllResEntryFormat { + // total size: 0x138 +public: + unsigned char batchRound; // offset 0x0, size 0x1 + unsigned char stripReverse; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + unsigned int maxInputSize; // offset 0x4, size 0x4 + signed int batchSize; // offset 0x8, size 0x4 + signed int batchesPerTag; // offset 0xC, size 0x4 + signed int morphBatchSize; // offset 0x10, size 0x4 + signed int morphBatchesPerTag; // offset 0x14, size 0x4 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x18, size 0x120 +}; + +/* + Compile unit: C:\SB\Core\p2\p2im3dhack.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB100 -> 0x001BB108 +*/ +// Range: 0x1BB100 -> 0x1BB108 +void p2EnableFastIm3D() { + // Blocks + /* anonymous block */ { + // Range: 0x1BB100 -> 0x1BB108 + } +} + diff --git a/dwarf/SB/Core/p2/p2skyfs.c b/dwarf/SB/Core/p2/p2skyfs.c new file mode 100644 index 000000000..8098a01a9 --- /dev/null +++ b/dwarf/SB/Core/p2/p2skyfs.c @@ -0,0 +1,318 @@ +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class RwSkyFSState SkyFSState; // size: 0x10C, address: 0x517650 +void * _rwSkyFSClose(void *, signed int, signed int); // size: 0x0, address: 0x110530 +void * _rwSkyFSOpen(void *, signed int, signed int); // size: 0x0, address: 0x1105F0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +signed int skyFtell(void *); // size: 0x0, address: 0x110A00 +signed int skyFflush(void *); // size: 0x0, address: 0x110770 +signed int skyFseek(void *, signed long, signed int); // size: 0x0, address: 0x110A50 +signed int skyFeof(void *); // size: 0x0, address: 0x110780 +signed int skyFputs(char *, void *); // size: 0x0, address: 0x1107D0 +char * skyFgets(char *, signed int, void *); // size: 0x0, address: 0x1108B0 +unsigned int skyFwrite(void *, unsigned int, unsigned int, void *); // size: 0x0, address: 0x110BF0 +unsigned int skyFread(void *, unsigned int, unsigned int, void *); // size: 0x0, address: 0x110CF0 +signed int skyFclose(void *); // size: 0x0, address: 0x110EA0 +void * skyFopen(char *, char *); // size: 0x0, address: 0x110F50 +signed int skyFexist(char *); // size: 0x0, address: 0x110E30 +class RwModuleInfo { + // total size: 0x8 +public: + signed int globalsOffset; // offset 0x0, size 0x4 + signed int numInstances; // offset 0x4, size 0x4 +}; +class skyFile { + // total size: 0x2814 +public: + signed int gdfs; // offset 0x0, size 0x4 + signed int POS; // offset 0x4, size 0x4 + signed int SOF; // offset 0x8, size 0x4 + unsigned char readBuffer[10240]; // offset 0xC, size 0x2800 + unsigned int bufferPos; // offset 0x280C, size 0x4 + signed int bufferValid; // offset 0x2810, size 0x4 +}; +class RwFileFunctions { + // total size: 0x2C +public: + signed int (* rwfexist)(char *); // offset 0x0, size 0x4 + void * (* rwfopen)(char *, char *); // offset 0x4, size 0x4 + signed int (* rwfclose)(void *); // offset 0x8, size 0x4 + unsigned int (* rwfread)(void *, unsigned int, unsigned int, void *); // offset 0xC, size 0x4 + unsigned int (* rwfwrite)(void *, unsigned int, unsigned int, void *); // offset 0x10, size 0x4 + char * (* rwfgets)(char *, signed int, void *); // offset 0x14, size 0x4 + signed int (* rwfputs)(char *, void *); // offset 0x18, size 0x4 + signed int (* rwfeof)(void *); // offset 0x1C, size 0x4 + signed int (* rwfseek)(void *, signed long, signed int); // offset 0x20, size 0x4 + signed int (* rwfflush)(void *); // offset 0x24, size 0x4 + signed int (* rwftell)(void *); // offset 0x28, size 0x4 +}; +class RwSkyFSState { + // total size: 0x10C +public: + signed int gdfsOpenFiles; // offset 0x0, size 0x4 + char SubDir[256]; // offset 0x4, size 0x100 + class RwModuleInfo gdfsModuleInfo; // offset 0x104, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001104A0 -> 0x00110528 +*/ +// Range: 0x1104A0 -> 0x110528 +signed int SkyInstallFileSystem(char * subdir /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1104A0 -> 0x110528 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110530 -> 0x001105EC +*/ +// Range: 0x110530 -> 0x1105EC +static void * _rwSkyFSClose(void * instance /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110530 -> 0x1105EC + class RwFileFunctions * FS; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001105F0 -> 0x00110770 +*/ +// Range: 0x1105F0 -> 0x110770 +static void * _rwSkyFSOpen(void * instance /* r16 */, signed int offset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1105F0 -> 0x110770 + class RwFileFunctions * FS; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110770 -> 0x00110778 +*/ +// Range: 0x110770 -> 0x110778 +static signed int skyFflush() { + // Blocks + /* anonymous block */ { + // Range: 0x110770 -> 0x110778 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110780 -> 0x001107D0 +*/ +// Range: 0x110780 -> 0x1107D0 +static signed int skyFeof(void * fptr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110780 -> 0x1107D0 + class skyFile * fp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001107D0 -> 0x001108AC +*/ +// Range: 0x1107D0 -> 0x1108AC +static signed int skyFputs(char * buffer /* r16 */, void * fptr /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1107D0 -> 0x1108AC + class skyFile * fp; // r2 + signed int i; // r16 + signed int j; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001108B0 -> 0x001109FC +*/ +// Range: 0x1108B0 -> 0x1109FC +static char * skyFgets(char * buffer /* r19 */, signed int maxLen /* r16 */, void * fptr /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1108B0 -> 0x1109FC + class skyFile * fp; // r2 + signed int i; // r17 + signed int numBytesRead; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110A00 -> 0x00110A50 +*/ +// Range: 0x110A00 -> 0x110A50 +static signed int skyFtell(void * fptr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110A00 -> 0x110A50 + class skyFile * fp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110A50 -> 0x00110BF0 +*/ +// Range: 0x110A50 -> 0x110BF0 +static signed int skyFseek(void * fptr /* r2 */, signed long offset /* r20 */, signed int origin /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110A50 -> 0x110BF0 + class skyFile * fp; // r18 + signed int oldFPos; // r17 + signed int bufStart; // r5 + signed int noBuffer; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110BF0 -> 0x00110CEC +*/ +// Range: 0x110BF0 -> 0x110CEC +static unsigned int skyFwrite(void * addr /* r19 */, unsigned int size /* r17 */, unsigned int count /* r2 */, void * fptr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110BF0 -> 0x110CEC + signed int bytesWritten; // r2 + class skyFile * fp; // r2 + signed int numBytesToWrite; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110CF0 -> 0x00110E30 +*/ +// Range: 0x110CF0 -> 0x110E30 +static unsigned int skyFread(void * addr /* r20 */, unsigned int size /* r19 */, unsigned int count /* r2 */, void * fptr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110CF0 -> 0x110E30 + class skyFile * fp; // r18 + unsigned int numBytesToRead; // r17 + signed int bytesRead; // r16 + signed int bytesRead2; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110E30 -> 0x00110E98 +*/ +// Range: 0x110E30 -> 0x110E98 +static signed int skyFexist(char * name /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110E30 -> 0x110E98 + void * res; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110EA0 -> 0x00110F48 +*/ +// Range: 0x110EA0 -> 0x110F48 +static signed int skyFclose(void * fptr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110EA0 -> 0x110F48 + class skyFile * fp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110F50 -> 0x00110F80 +*/ +// Range: 0x110F50 -> 0x110F80 +static void * skyFopen(char * name /* r2 */, char * access /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110F50 -> 0x110F80 + void * res; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00110F80 -> 0x001111DC +*/ +// Range: 0x110F80 -> 0x1111DC +static void * trySkyFopen(char * fname /* r16 */, char * access /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x110F80 -> 0x1111DC + class skyFile * fp; // r16 + signed int mode; // r17 + char name[256]; // r29+0x30 + char * nameptr; // r5 + } +} + +/* + Compile unit: C:\SB\Core\p2\p2skyfs.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001111E0 -> 0x00111308 +*/ +// Range: 0x1111E0 -> 0x111308 +static signed int skyTransMode(char * access /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1111E0 -> 0x111308 + signed int mode; // r3 + char * r; // r20 + char * w; // r19 + char * a; // r18 + char * plus; // r17 + char * n; // r16 + char * d; // r2 + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/audiodec.c b/dwarf/SB/Core/p2/ps2_mpeg/audiodec.c new file mode 100644 index 000000000..36b712e39 --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/audiodec.c @@ -0,0 +1,279 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +static char _0_buf[2048]; // size: 0x800, address: 0x53F0C0 +class xSndGlobals gSnd; // size: 0x13A0, address: 0x5B7800 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum sound_category { + SND_CAT_INVALID = -1, + SND_CAT_GAME = 0, + SND_CAT_DIALOG = 1, + SND_CAT_MUSIC = 2, + SND_CAT_CUTSCENE = 3, + SND_CAT_UI = 4, + SND_CAT_NUM_CATEGORIES = 5, +}; +class AudioDec { + // total size: 0x5C +public: + signed int state; // offset 0x0, size 0x4 + class SpuStreamHeader sshd; // offset 0x4, size 0x20 + class SpuStreamBody ssbd; // offset 0x24, size 0x8 + signed int hdrCount; // offset 0x2C, size 0x4 + unsigned char * data; // offset 0x30, size 0x4 + signed int put; // offset 0x34, size 0x4 + signed int count; // offset 0x38, size 0x4 + signed int size; // offset 0x3C, size 0x4 + signed int totalBytes; // offset 0x40, size 0x4 + signed int iopBuff; // offset 0x44, size 0x4 + signed int iopBuffSize; // offset 0x48, size 0x4 + signed int iopLastPos; // offset 0x4C, size 0x4 + signed int iopPausePos; // offset 0x50, size 0x4 + signed int totalBytesSent; // offset 0x54, size 0x4 + signed int iopZero; // offset 0x58, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class iSndInfo { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + class iSndVol vol; // offset 0x4, size 0x4 + unsigned int pitch; // offset 0x8, size 0x4 + signed int lastStreamBuffer; // offset 0xC, size 0x4 +}; +class SpuStreamHeader { + // total size: 0x20 +public: + char id[4]; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int type; // offset 0x8, size 0x4 + signed int rate; // offset 0xC, size 0x4 + signed int ch; // offset 0x10, size 0x4 + signed int interSize; // offset 0x14, size 0x4 + signed int loopStart; // offset 0x18, size 0x4 + signed int loopEnd; // offset 0x1C, size 0x4 +}; +enum sound_listener_game_mode { + SND_LISTENER_MODE_PLAYER = 0, + SND_LISTENER_MODE_CAMERA = 1, +}; +class xSndVoiceInfo { + // total size: 0x64 +public: + unsigned int assetID; // offset 0x0, size 0x4 + unsigned int sndID; // offset 0x4, size 0x4 + unsigned int parentID; // offset 0x8, size 0x4 + class xVec3 * parentPos; // offset 0xC, size 0x4 + signed int internalID; // offset 0x10, size 0x4 + unsigned int flags; // offset 0x14, size 0x4 + unsigned short pad; // offset 0x18, size 0x2 + unsigned short priority; // offset 0x1A, size 0x2 + float vol; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + unsigned int sample_rate; // offset 0x24, size 0x4 + unsigned int deadct; // offset 0x28, size 0x4 + enum sound_category category; // offset 0x2C, size 0x4 + class xVec3 actualPos; // offset 0x30, size 0xC + class xVec3 playPos; // offset 0x3C, size 0xC + float innerRadius2; // offset 0x48, size 0x4 + float outerRadius2; // offset 0x4C, size 0x4 + unsigned int lock_owner; // offset 0x50, size 0x4 + class iSndInfo ps; // offset 0x54, size 0x10 +}; +class sceSifDmaData { + // total size: 0x10 +public: + unsigned int data; // offset 0x0, size 0x4 + unsigned int addr; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + unsigned int mode; // offset 0xC, size 0x4 +}; +class SpuStreamBody { + // total size: 0x8 +public: + char id[4]; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 +}; +class iSndVol { + // total size: 0x4 +public: + signed short volL; // offset 0x0, size 0x2 + signed short volR; // offset 0x2, size 0x2 +}; +class xSndGlobals { + // total size: 0x13A0 +public: + unsigned int stereo; // offset 0x0, size 0x4 + unsigned int SndCount; // offset 0x4, size 0x4 + float categoryVolFader[5]; // offset 0x8, size 0x14 + class xSndVoiceInfo voice[48]; // offset 0x1C, size 0x12C0 + class xMat4x3 listenerMat[2]; // offset 0x12E0, size 0x80 + enum sound_listener_game_mode listenerMode; // offset 0x1360, size 0x4 + unsigned int suspendCD; // offset 0x1364, size 0x4 + class xVec3 right; // offset 0x1368, size 0xC + class xVec3 up; // offset 0x1374, size 0xC + class xVec3 at; // offset 0x1380, size 0xC + class xVec3 pos; // offset 0x138C, size 0xC +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BB9E0 -> 0x001BBD10 +*/ +// Range: 0x1BB9E0 -> 0x1BBD10 +static signed int sendToIOP2area(signed int pd0 /* r21 */, signed int d0 /* r20 */, signed int pd1 /* r23 */, signed int d1 /* r2 */, unsigned char * ps0 /* r19 */, signed int s0 /* r18 */, unsigned char * ps1 /* r22 */, signed int s1 /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BB9E0 -> 0x1BBD10 + signed int diff; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BBD10 -> 0x001BBF08 +*/ +// Range: 0x1BBD10 -> 0x1BBF08 +signed int audioDecSendToIOP(class AudioDec * ad /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BBD10 -> 0x1BBF08 + signed int pd0; // r2 + signed int pd1; // r2 + signed int d0; // r2 + signed int d1; // r2 + unsigned char * ps0; // r2 + signed int s1; // r2 + signed int count_sent; // r17 + signed int countAdj; // r3 + signed int pos; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BBF10 -> 0x001BBF24 +*/ +// Range: 0x1BBF10 -> 0x1BBF24 +signed int audioDecIsPreset(class AudioDec * ad /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BBF10 -> 0x1BBF24 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BBF30 -> 0x001BBFBC +*/ +// Range: 0x1BBF30 -> 0x1BBFBC +void audioDecEndPut(class AudioDec * ad /* r2 */, signed int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BBF30 -> 0x1BBFBC + signed int hdr_add; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BBFC0 -> 0x001BC080 +*/ +// Range: 0x1BBFC0 -> 0x1BC080 +void audioDecBeginPut(class AudioDec * ad /* r2 */, unsigned char * * ptr0 /* r2 */, signed int * len0 /* r2 */, unsigned char * * ptr1 /* r2 */, signed int * len1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BBFC0 -> 0x1BC080 + signed int len; // r11 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC080 -> 0x001BC124 +*/ +// Range: 0x1BC080 -> 0x1BC124 +void audioDecReset(class AudioDec * ad /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC080 -> 0x1BC124 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC130 -> 0x001BC1A0 +*/ +// Range: 0x1BC130 -> 0x1BC1A0 +void audioDecStart(class AudioDec * ad /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC130 -> 0x1BC1A0 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC1A0 -> 0x001BC1E0 +*/ +// Range: 0x1BC1A0 -> 0x1BC1E0 +signed int audioDecDelete(class AudioDec * ad /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC1A0 -> 0x1BC1E0 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\audiodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC1E0 -> 0x001BC38C +*/ +// Range: 0x1BC1E0 -> 0x1BC38C +signed int audioDecCreate(class AudioDec * ad /* r17 */, unsigned char * buff /* r2 */, signed int buffSize /* r2 */, signed int iopBuffSize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC1E0 -> 0x1BC38C + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/disp.c b/dwarf/SB/Core/p2/ps2_mpeg/disp.c new file mode 100644 index 000000000..f5fa64404 --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/disp.c @@ -0,0 +1,423 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int isCountVblank; // size: 0x4, address: 0x50F8B8 +signed int vblankCount; // size: 0x4, address: 0x50F8BC +signed int isFrameEnd; // size: 0x4, address: 0x50F8C0 +signed int oddeven; // size: 0x4, address: 0x50F8C4 +signed int handler_error; // size: 0x4, address: 0x50F8C8 +static __int128 _packetBase[6]; // size: 0x60, address: 0x53F8C0 +signed int frd; // size: 0x4, address: 0x50F900 +class VoBuf voBuf; // size: 0x14, address: 0x53FA50 +class sceGsDBuff sony_db; // size: 0x230, address: 0x53FA70 +class tGS_BGCOLOR { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int p0 : 8; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class VoData { + // total size: 0x12C000 +public: + unsigned char v[1228800]; // offset 0x0, size 0x12C000 +}; +class sceGsXyz { + // total size: 0x8 +public: + unsigned long X : 16; // offset 0x0, size 0x4 + unsigned long Y : 16; // offset 0x0, size 0x4 + unsigned long Z : 32; // offset 0x0, size 0x4 +}; +class VoTag { + // total size: 0x39240 +public: + signed int status; // offset 0x0, size 0x4 + signed int dummy[15]; // offset 0x4, size 0x3C + unsigned int v[2][29248]; // offset 0x40, size 0x39200 +}; +class tGS_SMODE2 { + // total size: 0x8 +public: + unsigned int INT : 1; // offset 0x0, size 0x4 + unsigned int FFMD : 1; // offset 0x0, size 0x4 + unsigned int DPMS : 2; // offset 0x0, size 0x4 + unsigned int p0 : 28; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGifTag { + // total size: 0x10 +public: + unsigned long NLOOP : 15; // offset 0x0, size 0x4 + unsigned long EOP : 1; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long id : 14; // offset 0x0, size 0x4 + unsigned long PRE : 1; // offset 0x0, size 0x4 + unsigned long PRIM : 11; // offset 0x0, size 0x4 + unsigned long FLG : 2; // offset 0x0, size 0x4 + unsigned long NREG : 4; // offset 0x0, size 0x4 + unsigned long REGS0 : 4; // offset 0x8, size 0x4 + unsigned long REGS1 : 4; // offset 0x8, size 0x4 + unsigned long REGS2 : 4; // offset 0x8, size 0x4 + unsigned long REGS3 : 4; // offset 0x8, size 0x4 + unsigned long REGS4 : 4; // offset 0x8, size 0x4 + unsigned long REGS5 : 4; // offset 0x8, size 0x4 + unsigned long REGS6 : 4; // offset 0x8, size 0x4 + unsigned long REGS7 : 4; // offset 0x8, size 0x4 + unsigned long REGS8 : 4; // offset 0x8, size 0x4 + unsigned long REGS9 : 4; // offset 0x8, size 0x4 + unsigned long REGS10 : 4; // offset 0x8, size 0x4 + unsigned long REGS11 : 4; // offset 0x8, size 0x4 + unsigned long REGS12 : 4; // offset 0x8, size 0x4 + unsigned long REGS13 : 4; // offset 0x8, size 0x4 + unsigned long REGS14 : 4; // offset 0x8, size 0x4 + unsigned long REGS15 : 4; // offset 0x8, size 0x4 +}; +class sceGsScissor { + // total size: 0x8 +public: + unsigned long SCAX0 : 11; // offset 0x0, size 0x4 + unsigned long pad11 : 5; // offset 0x0, size 0x4 + unsigned long SCAX1 : 11; // offset 0x0, size 0x4 + unsigned long pad27 : 5; // offset 0x0, size 0x4 + unsigned long SCAY0 : 11; // offset 0x0, size 0x4 + unsigned long pad43 : 5; // offset 0x0, size 0x4 + unsigned long SCAY1 : 11; // offset 0x0, size 0x4 + unsigned long pad59 : 5; // offset 0x0, size 0x4 +}; +class VoBuf { + // total size: 0x14 +public: + class VoData * data; // offset 0x0, size 0x4 + class VoTag * tag; // offset 0x4, size 0x4 + signed int write; // offset 0x8, size 0x4 + signed int count; // offset 0xC, size 0x4 + signed int size; // offset 0x10, size 0x4 +}; +class tGS_DISPFB2 { + // total size: 0x8 +public: + unsigned int FBP : 9; // offset 0x0, size 0x4 + unsigned int FBW : 6; // offset 0x0, size 0x4 + unsigned int PSM : 5; // offset 0x0, size 0x4 + unsigned int p0 : 12; // offset 0x0, size 0x4 + unsigned int DBX : 11; // offset 0x4, size 0x4 + unsigned int DBY : 11; // offset 0x4, size 0x4 + unsigned int p1 : 10; // offset 0x4, size 0x4 +}; +class sceGsClear { + // total size: 0x60 +public: + class sceGsTest testa; // offset 0x0, size 0x8 + signed long testaaddr; // offset 0x8, size 0x4 + class sceGsPrim prim; // offset 0x10, size 0x8 + signed long primaddr; // offset 0x18, size 0x4 + class sceGsRgbaq rgbaq; // offset 0x20, size 0x8 + signed long rgbaqaddr; // offset 0x28, size 0x4 + class sceGsXyz xyz2a; // offset 0x30, size 0x8 + signed long xyz2aaddr; // offset 0x38, size 0x4 + class sceGsXyz xyz2b; // offset 0x40, size 0x8 + signed long xyz2baddr; // offset 0x48, size 0x4 + class sceGsTest testb; // offset 0x50, size 0x8 + signed long testbaddr; // offset 0x58, size 0x4 +}; +class sceGsZbuf { + // total size: 0x8 +public: + unsigned long ZBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 15; // offset 0x0, size 0x4 + unsigned long PSM : 4; // offset 0x0, size 0x4 + unsigned long pad28 : 4; // offset 0x0, size 0x4 + unsigned long ZMSK : 1; // offset 0x0, size 0x4 + unsigned long pad33 : 31; // offset 0x0, size 0x4 +}; +class sceGsPrim { + // total size: 0x8 +public: + unsigned long PRIM : 3; // offset 0x0, size 0x4 + unsigned long IIP : 1; // offset 0x0, size 0x4 + unsigned long TME : 1; // offset 0x0, size 0x4 + unsigned long FGE : 1; // offset 0x0, size 0x4 + unsigned long ABE : 1; // offset 0x0, size 0x4 + unsigned long AA1 : 1; // offset 0x0, size 0x4 + unsigned long FST : 1; // offset 0x0, size 0x4 + unsigned long CTXT : 1; // offset 0x0, size 0x4 + unsigned long FIX : 1; // offset 0x0, size 0x4 + unsigned long pad11 : 53; // offset 0x0, size 0x4 +}; +class _sceDmaTag { + // total size: 0x10 +public: + unsigned short qwc; // offset 0x0, size 0x2 + unsigned char mark; // offset 0x2, size 0x1 + unsigned char id; // offset 0x3, size 0x1 + class _sceDmaTag * next; // offset 0x4, size 0x4 + unsigned int p[2]; // offset 0x8, size 0x8 +}; +class sceGsFrame { + // total size: 0x8 +public: + unsigned long FBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 7; // offset 0x0, size 0x4 + unsigned long FBW : 6; // offset 0x0, size 0x4 + unsigned long pad22 : 2; // offset 0x0, size 0x4 + unsigned long PSM : 6; // offset 0x0, size 0x4 + unsigned long pad30 : 2; // offset 0x0, size 0x4 + unsigned long FBMSK : 32; // offset 0x0, size 0x4 +}; +class sceGsDispEnv { + // total size: 0x28 +public: + class tGS_PMODE pmode; // offset 0x0, size 0x8 + class tGS_SMODE2 smode2; // offset 0x8, size 0x8 + class tGS_DISPFB2 dispfb; // offset 0x10, size 0x8 + class tGS_DISPLAY2 display; // offset 0x18, size 0x8 + class tGS_BGCOLOR bgcolor; // offset 0x20, size 0x8 +}; +class sceGsDBuff { + // total size: 0x230 +public: + class sceGsDispEnv disp[2]; // offset 0x0, size 0x50 + class sceGifTag giftag0; // offset 0x50, size 0x10 + class sceGsDrawEnv1 draw0; // offset 0x60, size 0x80 + class sceGsClear clear0; // offset 0xE0, size 0x60 + class sceGifTag giftag1; // offset 0x140, size 0x10 + class sceGsDrawEnv1 draw1; // offset 0x150, size 0x80 + class sceGsClear clear1; // offset 0x1D0, size 0x60 +}; +class tGS_DISPLAY2 { + // total size: 0x8 +public: + unsigned int DX : 12; // offset 0x0, size 0x4 + unsigned int DY : 11; // offset 0x0, size 0x4 + unsigned int MAGH : 4; // offset 0x0, size 0x4 + unsigned int MAGV : 2; // offset 0x0, size 0x4 + unsigned int p0 : 3; // offset 0x0, size 0x4 + unsigned int DW : 12; // offset 0x4, size 0x4 + unsigned int DH : 11; // offset 0x4, size 0x4 + unsigned int p1 : 9; // offset 0x4, size 0x4 +}; +class sceGsDrawEnv1 { + // total size: 0x80 +public: + class sceGsFrame frame1; // offset 0x0, size 0x8 + unsigned long frame1addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf1; // offset 0x10, size 0x8 + signed long zbuf1addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset1; // offset 0x20, size 0x8 + signed long xyoffset1addr; // offset 0x28, size 0x4 + class sceGsScissor scissor1; // offset 0x30, size 0x8 + signed long scissor1addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test1; // offset 0x70, size 0x8 + signed long test1addr; // offset 0x78, size 0x4 +}; +class tD_CHCR { + // total size: 0x4 +public: + unsigned int DIR : 1; // offset 0x0, size 0x4 + unsigned int p0 : 1; // offset 0x0, size 0x4 + unsigned int MOD : 2; // offset 0x0, size 0x4 + unsigned int ASP : 2; // offset 0x0, size 0x4 + unsigned int TTE : 1; // offset 0x0, size 0x4 + unsigned int TIE : 1; // offset 0x0, size 0x4 + unsigned int STR : 1; // offset 0x0, size 0x4 + unsigned int p1 : 7; // offset 0x0, size 0x4 + unsigned int TAG : 16; // offset 0x0, size 0x4 +}; +class sceGsTest { + // total size: 0x8 +public: + unsigned long ATE : 1; // offset 0x0, size 0x4 + unsigned long ATST : 3; // offset 0x0, size 0x4 + unsigned long AREF : 8; // offset 0x0, size 0x4 + unsigned long AFAIL : 2; // offset 0x0, size 0x4 + unsigned long DATE : 1; // offset 0x0, size 0x4 + unsigned long DATM : 1; // offset 0x0, size 0x4 + unsigned long ZTE : 1; // offset 0x0, size 0x4 + unsigned long ZTST : 2; // offset 0x0, size 0x4 + unsigned long pad19 : 45; // offset 0x0, size 0x4 +}; +class sceGsDthe { + // total size: 0x8 +public: + unsigned long DTHE : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceDmaChan { + // total size: 0x90 +public: + class tD_CHCR chcr; // offset 0x0, size 0x4 + unsigned int p0[3]; // offset 0x4, size 0xC + void * madr; // offset 0x10, size 0x4 + unsigned int p1[3]; // offset 0x14, size 0xC + unsigned int qwc; // offset 0x20, size 0x4 + unsigned int p2[3]; // offset 0x24, size 0xC + class _sceDmaTag * tadr; // offset 0x30, size 0x4 + unsigned int p3[3]; // offset 0x34, size 0xC + void * as0; // offset 0x40, size 0x4 + unsigned int p4[3]; // offset 0x44, size 0xC + void * as1; // offset 0x50, size 0x4 + unsigned int p5[3]; // offset 0x54, size 0xC + unsigned int p6[4]; // offset 0x60, size 0x10 + unsigned int p7[4]; // offset 0x70, size 0x10 + void * sadr; // offset 0x80, size 0x4 + unsigned int p8[3]; // offset 0x84, size 0xC +}; +class sceGifPacket { + // total size: 0x10 +public: + unsigned int * pCurrent; // offset 0x0, size 0x4 + __int128 * pBase; // offset 0x4, size 0x4 + __int128 * pDmaTag; // offset 0x8, size 0x4 + unsigned long * pGifTag; // offset 0xC, size 0x4 +}; +class sceGsPrmodecont { + // total size: 0x8 +public: + unsigned long AC : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class tGS_PMODE { + // total size: 0x8 +public: + unsigned int EN1 : 1; // offset 0x0, size 0x4 + unsigned int EN2 : 1; // offset 0x0, size 0x4 + unsigned int CRTMD : 3; // offset 0x0, size 0x4 + unsigned int MMOD : 1; // offset 0x0, size 0x4 + unsigned int AMOD : 1; // offset 0x0, size 0x4 + unsigned int SLBG : 1; // offset 0x0, size 0x4 + unsigned int ALP : 8; // offset 0x0, size 0x4 + unsigned int p0 : 16; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsXyoffset { + // total size: 0x8 +public: + unsigned long OFX : 16; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long OFY : 16; // offset 0x0, size 0x4 + unsigned long pad48 : 16; // offset 0x0, size 0x4 +}; +class sceGsColclamp { + // total size: 0x8 +public: + unsigned long CLAMP : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsRgbaq { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int A : 8; // offset 0x0, size 0x4 + float Q; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC390 -> 0x001BC39C +*/ +// Range: 0x1BC390 -> 0x1BC39C +void endDisplay() { + // Blocks + /* anonymous block */ { + // Range: 0x1BC390 -> 0x1BC39C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC3A0 -> 0x001BC3E8 +*/ +// Range: 0x1BC3A0 -> 0x1BC3E8 +void startDisplay(signed int waitEven /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC3A0 -> 0x1BC3E8 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC3F0 -> 0x001BC430 +*/ +// Range: 0x1BC3F0 -> 0x1BC430 +signed int handler_endimage() { + // Blocks + /* anonymous block */ { + // Range: 0x1BC3F0 -> 0x1BC430 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC430 -> 0x001BC604 +*/ +// Range: 0x1BC430 -> 0x1BC604 +signed int vblankHandler() { + // Blocks + /* anonymous block */ { + // Range: 0x1BC430 -> 0x1BC604 + class sceDmaChan * dmaGif_loadimage; // r17 + class VoTag * tag; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC610 -> 0x001BC90C +*/ +// Range: 0x1BC610 -> 0x1BC90C +void setImageTag(unsigned int * tags /* r2 */, void * image /* r21 */, signed int index /* r16 */, signed int image_w /* r30 */, signed int image_h /* r29+0xAC */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC610 -> 0x1BC90C + signed int mbx; // r22 + signed int mby; // r23 + signed int i; // r20 + signed int j; // r19 + class sceGifPacket packet; // r29+0xD0 + unsigned long giftag[2]; // r29+0xC0 + unsigned long giftag_eop[2]; // r29+0xB0 + unsigned long * tag; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\disp.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BC910 -> 0x001BCB80 +*/ +// Range: 0x1BC910 -> 0x1BCB80 +void clearGsMem(signed int r /* r21 */, signed int g /* r20 */, signed int b /* r19 */, signed int disp_width /* r18 */, signed int disp_height /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BC910 -> 0x1BCB80 + unsigned long giftag_clear[2]; // r29+0x80 + class sceGifPacket packet; // r29+0x70 + class sceDmaChan * dmaGif; // r16 + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/ps2_mpeg.c b/dwarf/SB/Core/p2/ps2_mpeg/ps2_mpeg.c new file mode 100644 index 000000000..a75c7ec49 --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/ps2_mpeg.c @@ -0,0 +1,629 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class VoData * voBufData; // size: 0x4, address: 0x50F8CC +static class VoTag * voBufTag; // size: 0x4, address: 0x50F8D0 +static __int128 * viBufTag; // size: 0x4, address: 0x50F8D4 +static unsigned char * mpegWork; // size: 0x4, address: 0x50F8D8 +static signed int mpegWorkSz; // size: 0x4, address: 0x50F8DC +static char * defStack; // size: 0x4, address: 0x50F8E0 +class ReadBuf * readBufp; // size: 0x4, address: 0x50F8E4 +static unsigned char * audioBuff; // size: 0x4, address: 0x50F8E8 +static __int128 * viBufData; // size: 0x4, address: 0x50F8EC +static char * videoDecStack; // size: 0x4, address: 0x50F8F0 +static class TimeStamp * timeStamp; // size: 0x4, address: 0x50F8F4 +signed int videoDecTh; // size: 0x4, address: 0x50F8F8 +signed int defaultTh; // size: 0x4, address: 0x50F8FC +class StrFile infile; // size: 0xC, address: 0x53F920 +class VideoDec videoDec; // size: 0xB8, address: 0x53F930 +class AudioDec audioDec; // size: 0x5C, address: 0x53F9F0 +class VoBuf voBuf; // size: 0x14, address: 0x53FA50 +signed int frd; // size: 0x4, address: 0x50F900 +unsigned int controller_val; // size: 0x4, address: 0x0 +signed int isWithAudio; // size: 0x4, address: 0x50E810 +class sceGsDBuff sony_db; // size: 0x230, address: 0x53FA70 +static unsigned int skip_buttons; // size: 0x4, address: 0x50F904 +static unsigned int skip_time; // size: 0x4, address: 0x50F908 +signed int handler_endimage(signed int); // size: 0x0, address: 0x1BC3F0 +signed int vblankHandler(signed int); // size: 0x0, address: 0x1BC430 +void * _gp; // size: 0x4, address: 0x516470 +void videoDecMain(class VideoDec *); // size: 0x0, address: 0x1BEF40 +void defMain(void *); // size: 0x0, address: 0x1BCB90 +signed int pcmCallback(class sceMpeg *, class sceMpegCbDataStr *, void *); // size: 0x0, address: 0x1BD470 +signed int videoCallback(class sceMpeg *, class sceMpegCbDataStr *, void *); // size: 0x0, address: 0x1BD630 +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +class sceIpuDmaEnv { + // total size: 0x24 +public: + unsigned int d4madr; // offset 0x0, size 0x4 + unsigned int d4tadr; // offset 0x4, size 0x4 + unsigned int d4qwc; // offset 0x8, size 0x4 + unsigned int d4chcr; // offset 0xC, size 0x4 + unsigned int d3madr; // offset 0x10, size 0x4 + unsigned int d3qwc; // offset 0x14, size 0x4 + unsigned int d3chcr; // offset 0x18, size 0x4 + unsigned int ipubp; // offset 0x1C, size 0x4 + unsigned int ipuctrl; // offset 0x20, size 0x4 +}; +class sceGsScissor { + // total size: 0x8 +public: + unsigned long SCAX0 : 11; // offset 0x0, size 0x4 + unsigned long pad11 : 5; // offset 0x0, size 0x4 + unsigned long SCAX1 : 11; // offset 0x0, size 0x4 + unsigned long pad27 : 5; // offset 0x0, size 0x4 + unsigned long SCAY0 : 11; // offset 0x0, size 0x4 + unsigned long pad43 : 5; // offset 0x0, size 0x4 + unsigned long SCAY1 : 11; // offset 0x0, size 0x4 + unsigned long pad59 : 5; // offset 0x0, size 0x4 +}; +class ThreadParam { + // total size: 0x30 +public: + signed int status; // offset 0x0, size 0x4 + void (* entry)(void *); // offset 0x4, size 0x4 + void * stack; // offset 0x8, size 0x4 + signed int stackSize; // offset 0xC, size 0x4 + void * gpReg; // offset 0x10, size 0x4 + signed int initPriority; // offset 0x14, size 0x4 + signed int currentPriority; // offset 0x18, size 0x4 + unsigned int attr; // offset 0x1C, size 0x4 + unsigned int option; // offset 0x20, size 0x4 + signed int waitType; // offset 0x24, size 0x4 + signed int waitId; // offset 0x28, size 0x4 + signed int wakeupCount; // offset 0x2C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class VoData { + // total size: 0x12C000 +public: + unsigned char v[1228800]; // offset 0x0, size 0x12C000 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class sceGsFrame { + // total size: 0x8 +public: + unsigned long FBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 7; // offset 0x0, size 0x4 + unsigned long FBW : 6; // offset 0x0, size 0x4 + unsigned long pad22 : 2; // offset 0x0, size 0x4 + unsigned long PSM : 6; // offset 0x0, size 0x4 + unsigned long pad30 : 2; // offset 0x0, size 0x4 + unsigned long FBMSK : 32; // offset 0x0, size 0x4 +}; +class tGS_DISPLAY2 { + // total size: 0x8 +public: + unsigned int DX : 12; // offset 0x0, size 0x4 + unsigned int DY : 11; // offset 0x0, size 0x4 + unsigned int MAGH : 4; // offset 0x0, size 0x4 + unsigned int MAGV : 2; // offset 0x0, size 0x4 + unsigned int p0 : 3; // offset 0x0, size 0x4 + unsigned int DW : 12; // offset 0x4, size 0x4 + unsigned int DH : 11; // offset 0x4, size 0x4 + unsigned int p1 : 9; // offset 0x4, size 0x4 +}; +class sceGsPrim { + // total size: 0x8 +public: + unsigned long PRIM : 3; // offset 0x0, size 0x4 + unsigned long IIP : 1; // offset 0x0, size 0x4 + unsigned long TME : 1; // offset 0x0, size 0x4 + unsigned long FGE : 1; // offset 0x0, size 0x4 + unsigned long ABE : 1; // offset 0x0, size 0x4 + unsigned long AA1 : 1; // offset 0x0, size 0x4 + unsigned long FST : 1; // offset 0x0, size 0x4 + unsigned long CTXT : 1; // offset 0x0, size 0x4 + unsigned long FIX : 1; // offset 0x0, size 0x4 + unsigned long pad11 : 53; // offset 0x0, size 0x4 +}; +enum sceMpegCbType { + sceMpegCbError = 0, + sceMpegCbNodata = 1, + sceMpegCbStopDMA = 2, + sceMpegCbRestartDMA = 3, + sceMpegCbBackground = 4, + sceMpegCbTimeStamp = 5, + sceMpegCbStr = 6, +}; +class sceGsZbuf { + // total size: 0x8 +public: + unsigned long ZBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 15; // offset 0x0, size 0x4 + unsigned long PSM : 4; // offset 0x0, size 0x4 + unsigned long pad28 : 4; // offset 0x0, size 0x4 + unsigned long ZMSK : 1; // offset 0x0, size 0x4 + unsigned long pad33 : 31; // offset 0x0, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class VideoDec { + // total size: 0xB8 +public: + class sceMpeg mpeg; // offset 0x0, size 0x48 + class ViBuf vibuf; // offset 0x48, size 0x60 + unsigned int state; // offset 0xA8, size 0x4 + signed int sema; // offset 0xAC, size 0x4 + signed int hid_endimage; // offset 0xB0, size 0x4 + signed int hid_vblank; // offset 0xB4, size 0x4 +}; +class ReadBuf { + // total size: 0x5000C +public: + unsigned char data[327680]; // offset 0x0, size 0x50000 + signed int put; // offset 0x50000, size 0x4 + signed int count; // offset 0x50004, size 0x4 + signed int size; // offset 0x50008, size 0x4 +}; +class StrFile { + // total size: 0xC +public: + signed int file; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int current; // offset 0x8, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class sceGsClear { + // total size: 0x60 +public: + class sceGsTest testa; // offset 0x0, size 0x8 + signed long testaaddr; // offset 0x8, size 0x4 + class sceGsPrim prim; // offset 0x10, size 0x8 + signed long primaddr; // offset 0x18, size 0x4 + class sceGsRgbaq rgbaq; // offset 0x20, size 0x8 + signed long rgbaqaddr; // offset 0x28, size 0x4 + class sceGsXyz xyz2a; // offset 0x30, size 0x8 + signed long xyz2aaddr; // offset 0x38, size 0x4 + class sceGsXyz xyz2b; // offset 0x40, size 0x8 + signed long xyz2baddr; // offset 0x48, size 0x4 + class sceGsTest testb; // offset 0x50, size 0x8 + signed long testbaddr; // offset 0x58, size 0x4 +}; +class tGS_PMODE { + // total size: 0x8 +public: + unsigned int EN1 : 1; // offset 0x0, size 0x4 + unsigned int EN2 : 1; // offset 0x0, size 0x4 + unsigned int CRTMD : 3; // offset 0x0, size 0x4 + unsigned int MMOD : 1; // offset 0x0, size 0x4 + unsigned int AMOD : 1; // offset 0x0, size 0x4 + unsigned int SLBG : 1; // offset 0x0, size 0x4 + unsigned int ALP : 8; // offset 0x0, size 0x4 + unsigned int p0 : 16; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class VoTag { + // total size: 0x39240 +public: + signed int status; // offset 0x0, size 0x4 + signed int dummy[15]; // offset 0x4, size 0x3C + unsigned int v[2][29248]; // offset 0x40, size 0x39200 +}; +class sceGsDispEnv { + // total size: 0x28 +public: + class tGS_PMODE pmode; // offset 0x0, size 0x8 + class tGS_SMODE2 smode2; // offset 0x8, size 0x8 + class tGS_DISPFB2 dispfb; // offset 0x10, size 0x8 + class tGS_DISPLAY2 display; // offset 0x18, size 0x8 + class tGS_BGCOLOR bgcolor; // offset 0x20, size 0x8 +}; +class sceGsDthe { + // total size: 0x8 +public: + unsigned long DTHE : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class tGS_BGCOLOR { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int p0 : 8; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsTest { + // total size: 0x8 +public: + unsigned long ATE : 1; // offset 0x0, size 0x4 + unsigned long ATST : 3; // offset 0x0, size 0x4 + unsigned long AREF : 8; // offset 0x0, size 0x4 + unsigned long AFAIL : 2; // offset 0x0, size 0x4 + unsigned long DATE : 1; // offset 0x0, size 0x4 + unsigned long DATM : 1; // offset 0x0, size 0x4 + unsigned long ZTE : 1; // offset 0x0, size 0x4 + unsigned long ZTST : 2; // offset 0x0, size 0x4 + unsigned long pad19 : 45; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class sceGsDBuff { + // total size: 0x230 +public: + class sceGsDispEnv disp[2]; // offset 0x0, size 0x50 + class sceGifTag giftag0; // offset 0x50, size 0x10 + class sceGsDrawEnv1 draw0; // offset 0x60, size 0x80 + class sceGsClear clear0; // offset 0xE0, size 0x60 + class sceGifTag giftag1; // offset 0x140, size 0x10 + class sceGsDrawEnv1 draw1; // offset 0x150, size 0x80 + class sceGsClear clear1; // offset 0x1D0, size 0x60 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class TimeStamp { + // total size: 0x18 +public: + signed long pts; // offset 0x0, size 0x4 + signed long dts; // offset 0x8, size 0x4 + signed int pos; // offset 0x10, size 0x4 + signed int len; // offset 0x14, size 0x4 +}; +class sceMpegCbDataStr { + // total size: 0x20 +public: + enum sceMpegCbType type; // offset 0x0, size 0x4 + unsigned char * header; // offset 0x4, size 0x4 + unsigned char * data; // offset 0x8, size 0x4 + unsigned int len; // offset 0xC, size 0x4 + signed long pts; // offset 0x10, size 0x4 + signed long dts; // offset 0x18, size 0x4 +}; +class VoBuf { + // total size: 0x14 +public: + class VoData * data; // offset 0x0, size 0x4 + class VoTag * tag; // offset 0x4, size 0x4 + signed int write; // offset 0x8, size 0x4 + signed int count; // offset 0xC, size 0x4 + signed int size; // offset 0x10, size 0x4 +}; +class SpuStreamHeader { + // total size: 0x20 +public: + char id[4]; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int type; // offset 0x8, size 0x4 + signed int rate; // offset 0xC, size 0x4 + signed int ch; // offset 0x10, size 0x4 + signed int interSize; // offset 0x14, size 0x4 + signed int loopStart; // offset 0x18, size 0x4 + signed int loopEnd; // offset 0x1C, size 0x4 +}; +class sceGsDrawEnv1 { + // total size: 0x80 +public: + class sceGsFrame frame1; // offset 0x0, size 0x8 + unsigned long frame1addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf1; // offset 0x10, size 0x8 + signed long zbuf1addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset1; // offset 0x20, size 0x8 + signed long xyoffset1addr; // offset 0x28, size 0x4 + class sceGsScissor scissor1; // offset 0x30, size 0x8 + signed long scissor1addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test1; // offset 0x70, size 0x8 + signed long test1addr; // offset 0x78, size 0x4 +}; +class sceGsPrmodecont { + // total size: 0x8 +public: + unsigned long AC : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class sceGsColclamp { + // total size: 0x8 +public: + unsigned long CLAMP : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class tGS_SMODE2 { + // total size: 0x8 +public: + unsigned int INT : 1; // offset 0x0, size 0x4 + unsigned int FFMD : 1; // offset 0x0, size 0x4 + unsigned int DPMS : 2; // offset 0x0, size 0x4 + unsigned int p0 : 28; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class sceGsXyoffset { + // total size: 0x8 +public: + unsigned long OFX : 16; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long OFY : 16; // offset 0x0, size 0x4 + unsigned long pad48 : 16; // offset 0x0, size 0x4 +}; +class ViBuf { + // total size: 0x60 +public: + __int128 * data; // offset 0x0, size 0x4 + __int128 * tag; // offset 0x4, size 0x4 + signed int n; // offset 0x8, size 0x4 + signed int dmaStart; // offset 0xC, size 0x4 + signed int dmaN; // offset 0x10, size 0x4 + signed int readBytes; // offset 0x14, size 0x4 + signed int buffSize; // offset 0x18, size 0x4 + class sceIpuDmaEnv env; // offset 0x1C, size 0x24 + signed int sema; // offset 0x40, size 0x4 + signed int isActive; // offset 0x44, size 0x4 + signed long totalBytes; // offset 0x48, size 0x4 + class TimeStamp * ts; // offset 0x50, size 0x4 + signed int n_ts; // offset 0x54, size 0x4 + signed int count_ts; // offset 0x58, size 0x4 + signed int wt_ts; // offset 0x5C, size 0x4 +}; +class sceMpeg { + // total size: 0x48 +public: + signed int width; // offset 0x0, size 0x4 + signed int height; // offset 0x4, size 0x4 + signed int frameCount; // offset 0x8, size 0x4 + signed long pts; // offset 0x10, size 0x4 + signed long dts; // offset 0x18, size 0x4 + unsigned long flags; // offset 0x20, size 0x4 + signed long pts2nd; // offset 0x28, size 0x4 + signed long dts2nd; // offset 0x30, size 0x4 + unsigned long flags2nd; // offset 0x38, size 0x4 + void * sys; // offset 0x40, size 0x4 +}; +class sceGsRgbaq { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int A : 8; // offset 0x0, size 0x4 + float Q; // offset 0x4, size 0x4 +}; +class tGS_DISPFB2 { + // total size: 0x8 +public: + unsigned int FBP : 9; // offset 0x0, size 0x4 + unsigned int FBW : 6; // offset 0x0, size 0x4 + unsigned int PSM : 5; // offset 0x0, size 0x4 + unsigned int p0 : 12; // offset 0x0, size 0x4 + unsigned int DBX : 11; // offset 0x4, size 0x4 + unsigned int DBY : 11; // offset 0x4, size 0x4 + unsigned int p1 : 10; // offset 0x4, size 0x4 +}; +class SpuStreamBody { + // total size: 0x8 +public: + char id[4]; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 +}; +class sceGsXyz { + // total size: 0x8 +public: + unsigned long X : 16; // offset 0x0, size 0x4 + unsigned long Y : 16; // offset 0x0, size 0x4 + unsigned long Z : 32; // offset 0x0, size 0x4 +}; +class AudioDec { + // total size: 0x5C +public: + signed int state; // offset 0x0, size 0x4 + class SpuStreamHeader sshd; // offset 0x4, size 0x20 + class SpuStreamBody ssbd; // offset 0x24, size 0x8 + signed int hdrCount; // offset 0x2C, size 0x4 + unsigned char * data; // offset 0x30, size 0x4 + signed int put; // offset 0x34, size 0x4 + signed int count; // offset 0x38, size 0x4 + signed int size; // offset 0x3C, size 0x4 + signed int totalBytes; // offset 0x40, size 0x4 + signed int iopBuff; // offset 0x44, size 0x4 + signed int iopBuffSize; // offset 0x48, size 0x4 + signed int iopLastPos; // offset 0x4C, size 0x4 + signed int iopPausePos; // offset 0x50, size 0x4 + signed int totalBytesSent; // offset 0x54, size 0x4 + signed int iopZero; // offset 0x58, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class sceGifTag { + // total size: 0x10 +public: + unsigned long NLOOP : 15; // offset 0x0, size 0x4 + unsigned long EOP : 1; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long id : 14; // offset 0x0, size 0x4 + unsigned long PRE : 1; // offset 0x0, size 0x4 + unsigned long PRIM : 11; // offset 0x0, size 0x4 + unsigned long FLG : 2; // offset 0x0, size 0x4 + unsigned long NREG : 4; // offset 0x0, size 0x4 + unsigned long REGS0 : 4; // offset 0x8, size 0x4 + unsigned long REGS1 : 4; // offset 0x8, size 0x4 + unsigned long REGS2 : 4; // offset 0x8, size 0x4 + unsigned long REGS3 : 4; // offset 0x8, size 0x4 + unsigned long REGS4 : 4; // offset 0x8, size 0x4 + unsigned long REGS5 : 4; // offset 0x8, size 0x4 + unsigned long REGS6 : 4; // offset 0x8, size 0x4 + unsigned long REGS7 : 4; // offset 0x8, size 0x4 + unsigned long REGS8 : 4; // offset 0x8, size 0x4 + unsigned long REGS9 : 4; // offset 0x8, size 0x4 + unsigned long REGS10 : 4; // offset 0x8, size 0x4 + unsigned long REGS11 : 4; // offset 0x8, size 0x4 + unsigned long REGS12 : 4; // offset 0x8, size 0x4 + unsigned long REGS13 : 4; // offset 0x8, size 0x4 + unsigned long REGS14 : 4; // offset 0x8, size 0x4 + unsigned long REGS15 : 4; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BCB80 -> 0x001BCB90 +*/ +// Range: 0x1BCB80 -> 0x1BCB90 +void ErrMessage(char * message /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BCB80 -> 0x1BCB90 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BCB90 -> 0x001BCBA8 +*/ +// Range: 0x1BCB90 -> 0x1BCBA8 +static void defMain() { + // Blocks + /* anonymous block */ { + // Range: 0x1BCB90 -> 0x1BCBA8 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BCBB0 -> 0x001BCE10 +*/ +// Range: 0x1BCBB0 -> 0x1BCE10 +static signed int initAll(char * bsfilename /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BCBB0 -> 0x1BCE10 + class ThreadParam th_param; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BCE10 -> 0x001BCE18 +*/ +// Range: 0x1BCE10 -> 0x1BCE18 +void switchThread() { + // Blocks + /* anonymous block */ { + // Range: 0x1BCE10 -> 0x1BCE18 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BCE20 -> 0x001BD0B8 +*/ +// Range: 0x1BCE20 -> 0x1BD0B8 +static signed int readMpeg(class VideoDec * vd /* r19 */, class ReadBuf * rb /* r18 */, class StrFile * file /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BCE20 -> 0x1BD0B8 + unsigned char * put_ptr; // r29+0x9C + unsigned char * get_ptr; // r29+0x98 + signed int putsize; // r2 + signed int getsize; // r2 + signed int readrest; // r17 + signed int writerest; // r16 + signed int count; // r20 + signed int proceed; // r20 + signed int isStarted; // r21 + signed long t0; // r22 + signed long t1; // r20 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\ps2_mpeg.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD0C0 -> 0x001BD464 +*/ +// Range: 0x1BD0C0 -> 0x1BD464 +signed int ps2_mpeg_play(char * fname /* r20 */, char * work_area /* r19 */, signed int work_area_size /* r18 */, unsigned int buttons /* r17 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD0C0 -> 0x1BD464 + unsigned int i; // r17 + char * ptr; // r3 + char * extra_buf; // r16 + char * bp; // r5 + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/read.c b/dwarf/SB/Core/p2/ps2_mpeg/read.c new file mode 100644 index 000000000..34748d7ec --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/read.c @@ -0,0 +1,181 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\read.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +class AudioDec audioDec; // size: 0x5C, address: 0x53F9F0 +class VideoDec videoDec; // size: 0xB8, address: 0x53F930 +class sceMpegCbDataStr { + // total size: 0x20 +public: + enum sceMpegCbType type; // offset 0x0, size 0x4 + unsigned char * header; // offset 0x4, size 0x4 + unsigned char * data; // offset 0x8, size 0x4 + unsigned int len; // offset 0xC, size 0x4 + signed long pts; // offset 0x10, size 0x4 + signed long dts; // offset 0x18, size 0x4 +}; +class sceMpeg { + // total size: 0x48 +public: + signed int width; // offset 0x0, size 0x4 + signed int height; // offset 0x4, size 0x4 + signed int frameCount; // offset 0x8, size 0x4 + signed long pts; // offset 0x10, size 0x4 + signed long dts; // offset 0x18, size 0x4 + unsigned long flags; // offset 0x20, size 0x4 + signed long pts2nd; // offset 0x28, size 0x4 + signed long dts2nd; // offset 0x30, size 0x4 + unsigned long flags2nd; // offset 0x38, size 0x4 + void * sys; // offset 0x40, size 0x4 +}; +class sceIpuDmaEnv { + // total size: 0x24 +public: + unsigned int d4madr; // offset 0x0, size 0x4 + unsigned int d4tadr; // offset 0x4, size 0x4 + unsigned int d4qwc; // offset 0x8, size 0x4 + unsigned int d4chcr; // offset 0xC, size 0x4 + unsigned int d3madr; // offset 0x10, size 0x4 + unsigned int d3qwc; // offset 0x14, size 0x4 + unsigned int d3chcr; // offset 0x18, size 0x4 + unsigned int ipubp; // offset 0x1C, size 0x4 + unsigned int ipuctrl; // offset 0x20, size 0x4 +}; +class ReadBuf { + // total size: 0x5000C +public: + unsigned char data[327680]; // offset 0x0, size 0x50000 + signed int put; // offset 0x50000, size 0x4 + signed int count; // offset 0x50004, size 0x4 + signed int size; // offset 0x50008, size 0x4 +}; +enum sceMpegCbType { + sceMpegCbError = 0, + sceMpegCbNodata = 1, + sceMpegCbStopDMA = 2, + sceMpegCbRestartDMA = 3, + sceMpegCbBackground = 4, + sceMpegCbTimeStamp = 5, + sceMpegCbStr = 6, +}; +class TimeStamp { + // total size: 0x18 +public: + signed long pts; // offset 0x0, size 0x4 + signed long dts; // offset 0x8, size 0x4 + signed int pos; // offset 0x10, size 0x4 + signed int len; // offset 0x14, size 0x4 +}; +class SpuStreamHeader { + // total size: 0x20 +public: + char id[4]; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int type; // offset 0x8, size 0x4 + signed int rate; // offset 0xC, size 0x4 + signed int ch; // offset 0x10, size 0x4 + signed int interSize; // offset 0x14, size 0x4 + signed int loopStart; // offset 0x18, size 0x4 + signed int loopEnd; // offset 0x1C, size 0x4 +}; +class ViBuf { + // total size: 0x60 +public: + __int128 * data; // offset 0x0, size 0x4 + __int128 * tag; // offset 0x4, size 0x4 + signed int n; // offset 0x8, size 0x4 + signed int dmaStart; // offset 0xC, size 0x4 + signed int dmaN; // offset 0x10, size 0x4 + signed int readBytes; // offset 0x14, size 0x4 + signed int buffSize; // offset 0x18, size 0x4 + class sceIpuDmaEnv env; // offset 0x1C, size 0x24 + signed int sema; // offset 0x40, size 0x4 + signed int isActive; // offset 0x44, size 0x4 + signed long totalBytes; // offset 0x48, size 0x4 + class TimeStamp * ts; // offset 0x50, size 0x4 + signed int n_ts; // offset 0x54, size 0x4 + signed int count_ts; // offset 0x58, size 0x4 + signed int wt_ts; // offset 0x5C, size 0x4 +}; +class VideoDec { + // total size: 0xB8 +public: + class sceMpeg mpeg; // offset 0x0, size 0x48 + class ViBuf vibuf; // offset 0x48, size 0x60 + unsigned int state; // offset 0xA8, size 0x4 + signed int sema; // offset 0xAC, size 0x4 + signed int hid_endimage; // offset 0xB0, size 0x4 + signed int hid_vblank; // offset 0xB4, size 0x4 +}; +class SpuStreamBody { + // total size: 0x8 +public: + char id[4]; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 +}; +class AudioDec { + // total size: 0x5C +public: + signed int state; // offset 0x0, size 0x4 + class SpuStreamHeader sshd; // offset 0x4, size 0x20 + class SpuStreamBody ssbd; // offset 0x24, size 0x8 + signed int hdrCount; // offset 0x2C, size 0x4 + unsigned char * data; // offset 0x30, size 0x4 + signed int put; // offset 0x34, size 0x4 + signed int count; // offset 0x38, size 0x4 + signed int size; // offset 0x3C, size 0x4 + signed int totalBytes; // offset 0x40, size 0x4 + signed int iopBuff; // offset 0x44, size 0x4 + signed int iopBuffSize; // offset 0x48, size 0x4 + signed int iopLastPos; // offset 0x4C, size 0x4 + signed int iopPausePos; // offset 0x50, size 0x4 + signed int totalBytesSent; // offset 0x54, size 0x4 + signed int iopZero; // offset 0x58, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\read.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD470 -> 0x001BD624 +*/ +// Range: 0x1BD470 -> 0x1BD624 +signed int pcmCallback(class sceMpegCbDataStr * str /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD470 -> 0x1BD624 + class ReadBuf * rb; // r21 + unsigned char * ps0; // r20 + signed int s1; // r19 + unsigned char * pd0; // r29+0xAC + unsigned char * pd1; // r29+0xA8 + signed int d0; // r29+0xA4 + signed int d1; // r29+0xA0 + signed int len; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\read.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD630 -> 0x001BD81C +*/ +// Range: 0x1BD630 -> 0x1BD81C +signed int videoCallback(class sceMpegCbDataStr * str /* r29+0xAC */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD630 -> 0x1BD81C + class ReadBuf * rb; // r22 + signed int s0; // r21 + signed int s1; // r20 + unsigned char * pd0; // r29+0xBC + unsigned char * pd1; // r29+0xB8 + unsigned char * pd0Unc; // r19 + unsigned char * pd1Unc; // r23 + signed int d0; // r29+0xB4 + signed int d1; // r29+0xB0 + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/readbuf.c b/dwarf/SB/Core/p2/ps2_mpeg/readbuf.c new file mode 100644 index 000000000..40da1327d --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/readbuf.c @@ -0,0 +1,99 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +class ReadBuf { + // total size: 0x5000C +public: + unsigned char data[327680]; // offset 0x0, size 0x50000 + signed int put; // offset 0x50000, size 0x4 + signed int count; // offset 0x50004, size 0x4 + signed int size; // offset 0x50008, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD820 -> 0x001BD86C +*/ +// Range: 0x1BD820 -> 0x1BD86C +signed int readBufEndGet(class ReadBuf * b /* r2 */, signed int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD820 -> 0x1BD86C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD870 -> 0x001BD8C8 +*/ +// Range: 0x1BD870 -> 0x1BD8C8 +signed int readBufBeginGet(class ReadBuf * b /* r2 */, unsigned char * * ptr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD870 -> 0x1BD8C8 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD8D0 -> 0x001BD954 +*/ +// Range: 0x1BD8D0 -> 0x1BD954 +signed int readBufEndPut(class ReadBuf * b /* r2 */, signed int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD8D0 -> 0x1BD954 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD960 -> 0x001BD9A0 +*/ +// Range: 0x1BD960 -> 0x1BD9A0 +signed int readBufBeginPut(class ReadBuf * b /* r2 */, unsigned char * * ptr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD960 -> 0x1BD9A0 + signed int size; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD9A0 -> 0x001BD9A8 +*/ +// Range: 0x1BD9A0 -> 0x1BD9A8 +void readBufDelete() { + // Blocks + /* anonymous block */ { + // Range: 0x1BD9A0 -> 0x1BD9A8 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\readbuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD9B0 -> 0x001BD9DC +*/ +// Range: 0x1BD9B0 -> 0x1BD9DC +void readBufCreate(class ReadBuf * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD9B0 -> 0x1BD9DC + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/strfile.c b/dwarf/SB/Core/p2/ps2_mpeg/strfile.c new file mode 100644 index 000000000..b6e562c3d --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/strfile.c @@ -0,0 +1,68 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\strfile.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +class StrFile { + // total size: 0xC +public: + signed int file; // offset 0x0, size 0x4 + signed int size; // offset 0x4, size 0x4 + signed int current; // offset 0x8, size 0x4 +}; +enum HISStatus { + HIS_STATUS_INVALID_ID = 0, + HIS_STATUS_DONE = 1, + HIS_STATUS_IN_PROGRESS = 2, + HIS_STATUS_IN_QUEUE = 3, + HIS_STATUS_PARTIAL = 4, + HIS_STATUS_FAILED = 5, + HIS_STATUS_CANCELLED = 6, + HIS_STATUS_DMA_WAIT = 7, +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\strfile.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BD9E0 -> 0x001BDB10 +*/ +// Range: 0x1BD9E0 -> 0x1BDB10 +signed int strFileRead(class StrFile * file /* r20 */, void * buff /* r2 */, signed int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BD9E0 -> 0x1BDB10 + signed int blocksToRead; // r19 + signed int id; // r2 + enum HISStatus status; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\strfile.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BDB10 -> 0x001BDB18 +*/ +// Range: 0x1BDB10 -> 0x1BDB18 +signed int strFileClose() { + // Blocks + /* anonymous block */ { + // Range: 0x1BDB10 -> 0x1BDB18 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\strfile.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BDB20 -> 0x001BDB68 +*/ +// Range: 0x1BDB20 -> 0x1BDB68 +signed int strFileOpen(class StrFile * file /* r16 */, char * filename /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BDB20 -> 0x1BDB68 + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/vibuf.c b/dwarf/SB/Core/p2/ps2_mpeg/vibuf.c new file mode 100644 index 000000000..e2cfdfbef --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/vibuf.c @@ -0,0 +1,280 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +class sceIpuDmaEnv { + // total size: 0x24 +public: + unsigned int d4madr; // offset 0x0, size 0x4 + unsigned int d4tadr; // offset 0x4, size 0x4 + unsigned int d4qwc; // offset 0x8, size 0x4 + unsigned int d4chcr; // offset 0xC, size 0x4 + unsigned int d3madr; // offset 0x10, size 0x4 + unsigned int d3qwc; // offset 0x14, size 0x4 + unsigned int d3chcr; // offset 0x18, size 0x4 + unsigned int ipubp; // offset 0x1C, size 0x4 + unsigned int ipuctrl; // offset 0x20, size 0x4 +}; +class ViBuf { + // total size: 0x60 +public: + __int128 * data; // offset 0x0, size 0x4 + __int128 * tag; // offset 0x4, size 0x4 + signed int n; // offset 0x8, size 0x4 + signed int dmaStart; // offset 0xC, size 0x4 + signed int dmaN; // offset 0x10, size 0x4 + signed int readBytes; // offset 0x14, size 0x4 + signed int buffSize; // offset 0x18, size 0x4 + class sceIpuDmaEnv env; // offset 0x1C, size 0x24 + signed int sema; // offset 0x40, size 0x4 + signed int isActive; // offset 0x44, size 0x4 + signed long totalBytes; // offset 0x48, size 0x4 + class TimeStamp * ts; // offset 0x50, size 0x4 + signed int n_ts; // offset 0x54, size 0x4 + signed int count_ts; // offset 0x58, size 0x4 + signed int wt_ts; // offset 0x5C, size 0x4 +}; +class TimeStamp { + // total size: 0x18 +public: + signed long pts; // offset 0x0, size 0x4 + signed long dts; // offset 0x8, size 0x4 + signed int pos; // offset 0x10, size 0x4 + signed int len; // offset 0x14, size 0x4 +}; +class SemaParam { + // total size: 0x18 +public: + signed int currentCount; // offset 0x0, size 0x4 + signed int maxCount; // offset 0x4, size 0x4 + signed int initCount; // offset 0x8, size 0x4 + signed int numWaitThreads; // offset 0xC, size 0x4 + unsigned int attr; // offset 0x10, size 0x4 + unsigned int option; // offset 0x14, size 0x4 +}; +class QWORD { + // total size: 0x10 +public: + union { // inferred + __int128 q; // offset 0x0, size 0x10 + unsigned long l[2]; // offset 0x0, size 0x8 + unsigned int i[4]; // offset 0x0, size 0x10 + unsigned short s[8]; // offset 0x0, size 0x10 + unsigned char c[16]; // offset 0x0, size 0x10 + }; +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BDB70 -> 0x001BDD24 +*/ +// Range: 0x1BDB70 -> 0x1BDD24 +signed int viBufGetTs(class ViBuf * f /* r18 */, class TimeStamp * ts /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BDB70 -> 0x1BDD24 + unsigned int d4madr; // r20 + unsigned int ipubp; // r19 + signed int bp; // r3 + signed int datasize; // r7 + signed int isEnd; // r16 + signed int tscount; // r6 + signed int i; // r5 + signed int rd; // r10 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BDD30 -> 0x001BDE64 +*/ +// Range: 0x1BDD30 -> 0x1BDE64 +signed int viBufPutTs(class ViBuf * f /* r17 */, class TimeStamp * ts /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BDD30 -> 0x1BDE64 + signed int ret; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BDE70 -> 0x001BDFC0 +*/ +// Range: 0x1BDE70 -> 0x1BDFC0 +signed int viBufModifyPts(class ViBuf * f /* r2 */, class TimeStamp * new_ts /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BDE70 -> 0x1BDFC0 + class TimeStamp * ts; // r13 + signed int rd; // r6 + signed int datasize; // r3 + signed int loop; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BDFC0 -> 0x001BE010 +*/ +// Range: 0x1BDFC0 -> 0x1BE010 +void viBufFlush(class ViBuf * f /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BDFC0 -> 0x1BE010 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE010 -> 0x001BE054 +*/ +// Range: 0x1BE010 -> 0x1BE054 +signed int viBufCount(class ViBuf * f /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE010 -> 0x1BE054 + signed int ret; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE060 -> 0x001BE0EC +*/ +// Range: 0x1BE060 -> 0x1BE0EC +signed int viBufDelete(class ViBuf * f /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE060 -> 0x1BE0EC + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE0F0 -> 0x001BE490 +*/ +// Range: 0x1BE0F0 -> 0x1BE490 +signed int viBufRestartDMA(class ViBuf * f /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE0F0 -> 0x1BE490 + signed int bp; // r20 + unsigned int d4madr_next; // r19 + unsigned int d4qwc_next; // r18 + unsigned int d4tadr_next; // r17 + unsigned int d4chcr_next; // r16 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE490 -> 0x001BE5E0 +*/ +// Range: 0x1BE490 -> 0x1BE5E0 +signed int viBufStopDMA(class ViBuf * f /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE490 -> 0x1BE5E0 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE5E0 -> 0x001BE8E0 +*/ +// Range: 0x1BE5E0 -> 0x1BE8E0 +signed int viBufAddDMA(class ViBuf * f /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE5E0 -> 0x1BE8E0 + signed int i; // r10 + signed int index; // r3 + signed int last; // r5 + unsigned int d4chcr; // r17 + signed int isNewData; // r16 + signed int consume; // r5 + signed int read_start; // r2 + signed int read_n; // r2 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE8E0 -> 0x001BE93C +*/ +// Range: 0x1BE8E0 -> 0x1BE93C +void viBufEndPut(class ViBuf * f /* r17 */, signed int size /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE8E0 -> 0x1BE93C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BE940 -> 0x001BEA38 +*/ +// Range: 0x1BE940 -> 0x1BEA38 +void viBufBeginPut(class ViBuf * f /* r20 */, unsigned char * * ptr0 /* r19 */, signed int * len0 /* r18 */, unsigned char * * ptr1 /* r17 */, signed int * len1 /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BE940 -> 0x1BEA38 + signed int es; // r5 + signed int en; // r3 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BEA40 -> 0x001BEBD4 +*/ +// Range: 0x1BEA40 -> 0x1BEBD4 +signed int viBufReset(class ViBuf * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BEA40 -> 0x1BEBD4 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vibuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BEBE0 -> 0x001BEC54 +*/ +// Range: 0x1BEBE0 -> 0x1BEC54 +signed int viBufCreate(class ViBuf * f /* r16 */, __int128 * data /* r2 */, __int128 * tag /* r2 */, signed int size /* r2 */, class TimeStamp * ts /* r2 */, signed int n_ts /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BEBE0 -> 0x1BEC54 + class SemaParam param; // r29+0x20 + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/videodec.c b/dwarf/SB/Core/p2/ps2_mpeg/videodec.c new file mode 100644 index 000000000..620929d7c --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/videodec.c @@ -0,0 +1,393 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +class VideoDec videoDec; // size: 0xB8, address: 0x53F930 +class VoBuf voBuf; // size: 0x14, address: 0x53FA50 +signed int mpegTS(class sceMpeg *, class sceMpegCbDataTimeStamp *, void *); // size: 0x0, address: 0x1BEC60 +signed int mpegRestartDMA(class sceMpeg *, class sceMpegCbData *, void *); // size: 0x0, address: 0x1BECB0 +signed int mpegStopDMA(class sceMpeg *, class sceMpegCbData *, void *); // size: 0x0, address: 0x1BECE0 +signed int mpegNodata(class sceMpeg *, class sceMpegCbData *, void *); // size: 0x0, address: 0x1BED10 +signed int mpegError(class sceMpeg *, class sceMpegCbDataError *, void *); // size: 0x0, address: 0x1BED40 +class sceMpeg { + // total size: 0x48 +public: + signed int width; // offset 0x0, size 0x4 + signed int height; // offset 0x4, size 0x4 + signed int frameCount; // offset 0x8, size 0x4 + signed long pts; // offset 0x10, size 0x4 + signed long dts; // offset 0x18, size 0x4 + unsigned long flags; // offset 0x20, size 0x4 + signed long pts2nd; // offset 0x28, size 0x4 + signed long dts2nd; // offset 0x30, size 0x4 + unsigned long flags2nd; // offset 0x38, size 0x4 + void * sys; // offset 0x40, size 0x4 +}; +class VideoDec { + // total size: 0xB8 +public: + class sceMpeg mpeg; // offset 0x0, size 0x48 + class ViBuf vibuf; // offset 0x48, size 0x60 + unsigned int state; // offset 0xA8, size 0x4 + signed int sema; // offset 0xAC, size 0x4 + signed int hid_endimage; // offset 0xB0, size 0x4 + signed int hid_vblank; // offset 0xB4, size 0x4 +}; +class sceMpegCbData { + // total size: 0x20 +public: + union { // inferred + enum sceMpegCbType type; // offset 0x0, size 0x4 + class sceMpegCbDataError error; // offset 0x0, size 0x8 + class sceMpegCbDataTimeStamp ts; // offset 0x0, size 0x18 + class sceMpegCbDataStr str; // offset 0x0, size 0x20 + }; +}; +class TimeStamp { + // total size: 0x18 +public: + signed long pts; // offset 0x0, size 0x4 + signed long dts; // offset 0x8, size 0x4 + signed int pos; // offset 0x10, size 0x4 + signed int len; // offset 0x14, size 0x4 +}; +class VoData { + // total size: 0x12C000 +public: + unsigned char v[1228800]; // offset 0x0, size 0x12C000 +}; +class sceMpegCbDataTimeStamp { + // total size: 0x18 +public: + enum sceMpegCbType type; // offset 0x0, size 0x4 + signed long pts; // offset 0x8, size 0x4 + signed long dts; // offset 0x10, size 0x4 +}; +class VoTag { + // total size: 0x39240 +public: + signed int status; // offset 0x0, size 0x4 + signed int dummy[15]; // offset 0x4, size 0x3C + unsigned int v[2][29248]; // offset 0x40, size 0x39200 +}; +class sceIpuDmaEnv { + // total size: 0x24 +public: + unsigned int d4madr; // offset 0x0, size 0x4 + unsigned int d4tadr; // offset 0x4, size 0x4 + unsigned int d4qwc; // offset 0x8, size 0x4 + unsigned int d4chcr; // offset 0xC, size 0x4 + unsigned int d3madr; // offset 0x10, size 0x4 + unsigned int d3qwc; // offset 0x14, size 0x4 + unsigned int d3chcr; // offset 0x18, size 0x4 + unsigned int ipubp; // offset 0x1C, size 0x4 + unsigned int ipuctrl; // offset 0x20, size 0x4 +}; +enum sceMpegCbType { + sceMpegCbError = 0, + sceMpegCbNodata = 1, + sceMpegCbStopDMA = 2, + sceMpegCbRestartDMA = 3, + sceMpegCbBackground = 4, + sceMpegCbTimeStamp = 5, + sceMpegCbStr = 6, +}; +class VoBuf { + // total size: 0x14 +public: + class VoData * data; // offset 0x0, size 0x4 + class VoTag * tag; // offset 0x4, size 0x4 + signed int write; // offset 0x8, size 0x4 + signed int count; // offset 0xC, size 0x4 + signed int size; // offset 0x10, size 0x4 +}; +class sceMpegCbDataError { + // total size: 0x8 +public: + enum sceMpegCbType type; // offset 0x0, size 0x4 + char * errMessage; // offset 0x4, size 0x4 +}; +class sceMpegCbDataStr { + // total size: 0x20 +public: + enum sceMpegCbType type; // offset 0x0, size 0x4 + unsigned char * header; // offset 0x4, size 0x4 + unsigned char * data; // offset 0x8, size 0x4 + unsigned int len; // offset 0xC, size 0x4 + signed long pts; // offset 0x10, size 0x4 + signed long dts; // offset 0x18, size 0x4 +}; +class ViBuf { + // total size: 0x60 +public: + __int128 * data; // offset 0x0, size 0x4 + __int128 * tag; // offset 0x4, size 0x4 + signed int n; // offset 0x8, size 0x4 + signed int dmaStart; // offset 0xC, size 0x4 + signed int dmaN; // offset 0x10, size 0x4 + signed int readBytes; // offset 0x14, size 0x4 + signed int buffSize; // offset 0x18, size 0x4 + class sceIpuDmaEnv env; // offset 0x1C, size 0x24 + signed int sema; // offset 0x40, size 0x4 + signed int isActive; // offset 0x44, size 0x4 + signed long totalBytes; // offset 0x48, size 0x4 + class TimeStamp * ts; // offset 0x50, size 0x4 + signed int n_ts; // offset 0x54, size 0x4 + signed int count_ts; // offset 0x58, size 0x4 + signed int wt_ts; // offset 0x5C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BEC60 -> 0x001BECA4 +*/ +// Range: 0x1BEC60 -> 0x1BECA4 +signed int mpegTS(class sceMpegCbDataTimeStamp * cbts /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BEC60 -> 0x1BECA4 + class TimeStamp ts; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BECB0 -> 0x001BECD4 +*/ +// Range: 0x1BECB0 -> 0x1BECD4 +signed int mpegRestartDMA() { + // Blocks + /* anonymous block */ { + // Range: 0x1BECB0 -> 0x1BECD4 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BECE0 -> 0x001BED04 +*/ +// Range: 0x1BECE0 -> 0x1BED04 +signed int mpegStopDMA() { + // Blocks + /* anonymous block */ { + // Range: 0x1BECE0 -> 0x1BED04 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BED10 -> 0x001BED3C +*/ +// Range: 0x1BED10 -> 0x1BED3C +signed int mpegNodata() { + // Blocks + /* anonymous block */ { + // Range: 0x1BED10 -> 0x1BED3C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BED40 -> 0x001BED68 +*/ +// Range: 0x1BED40 -> 0x1BED68 +signed int mpegError(class sceMpegCbDataError * cberror /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BED40 -> 0x1BED68 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BED70 -> 0x001BEF3C +*/ +// Range: 0x1BED70 -> 0x1BEF3C +signed int decBs0(class VideoDec * vd /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BED70 -> 0x1BEF3C + class VoData * voData; // r2 + signed int ret; // r2 + signed int status; // r21 + signed int i; // r20 + signed int image_w; // r19 + signed int image_h; // r18 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BEF40 -> 0x001BEFA0 +*/ +// Range: 0x1BEF40 -> 0x1BEFA0 +void videoDecMain(class VideoDec * vd /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BEF40 -> 0x1BEFA0 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BEFA0 -> 0x001BEFF8 +*/ +// Range: 0x1BEFA0 -> 0x1BEFF8 +signed int videoDecIsFlushed(class VideoDec * vd /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BEFA0 -> 0x1BEFF8 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF000 -> 0x001BF1AC +*/ +// Range: 0x1BF000 -> 0x1BF1AC +signed int videoDecFlush(class VideoDec * vd /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF000 -> 0x1BF1AC + unsigned char * pd0; // r29+0x6C + unsigned char * pd1; // r29+0x68 + unsigned char * pd0Unc; // r18 + unsigned char * pd1Unc; // r17 + unsigned char seq_end_code[4]; // r29+0x64 + signed int d0; // r29+0x60 + signed int d1; // r29+0x5C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF1B0 -> 0x001BF1EC +*/ +// Range: 0x1BF1B0 -> 0x1BF1EC +signed int videoDecPutTs(class VideoDec * vd /* r2 */, signed long pts_val /* r2 */, signed long dts_val /* r2 */, unsigned char * start /* r2 */, signed int len /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF1B0 -> 0x1BF1EC + class TimeStamp ts; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF1F0 -> 0x001BF1F8 +*/ +// Range: 0x1BF1F0 -> 0x1BF1F8 +unsigned int videoDecGetState(class VideoDec * vd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF1F0 -> 0x1BF1F8 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF200 -> 0x001BF20C +*/ +// Range: 0x1BF200 -> 0x1BF20C +void videoDecAbort(class VideoDec * vd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF200 -> 0x1BF20C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF210 -> 0x001BF244 +*/ +// Range: 0x1BF210 -> 0x1BF244 +signed int videoDecDelete(class VideoDec * vd /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF210 -> 0x1BF244 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF250 -> 0x001BF258 +*/ +// Range: 0x1BF250 -> 0x1BF258 +void videoDecEndPut(class VideoDec * vd /* r2 */, signed int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF250 -> 0x1BF258 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF260 -> 0x001BF268 +*/ +// Range: 0x1BF260 -> 0x1BF268 +void videoDecBeginPut(class VideoDec * vd /* r2 */, unsigned char * * ptr0 /* r2 */, signed int * len0 /* r2 */, unsigned char * * ptr1 /* r2 */, signed int * len1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF260 -> 0x1BF268 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF270 -> 0x001BF290 +*/ +// Range: 0x1BF270 -> 0x1BF290 +signed int videoDecSetStream(class VideoDec * vd /* r2 */, signed int strType /* r2 */, signed int ch /* r2 */, signed int (* cb)(class sceMpeg *, class sceMpegCbData *, void *) /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF270 -> 0x1BF290 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\videodec.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF290 -> 0x001BF38C +*/ +// Range: 0x1BF290 -> 0x1BF38C +signed int videoDecCreate(class VideoDec * vd /* r21 */, unsigned char * mpegWork /* r2 */, signed int mpegWorkSize /* r2 */, __int128 * data /* r20 */, __int128 * tag /* r19 */, signed int tagSize /* r18 */, class TimeStamp * pts /* r17 */, signed int n_pts /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF290 -> 0x1BF38C + } +} + diff --git a/dwarf/SB/Core/p2/ps2_mpeg/vobuf.c b/dwarf/SB/Core/p2/ps2_mpeg/vobuf.c new file mode 100644 index 000000000..a30f37ea3 --- /dev/null +++ b/dwarf/SB/Core/p2/ps2_mpeg/vobuf.c @@ -0,0 +1,140 @@ +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ +*/ +class VoBuf { + // total size: 0x14 +public: + class VoData * data; // offset 0x0, size 0x4 + class VoTag * tag; // offset 0x4, size 0x4 + signed int write; // offset 0x8, size 0x4 + signed int count; // offset 0xC, size 0x4 + signed int size; // offset 0x10, size 0x4 +}; +class VoTag { + // total size: 0x39240 +public: + signed int status; // offset 0x0, size 0x4 + signed int dummy[15]; // offset 0x4, size 0x3C + unsigned int v[2][29248]; // offset 0x40, size 0x39200 +}; +class VoData { + // total size: 0x12C000 +public: + unsigned char v[1228800]; // offset 0x0, size 0x12C000 +}; + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF390 -> 0x001BF3B0 +*/ +// Range: 0x1BF390 -> 0x1BF3B0 +void voBufDecCount(class VoBuf * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF390 -> 0x1BF3B0 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF3B0 -> 0x001BF428 +*/ +// Range: 0x1BF3B0 -> 0x1BF428 +class VoTag * voBufGetTag(class VoBuf * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF3B0 -> 0x1BF428 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF430 -> 0x001BF478 +*/ +// Range: 0x1BF430 -> 0x1BF478 +class VoData * voBufGetData(class VoBuf * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF430 -> 0x1BF478 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF480 -> 0x001BF50C +*/ +// Range: 0x1BF480 -> 0x1BF50C +void voBufIncCount(class VoBuf * f /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF480 -> 0x1BF50C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF510 -> 0x001BF524 +*/ +// Range: 0x1BF510 -> 0x1BF524 +signed int voBufIsFull(class VoBuf * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF510 -> 0x1BF524 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF530 -> 0x001BF53C +*/ +// Range: 0x1BF530 -> 0x1BF53C +void voBufReset(class VoBuf * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF530 -> 0x1BF53C + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF540 -> 0x001BF548 +*/ +// Range: 0x1BF540 -> 0x1BF548 +void voBufDelete() { + // Blocks + /* anonymous block */ { + // Range: 0x1BF540 -> 0x1BF548 + } +} + +/* + Compile unit: C:\SB\Core\p2\ps2_mpeg\vobuf.c + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF550 -> 0x001BF690 +*/ +// Range: 0x1BF550 -> 0x1BF690 +void voBufCreate(class VoBuf * f /* r2 */, class VoData * data /* r2 */, class VoTag * tag /* r2 */, signed int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF550 -> 0x1BF690 + signed int i; // r6 + } +} + diff --git a/dwarf/SB/Core/x/containers.h b/dwarf/SB/Core/x/containers.h new file mode 100644 index 000000000..ede330fb5 --- /dev/null +++ b/dwarf/SB/Core/x/containers.h @@ -0,0 +1,175 @@ +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4EA0 -> 0x001E5050 +*/ +// Range: 0x1E4EA0 -> 0x1E5050 +void clear(class tier_queue_allocator * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E4EA0 -> 0x1E5050 + unsigned int imask; // r15 + unsigned int i; // r14 + unsigned int end; // r13 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E5050 -> 0x001E5080 +*/ +// Range: 0x1E5050 -> 0x1E5080 +unsigned int log2_ceil(unsigned int v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E5050 -> 0x1E5080 + unsigned int power; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6700 -> 0x001E6760 +*/ +// Range: 0x1E6700 -> 0x1E6760 +void free_block(class tier_queue_allocator * this /* r2 */, unsigned char index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6700 -> 0x1E6760 + class block_data & block; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6760 -> 0x001E6770 +*/ +// Range: 0x1E6760 -> 0x1E6770 +unsigned int get_block(class tier_queue * this /* r2 */, unsigned int i /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6760 -> 0x1E6770 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6770 -> 0x001E6780 +*/ +// Range: 0x1E6770 -> 0x1E6780 +unsigned int mod_block_size(class tier_queue_allocator * this /* r2 */, unsigned int i /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6770 -> 0x1E6780 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6780 -> 0x001E678C +*/ +// Range: 0x1E6780 -> 0x1E678C +unsigned int wrap_index(class tier_queue * this /* r2 */, unsigned int i /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6780 -> 0x1E678C + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6790 -> 0x001E6844 +*/ +// Range: 0x1E6790 -> 0x1E6844 +void clear(class tier_queue * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6790 -> 0x1E6844 + unsigned int i; // r5 + unsigned int end; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8250 -> 0x002A8264 +*/ +// Range: 0x2A8250 -> 0x2A8264 +unsigned char __ne(class iterator * this /* r2 */, class iterator & c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8250 -> 0x2A8264 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8270 -> 0x002A8288 +*/ +// Range: 0x2A8270 -> 0x2A8288 +class iterator & __pp(class iterator * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8270 -> 0x2A8288 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8290 -> 0x002A82A8 +*/ +// Range: 0x2A8290 -> 0x2A82A8 +class missle_record_data * __rf(class iterator * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8290 -> 0x2A82A8 + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A82B0 -> 0x002A82DC +*/ +// Range: 0x2A82B0 -> 0x2A82DC +class iterator end(class fixed_queue * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A82B0 -> 0x2A82DC + } +} + +/* + Compile unit: C:\SB\Core\x\containers.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A82E0 -> 0x002A830C +*/ +// Range: 0x2A82E0 -> 0x2A830C +class iterator begin(class fixed_queue * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A82E0 -> 0x2A830C + } +} + diff --git a/dwarf/SB/Core/x/iCamera.cpp b/dwarf/SB/Core/x/iCamera.cpp new file mode 100644 index 000000000..45accf601 --- /dev/null +++ b/dwarf/SB/Core/x/iCamera.cpp @@ -0,0 +1,1979 @@ +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +float sCameraNearClip; // size: 0x4, address: 0x50F108 +float sCameraFarClip; // size: 0x4, address: 0x50F10C +class RwCamera * globalCamera; // size: 0x4, address: 0x5101A0 +static class RwCamera * sMainGameCamera; // size: 0x4, address: 0x5101B0 +float xCameraLastFov; // size: 0x4, address: 0x0 +static class RwSky2DVertex Vertex[4]; // size: 0x100, address: 0x0 +static unsigned short Index[6]; // size: 0xC, address: 0x0 +static class RwRaster * sBBraster; // size: 0x4, address: 0x0 +static class RwCamera * sBBcamera; // size: 0x4, address: 0x0 +static unsigned int setup; // size: 0x4, address: 0x0 +float xfactor; // size: 0x4, address: 0x0 +float yfactor; // size: 0x4, address: 0x0 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +signed int skyCameraExt; // size: 0x4, address: 0x50FD2C +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +class sceGsDBuffDc _rwDMAFlipData; // size: 0x330, address: 0x5C0220 +signed int skyFrameBit; // size: 0x4, address: 0x50EBA4 +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class sceGifTag { + // total size: 0x10 +public: + unsigned long NLOOP : 15; // offset 0x0, size 0x4 + unsigned long EOP : 1; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long id : 14; // offset 0x0, size 0x4 + unsigned long PRE : 1; // offset 0x0, size 0x4 + unsigned long PRIM : 11; // offset 0x0, size 0x4 + unsigned long FLG : 2; // offset 0x0, size 0x4 + unsigned long NREG : 4; // offset 0x0, size 0x4 + unsigned long REGS0 : 4; // offset 0x8, size 0x4 + unsigned long REGS1 : 4; // offset 0x8, size 0x4 + unsigned long REGS2 : 4; // offset 0x8, size 0x4 + unsigned long REGS3 : 4; // offset 0x8, size 0x4 + unsigned long REGS4 : 4; // offset 0x8, size 0x4 + unsigned long REGS5 : 4; // offset 0x8, size 0x4 + unsigned long REGS6 : 4; // offset 0x8, size 0x4 + unsigned long REGS7 : 4; // offset 0x8, size 0x4 + unsigned long REGS8 : 4; // offset 0x8, size 0x4 + unsigned long REGS9 : 4; // offset 0x8, size 0x4 + unsigned long REGS10 : 4; // offset 0x8, size 0x4 + unsigned long REGS11 : 4; // offset 0x8, size 0x4 + unsigned long REGS12 : 4; // offset 0x8, size 0x4 + unsigned long REGS13 : 4; // offset 0x8, size 0x4 + unsigned long REGS14 : 4; // offset 0x8, size 0x4 + unsigned long REGS15 : 4; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class sceGsScissor { + // total size: 0x8 +public: + unsigned long SCAX0 : 11; // offset 0x0, size 0x4 + unsigned long pad11 : 5; // offset 0x0, size 0x4 + unsigned long SCAX1 : 11; // offset 0x0, size 0x4 + unsigned long pad27 : 5; // offset 0x0, size 0x4 + unsigned long SCAY0 : 11; // offset 0x0, size 0x4 + unsigned long pad43 : 5; // offset 0x0, size 0x4 + unsigned long SCAY1 : 11; // offset 0x0, size 0x4 + unsigned long pad59 : 5; // offset 0x0, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class sceGsDispEnv { + // total size: 0x28 +public: + class tGS_PMODE pmode; // offset 0x0, size 0x8 + class tGS_SMODE2 smode2; // offset 0x8, size 0x8 + class tGS_DISPFB2 dispfb; // offset 0x10, size 0x8 + class tGS_DISPLAY2 display; // offset 0x18, size 0x8 + class tGS_BGCOLOR bgcolor; // offset 0x20, size 0x8 +}; +class tGS_SMODE2 { + // total size: 0x8 +public: + unsigned int INT : 1; // offset 0x0, size 0x4 + unsigned int FFMD : 1; // offset 0x0, size 0x4 + unsigned int DPMS : 2; // offset 0x0, size 0x4 + unsigned int p0 : 28; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class sceGsPrim { + // total size: 0x8 +public: + unsigned long PRIM : 3; // offset 0x0, size 0x4 + unsigned long IIP : 1; // offset 0x0, size 0x4 + unsigned long TME : 1; // offset 0x0, size 0x4 + unsigned long FGE : 1; // offset 0x0, size 0x4 + unsigned long ABE : 1; // offset 0x0, size 0x4 + unsigned long AA1 : 1; // offset 0x0, size 0x4 + unsigned long FST : 1; // offset 0x0, size 0x4 + unsigned long CTXT : 1; // offset 0x0, size 0x4 + unsigned long FIX : 1; // offset 0x0, size 0x4 + unsigned long pad11 : 53; // offset 0x0, size 0x4 +}; +class sceGsFrame { + // total size: 0x8 +public: + unsigned long FBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 7; // offset 0x0, size 0x4 + unsigned long FBW : 6; // offset 0x0, size 0x4 + unsigned long pad22 : 2; // offset 0x0, size 0x4 + unsigned long PSM : 6; // offset 0x0, size 0x4 + unsigned long pad30 : 2; // offset 0x0, size 0x4 + unsigned long FBMSK : 32; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class sceGsZbuf { + // total size: 0x8 +public: + unsigned long ZBP : 9; // offset 0x0, size 0x4 + unsigned long pad09 : 15; // offset 0x0, size 0x4 + unsigned long PSM : 4; // offset 0x0, size 0x4 + unsigned long pad28 : 4; // offset 0x0, size 0x4 + unsigned long ZMSK : 1; // offset 0x0, size 0x4 + unsigned long pad33 : 31; // offset 0x0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class tGS_DISPFB2 { + // total size: 0x8 +public: + unsigned int FBP : 9; // offset 0x0, size 0x4 + unsigned int FBW : 6; // offset 0x0, size 0x4 + unsigned int PSM : 5; // offset 0x0, size 0x4 + unsigned int p0 : 12; // offset 0x0, size 0x4 + unsigned int DBX : 11; // offset 0x4, size 0x4 + unsigned int DBY : 11; // offset 0x4, size 0x4 + unsigned int p1 : 10; // offset 0x4, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class sceGsDrawEnv1 { + // total size: 0x80 +public: + class sceGsFrame frame1; // offset 0x0, size 0x8 + unsigned long frame1addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf1; // offset 0x10, size 0x8 + signed long zbuf1addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset1; // offset 0x20, size 0x8 + signed long xyoffset1addr; // offset 0x28, size 0x4 + class sceGsScissor scissor1; // offset 0x30, size 0x8 + signed long scissor1addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test1; // offset 0x70, size 0x8 + signed long test1addr; // offset 0x78, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEnv { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class sceGsDBuffDc { + // total size: 0x330 +public: + class sceGsDispEnv disp[2]; // offset 0x0, size 0x50 + class sceGifTag giftag0; // offset 0x50, size 0x10 + class sceGsDrawEnv1 draw01; // offset 0x60, size 0x80 + class sceGsDrawEnv2 draw02; // offset 0xE0, size 0x80 + class sceGsClear clear0; // offset 0x160, size 0x60 + class sceGifTag giftag1; // offset 0x1C0, size 0x10 + class sceGsDrawEnv1 draw11; // offset 0x1D0, size 0x80 + class sceGsDrawEnv2 draw12; // offset 0x250, size 0x80 + class sceGsClear clear1; // offset 0x2D0, size 0x60 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class sceGsDthe { + // total size: 0x8 +public: + unsigned long DTHE : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class sceGsTest { + // total size: 0x8 +public: + unsigned long ATE : 1; // offset 0x0, size 0x4 + unsigned long ATST : 3; // offset 0x0, size 0x4 + unsigned long AREF : 8; // offset 0x0, size 0x4 + unsigned long AFAIL : 2; // offset 0x0, size 0x4 + unsigned long DATE : 1; // offset 0x0, size 0x4 + unsigned long DATM : 1; // offset 0x0, size 0x4 + unsigned long ZTE : 1; // offset 0x0, size 0x4 + unsigned long ZTST : 2; // offset 0x0, size 0x4 + unsigned long pad19 : 45; // offset 0x0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class tGS_DISPLAY2 { + // total size: 0x8 +public: + unsigned int DX : 12; // offset 0x0, size 0x4 + unsigned int DY : 11; // offset 0x0, size 0x4 + unsigned int MAGH : 4; // offset 0x0, size 0x4 + unsigned int MAGV : 2; // offset 0x0, size 0x4 + unsigned int p0 : 3; // offset 0x0, size 0x4 + unsigned int DW : 12; // offset 0x4, size 0x4 + unsigned int DH : 11; // offset 0x4, size 0x4 + unsigned int p1 : 9; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class sceGsDrawEnv2 { + // total size: 0x80 +public: + class sceGsFrame frame2; // offset 0x0, size 0x8 + unsigned long frame2addr; // offset 0x8, size 0x4 + class sceGsZbuf zbuf2; // offset 0x10, size 0x8 + signed long zbuf2addr; // offset 0x18, size 0x4 + class sceGsXyoffset xyoffset2; // offset 0x20, size 0x8 + signed long xyoffset2addr; // offset 0x28, size 0x4 + class sceGsScissor scissor2; // offset 0x30, size 0x8 + signed long scissor2addr; // offset 0x38, size 0x4 + class sceGsPrmodecont prmodecont; // offset 0x40, size 0x8 + signed long prmodecontaddr; // offset 0x48, size 0x4 + class sceGsColclamp colclamp; // offset 0x50, size 0x8 + signed long colclampaddr; // offset 0x58, size 0x4 + class sceGsDthe dthe; // offset 0x60, size 0x8 + signed long dtheaddr; // offset 0x68, size 0x4 + class sceGsTest test2; // offset 0x70, size 0x8 + signed long test2addr; // offset 0x78, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class sceGsPrmodecont { + // total size: 0x8 +public: + unsigned long AC : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class sceGsColclamp { + // total size: 0x8 +public: + unsigned long CLAMP : 1; // offset 0x0, size 0x4 + unsigned long pad01 : 63; // offset 0x0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class sceGsXyoffset { + // total size: 0x8 +public: + unsigned long OFX : 16; // offset 0x0, size 0x4 + unsigned long pad16 : 16; // offset 0x0, size 0x4 + unsigned long OFY : 16; // offset 0x0, size 0x4 + unsigned long pad48 : 16; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class sceGsRgbaq { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int A : 8; // offset 0x0, size 0x4 + float Q; // offset 0x4, size 0x4 +}; +class tGS_PMODE { + // total size: 0x8 +public: + unsigned int EN1 : 1; // offset 0x0, size 0x4 + unsigned int EN2 : 1; // offset 0x0, size 0x4 + unsigned int CRTMD : 3; // offset 0x0, size 0x4 + unsigned int MMOD : 1; // offset 0x0, size 0x4 + unsigned int AMOD : 1; // offset 0x0, size 0x4 + unsigned int SLBG : 1; // offset 0x0, size 0x4 + unsigned int ALP : 8; // offset 0x0, size 0x4 + unsigned int p0 : 16; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class sceGsXyz { + // total size: 0x8 +public: + unsigned long X : 16; // offset 0x0, size 0x4 + unsigned long Y : 16; // offset 0x0, size 0x4 + unsigned long Z : 32; // offset 0x0, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class sceGsClear { + // total size: 0x60 +public: + class sceGsTest testa; // offset 0x0, size 0x8 + signed long testaaddr; // offset 0x8, size 0x4 + class sceGsPrim prim; // offset 0x10, size 0x8 + signed long primaddr; // offset 0x18, size 0x4 + class sceGsRgbaq rgbaq; // offset 0x20, size 0x8 + signed long rgbaqaddr; // offset 0x28, size 0x4 + class sceGsXyz xyz2a; // offset 0x30, size 0x8 + signed long xyz2aaddr; // offset 0x38, size 0x4 + class sceGsXyz xyz2b; // offset 0x40, size 0x8 + signed long xyz2baddr; // offset 0x48, size 0x4 + class sceGsTest testb; // offset 0x50, size 0x8 + signed long testbaddr; // offset 0x58, size 0x4 +}; +class tGS_BGCOLOR { + // total size: 0x8 +public: + unsigned int R : 8; // offset 0x0, size 0x4 + unsigned int G : 8; // offset 0x0, size 0x4 + unsigned int B : 8; // offset 0x0, size 0x4 + unsigned int p0 : 8; // offset 0x0, size 0x4 + unsigned int p1; // offset 0x4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035C2F0 -> 0x0035C3C8 +*/ +// Range: 0x35C2F0 -> 0x35C3C8 +void iCameraSetFogRenderStates() { + // Blocks + /* anonymous block */ { + // Range: 0x35C2F0 -> 0x35C3C8 + class RwCamera * pCamera; // r17 + class iFogParams * pFogParams; // r16 + unsigned int bite_me; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035C3D0 -> 0x0035CA58 +*/ +// Range: 0x35C3D0 -> 0x35CA58 +void iCameraUpdateFog(signed long t /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35C3D0 -> 0x35CA58 + class iFogParams * fa; // r18 + class iFogParams * fb; // r17 + float a; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CA60 -> 0x0035CCD0 +*/ +// Range: 0x35CA60 -> 0x35CCD0 +void iCameraSetFogParams(class iFogParams * fp /* r2 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CA60 -> 0x35CCD0 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CCD0 -> 0x0035CD10 +*/ +// Range: 0x35CCD0 -> 0x35CD10 +void iCameraSetNearFarClip(float nearPlane /* r29 */, float farPlane /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CCD0 -> 0x35CD10 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CD10 -> 0x0035CDAC +*/ +// Range: 0x35CD10 -> 0x35CDAC +void iCamGetViewMatrix(class RwCamera * camera /* r2 */, class xMat4x3 * view_matrix /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CD10 -> 0x35CDAC + class RwMatrixTag * rw_view; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CDB0 -> 0x0035CDEC +*/ +// Range: 0x35CDB0 -> 0x35CDEC +void iCameraAssignEnv(class RwCamera * camera /* r2 */, class iEnv * env_geom /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CDB0 -> 0x35CDEC + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CDF0 -> 0x0035CE6C +*/ +// Range: 0x35CDF0 -> 0x35CE6C +void iCameraSetFOV(class RwCamera * cam /* r16 */, float fov /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CDF0 -> 0x35CE6C + class RwV2d vw; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CE70 -> 0x0035CED0 +*/ +// Range: 0x35CE70 -> 0x35CED0 +void iCameraUpdatePos(class RwCamera * cam /* r2 */, class xMat4x3 * pos /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CE70 -> 0x35CED0 + class RwFrame * f; // r16 + class RwMatrixTag * m; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035CED0 -> 0x0035D05C +*/ +// Range: 0x35CED0 -> 0x35D05C +void iCameraFrustumPlanes(class RwCamera * cam /* r2 */, class xVec4 * frustplane /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35CED0 -> 0x35D05C + class RwFrustumPlane * rwPlane; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D060 -> 0x0035D06C +*/ +// Range: 0x35D060 -> 0x35D06C +void iCameraShowRaster(class RwCamera * cam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D060 -> 0x35D06C + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D070 -> 0x0035D09C +*/ +// Range: 0x35D070 -> 0x35D09C +void iCameraEnd(class RwCamera * cam /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D070 -> 0x35D09C + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D0A0 -> 0x0035D114 +*/ +// Range: 0x35D0A0 -> 0x35D114 +void iCameraBegin(class RwCamera * cam /* r16 */, signed int clear /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D0A0 -> 0x35D114 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D120 -> 0x0035D1E4 +*/ +// Range: 0x35D120 -> 0x35D1E4 +void iCameraDestroy(class RwCamera * camera /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D120 -> 0x35D1E4 + class RpWorld * pWorld; // r2 + class RwRaster * raster; // r2 + class RwFrame * frame; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\iCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D1F0 -> 0x0035D2C0 +*/ +// Range: 0x35D1F0 -> 0x35D2C0 +class RwCamera * iCameraCreate(signed int width /* r19 */, signed int height /* r18 */, signed int mainGameCamera /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D1F0 -> 0x35D2C0 + class RwV2d vw; // r29+0x58 + class RwCamera * camera; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xAnim.cpp b/dwarf/SB/Core/x/xAnim.cpp new file mode 100644 index 000000000..38152400a --- /dev/null +++ b/dwarf/SB/Core/x/xAnim.cpp @@ -0,0 +1,1413 @@ +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class xMemPool sxAnimTempTranPool; // size: 0x1C, address: 0x5BAEC0 +unsigned int gxAnimUseGrowAlloc; // size: 0x4, address: 0x50FB9C +void xAnimPoolCB(class xMemPool *, void *); // size: 0x0, address: 0x210BE0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +class _reent * _impure_ptr; // size: 0x4, address: 0x404F48 +char _ctype_[]; // size: 0x0, address: 0x4EBA38 +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class _reent { + // total size: 0x2F0 +public: + signed int _errno; // offset 0x0, size 0x4 + class __sFILE * _stdin; // offset 0x4, size 0x4 + class __sFILE * _stdout; // offset 0x8, size 0x4 + class __sFILE * _stderr; // offset 0xC, size 0x4 + signed int _inc; // offset 0x10, size 0x4 + char _emergency[25]; // offset 0x14, size 0x19 + signed int _current_category; // offset 0x30, size 0x4 + char * _current_locale; // offset 0x34, size 0x4 + signed int __sdidinit; // offset 0x38, size 0x4 + void (* __cleanup)(class _reent *); // offset 0x3C, size 0x4 + class _Bigint * _result; // offset 0x40, size 0x4 + signed int _result_k; // offset 0x44, size 0x4 + class _Bigint * _p5s; // offset 0x48, size 0x4 + class _Bigint * * _freelist; // offset 0x4C, size 0x4 + signed int _cvtlen; // offset 0x50, size 0x4 + char * _cvtbuf; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0xF0 + public: + union { // inferred + class /* @class */ { + // total size: 0x58 + public: + unsigned int _unused_rand; // offset 0x0, size 0x4 + char * _strtok_last; // offset 0x4, size 0x4 + char _asctime_buf[26]; // offset 0x8, size 0x1A + class tm _localtime_buf; // offset 0x24, size 0x24 + signed int _gamma_signgam; // offset 0x48, size 0x4 + unsigned long long _rand_next; // offset 0x50, size 0x8 + } _reent; // offset 0x0, size 0x58 + class /* @class */ { + // total size: 0xF0 + public: + unsigned char * _nextf[30]; // offset 0x0, size 0x78 + unsigned int _nmalloc[30]; // offset 0x78, size 0x78 + } _unused; // offset 0x0, size 0xF0 + }; + } _new; // offset 0x58, size 0xF0 + class _atexit * _atexit; // offset 0x148, size 0x4 + class _atexit _atexit0; // offset 0x14C, size 0x88 + void (* * _sig_func)(signed int); // offset 0x1D4, size 0x4 + class _glue __sglue; // offset 0x1D8, size 0xC + class __sFILE __sf[3]; // offset 0x1E4, size 0x108 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class _Bigint { + // total size: 0x18 +public: + class _Bigint * _next; // offset 0x0, size 0x4 + signed int _k; // offset 0x4, size 0x4 + signed int _maxwds; // offset 0x8, size 0x4 + signed int _sign; // offset 0xC, size 0x4 + signed int _wds; // offset 0x10, size 0x4 + unsigned int _x[1]; // offset 0x14, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class __sFILE { + // total size: 0x58 +public: + unsigned char * _p; // offset 0x0, size 0x4 + signed int _r; // offset 0x4, size 0x4 + signed int _w; // offset 0x8, size 0x4 + signed short _flags; // offset 0xC, size 0x2 + signed short _file; // offset 0xE, size 0x2 + class __sbuf _bf; // offset 0x10, size 0x8 + signed int _lbfsize; // offset 0x18, size 0x4 + void * _cookie; // offset 0x1C, size 0x4 + signed int (* _read)(void *, char *, signed int); // offset 0x20, size 0x4 + signed int (* _write)(void *, char *, signed int); // offset 0x24, size 0x4 + signed long (* _seek)(void *, signed long, signed int); // offset 0x28, size 0x4 + signed int (* _close)(void *); // offset 0x2C, size 0x4 + class __sbuf _ub; // offset 0x30, size 0x8 + unsigned char * _up; // offset 0x38, size 0x4 + signed int _ur; // offset 0x3C, size 0x4 + unsigned char _ubuf[3]; // offset 0x40, size 0x3 + unsigned char _nbuf[1]; // offset 0x43, size 0x1 + class __sbuf _lb; // offset 0x44, size 0x8 + signed int _blksize; // offset 0x4C, size 0x4 + signed int _offset; // offset 0x50, size 0x4 + class _reent * _data; // offset 0x54, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class _atexit { + // total size: 0x88 +public: + class _atexit * _next; // offset 0x0, size 0x4 + signed int _ind; // offset 0x4, size 0x4 + void (* _fns[32])(); // offset 0x8, size 0x80 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class __sbuf { + // total size: 0x8 +public: + unsigned char * _base; // offset 0x0, size 0x4 + signed int _size; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xF0 +public: + union { // inferred + class /* @class */ { + // total size: 0x58 + public: + unsigned int _unused_rand; // offset 0x0, size 0x4 + char * _strtok_last; // offset 0x4, size 0x4 + char _asctime_buf[26]; // offset 0x8, size 0x1A + class tm _localtime_buf; // offset 0x24, size 0x24 + signed int _gamma_signgam; // offset 0x48, size 0x4 + unsigned long long _rand_next; // offset 0x50, size 0x8 + } _reent; // offset 0x0, size 0x58 + class /* @class */ { + // total size: 0xF0 + public: + unsigned char * _nextf[30]; // offset 0x0, size 0x78 + unsigned int _nmalloc[30]; // offset 0x78, size 0x78 + } _unused; // offset 0x0, size 0xF0 + }; +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + unsigned int _unused_rand; // offset 0x0, size 0x4 + char * _strtok_last; // offset 0x4, size 0x4 + char _asctime_buf[26]; // offset 0x8, size 0x1A + class tm _localtime_buf; // offset 0x24, size 0x24 + signed int _gamma_signgam; // offset 0x48, size 0x4 + unsigned long long _rand_next; // offset 0x50, size 0x8 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xF0 +public: + unsigned char * _nextf[30]; // offset 0x0, size 0x78 + unsigned int _nmalloc[30]; // offset 0x78, size 0x78 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class _glue { + // total size: 0xC +public: + class _glue * _next; // offset 0x0, size 0x4 + signed int _niobs; // offset 0x4, size 0x4 + class __sFILE * _iobs; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class tm { + // total size: 0x24 +public: + signed int tm_sec; // offset 0x0, size 0x4 + signed int tm_min; // offset 0x4, size 0x4 + signed int tm_hour; // offset 0x8, size 0x4 + signed int tm_mday; // offset 0xC, size 0x4 + signed int tm_mon; // offset 0x10, size 0x4 + signed int tm_year; // offset 0x14, size 0x4 + signed int tm_wday; // offset 0x18, size 0x4 + signed int tm_yday; // offset 0x1C, size 0x4 + signed int tm_isdst; // offset 0x20, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210870 -> 0x00210904 +*/ +// Range: 0x210870 -> 0x210904 +void xAnimPoolFree(class xAnimPlay * play /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210870 -> 0x210904 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210910 -> 0x00210970 +*/ +// Range: 0x210910 -> 0x210970 +class xAnimPlay * xAnimPoolAlloc(class xMemPool * pool /* r2 */, void * object /* r19 */, class xAnimTable * table /* r18 */, class xModelInstance * modelInst /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210910 -> 0x210970 + class xAnimPlay * play; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210970 -> 0x00210BDC +*/ +// Range: 0x210970 -> 0x210BDC +void xAnimPoolInit(class xMemPool * pool /* r20 */, unsigned int count /* r19 */, unsigned int singles /* r18 */, unsigned int blendFlags /* r17 */, unsigned int effectMax /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210970 -> 0x210BDC + unsigned int size; // r22 + unsigned int i; // r7 + void * buffer; // r2 + class xAnimPlay * play; // r2 + class xAnimSingle * currsingle; // r3 + class xAnimActiveEffect * curract; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210BE0 -> 0x00210D08 +*/ +// Range: 0x210BE0 -> 0x210D08 +void xAnimPoolCB(class xMemPool * pool /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210BE0 -> 0x210D08 + signed int i; // r9 + class xAnimPlay * clone; // r6 + class xAnimPlay * play; // r2 + class xAnimSingle * clonesingle; // r11 + class xAnimSingle * currsingle; // r3 + class xAnimActiveEffect * curract; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210D10 -> 0x002111BC +*/ +// Range: 0x210D10 -> 0x2111BC +void xAnimPlayEval(class xAnimPlay * play /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210D10 -> 0x2111BC + unsigned int i; // r29+0xF0 + unsigned int bone; // r20 + class xQuat * quatresult; // r29+0xE0 + class xVec3 * tranresult; // r29+0xD0 + class xQuat * quatblend; // r23 + class xVec3 * tranblend; // r30 + class xAnimSingle * si; // r17 + float blendF; // r21 + float blendR; // r20 + unsigned short * blendO; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002111C0 -> 0x00211260 +*/ +// Range: 0x2111C0 -> 0x211260 +void xAnimPlayUpdate(class xAnimPlay * play /* r17 */, float timeDelta /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2111C0 -> 0x211260 + unsigned int i; // r16 + class xAnimSingle * single; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00211260 -> 0x00211524 +*/ +// Range: 0x211260 -> 0x211524 +void xAnimPlayStartTransition(class xAnimPlay * play /* r19 */, class xAnimTransition * transition /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x211260 -> 0x211524 + class xAnimSingle * single; // r17 + class xAnimSingle * bl; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00211530 -> 0x002116D4 +*/ +// Range: 0x211530 -> 0x2116D4 +void xAnimPlayChooseTransition(class xAnimPlay * play /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x211530 -> 0x2116D4 + unsigned int i; // r21 + void * object; // r20 + class xAnimTransition * * found; // r19 + class xAnimTransitionList * curr; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002116E0 -> 0x002117B4 +*/ +// Range: 0x2116E0 -> 0x2117B4 +void xAnimPlaySetup(class xAnimPlay * play /* r2 */, void * object /* r2 */, class xAnimTable * table /* r2 */, class xModelInstance * modelInst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2116E0 -> 0x2117B4 + signed int i; // r10 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002117C0 -> 0x00212048 +*/ +// Range: 0x2117C0 -> 0x212048 +static void SingleUpdate(class xAnimSingle * single /* r21 */, float timeDelta /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2117C0 -> 0x212048 + unsigned int foundBlendstop; // r20 + unsigned int firstStep; // r19 + class xAnimTransition * foundTransition; // r18 + class xAnimSingle * bl; // r17 + float tranDelta; // r23 + float blendDelta; // r22 + float singleTime; // r21 + void * object; // r16 + float duration; // r20 + float timeCmp; // r2 + float timeCmp; // r25 + class xAnimTransitionList * curr; // r22 + float recip; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212050 -> 0x00212158 +*/ +// Range: 0x212050 -> 0x212158 +void xAnimPlaySetState(class xAnimSingle * single /* r16 */, class xAnimState * state /* r17 */, float startTime /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212050 -> 0x212158 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212160 -> 0x002122C0 +*/ +// Range: 0x212160 -> 0x2122C0 +static void EffectSingleStop(class xAnimSingle * single /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212160 -> 0x2122C0 + unsigned int i; // r17 + class xAnimEffect * effect; // r17 + class xAnimActiveEffect tempActive; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002122C0 -> 0x002123F8 +*/ +// Range: 0x2122C0 -> 0x2123F8 +static void EffectSingleLoop(class xAnimSingle * single /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2122C0 -> 0x2123F8 + class xAnimActiveEffect * alist; // r18 + unsigned int index; // r17 + unsigned int count; // r16 + class xAnimEffect * effect; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212400 -> 0x00212608 +*/ +// Range: 0x212400 -> 0x212608 +static void EffectSingleRun(class xAnimSingle * single /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212400 -> 0x212608 + class xAnimEffect * effect; // r19 + class xAnimActiveEffect tempActive; // r29+0x78 + float time; // r20 + unsigned int flags; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212610 -> 0x00212748 +*/ +// Range: 0x212610 -> 0x212748 +static void EffectSingleDuration(class xAnimSingle * single /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212610 -> 0x212748 + float time; // r20 + class xAnimActiveEffect * alist; // r18 + unsigned int index; // r17 + unsigned int count; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212750 -> 0x002129A0 +*/ +// Range: 0x212750 -> 0x2129A0 +static void EffectSingleStart(class xAnimSingle * single /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212750 -> 0x2129A0 + class xAnimEffect * effect; // r17 + class xAnimActiveEffect tempActive; // r29+0x58 + float time; // r20 + unsigned int flags; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002129A0 -> 0x00212A0C +*/ +// Range: 0x2129A0 -> 0x212A0C +class xAnimState * xAnimTableGetState(class xAnimTable * table /* r16 */, char * name /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2129A0 -> 0x212A0C + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212A10 -> 0x00212A58 +*/ +// Range: 0x212A10 -> 0x212A58 +class xAnimState * xAnimTableGetStateID(class xAnimTable * table /* r2 */, unsigned int ID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212A10 -> 0x212A58 + class xAnimState * curr; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212A60 -> 0x00212BC8 +*/ +// Range: 0x212A60 -> 0x212BC8 +class xAnimState * xAnimTableAddFileID(class xAnimTable * table /* r19 */, class xAnimFile * file /* r18 */, unsigned int stateID /* r2 */, unsigned int subStateID /* r17 */, unsigned int subStateCount /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212A60 -> 0x212BC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212BD0 -> 0x00212C68 +*/ +// Range: 0x212BD0 -> 0x212C68 +void xAnimTableAddFile(class xAnimTable * table /* r18 */, class xAnimFile * file /* r17 */, char * states /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212BD0 -> 0x212C68 + unsigned char * buffer; // r16 + char * stateName; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212C70 -> 0x00212FA8 +*/ +// Range: 0x212C70 -> 0x212FA8 +class xAnimTransition * xAnimTableNewTransition(class xAnimTable * table /* r19 */, char * source /* r18 */, char * dest /* r17 */, unsigned int (* conditional)(class xAnimTransition *, class xAnimSingle *, void *) /* r22 */, unsigned int (* callback)(class xAnimTransition *, class xAnimSingle *, void *) /* r23 */, unsigned int flags /* r30 */, unsigned int userFlags /* r29+0xBC */, float srcTime /* r22 */, float destTime /* r21 */, unsigned short priority /* r29+0xBA */, unsigned short queuePriority /* r29+0xC0 */, float blendRecip /* r20 */, unsigned short * blendOffset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212C70 -> 0x212FA8 + class xAnimTransition * tran; // r21 + unsigned char isComplex; // r20 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212FB0 -> 0x00212FB8 +*/ +// Range: 0x212FB0 -> 0x212FB8 +void xAnimTableAddTransition(class xAnimTable * table /* r2 */, class xAnimTransition * tran /* r2 */, char * source /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212FB0 -> 0x212FB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00212FC0 -> 0x00213820 +*/ +// Range: 0x212FC0 -> 0x213820 +static void _xAnimTableAddTransition(class xAnimTable * table /* r29+0x12C */, class xAnimTransition * tran /* r20 */, char * source /* r2 */, char * dest /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x212FC0 -> 0x213820 + unsigned char * buffer; // r29+0x110 + class xAnimState * * stateList; // r29+0x100 + unsigned int i; // r4 + unsigned int stateCount; // r30 + unsigned int allocCount; // r21 + char * stateName; // r29+0xFC + class xAnimTransitionList * tlist; // r29+0xE0 + class xAnimTransition * substTransitionList[32]; // r29+0x230 + unsigned int substTransitionCount; // r29+0xD0 + unsigned char hasSubst; // r29+0xC0 + signed int i; // r5 + unsigned char isComplex; // r8 + char * COMPLEX_PATTERNS; // r7 + char * search; // r6 + class xAnimState * state; // r23 + char extra[128]; // r29+0x1B0 + char tempName[128]; // r29+0x130 + char * tempIterator; // r19 + char * extraIterator; // r18 + unsigned char allowMissingState; // r29+0xB0 + signed int i; // r17 + unsigned int extraIteratorLength; // r16 + class xAnimTransition * duplicatedTransition; // r17 + class xAnimTransitionList * curr; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00213820 -> 0x00213A84 +*/ +// Range: 0x213820 -> 0x213A84 +class xAnimState * xAnimTableNewState(class xAnimTable * table /* r20 */, char * name /* r19 */, unsigned int flags /* r18 */, unsigned int userFlags /* r17 */, float speed /* r21 */, float * boneBlend /* r22 */, float * timeSnap /* r23 */, float fadeRecip /* r20 */, unsigned short * fadeOffset /* r16 */, void * callbackData /* r30 */, void (* beforeEnter)(class xAnimPlay *, class xAnimState *) /* r29+0xB0 */, void (* stateCallback)(class xAnimState *, class xAnimSingle *, void *) /* r29+0xB8 */, void (* beforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int) /* r29+0xC0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x213820 -> 0x213A84 + class xAnimState * state; // r21 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00213A90 -> 0x00213AEC +*/ +// Range: 0x213A90 -> 0x213AEC +void xAnimDefaultBeforeEnter(class xAnimState * state /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x213A90 -> 0x213AEC + unsigned int entry; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00213AF0 -> 0x00213B70 +*/ +// Range: 0x213AF0 -> 0x213B70 +class xAnimTable * xAnimTableNew(char * name /* r18 */, class xAnimTable * * linkedList /* r17 */, unsigned int userFlags /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x213AF0 -> 0x213B70 + class xAnimTable * table; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00213B70 -> 0x00213C38 +*/ +// Range: 0x213B70 -> 0x213C38 +class xAnimEffect * xAnimStateNewEffect(class xAnimState * state /* r18 */, unsigned int flags /* r17 */, float startTime /* r21 */, float endTime /* r20 */, unsigned int (* callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *) /* r16 */, unsigned int userDataSize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x213B70 -> 0x213C38 + class xAnimEffect * curr; // r5 + class xAnimEffect * * prev; // r4 + class xAnimEffect * effect; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00213C40 -> 0x00214290 +*/ +// Range: 0x213C40 -> 0x214290 +void xAnimFileEval(class xAnimFile * data /* r20 */, float time /* r29+0x100 */, float * bilinear /* r2 */, unsigned int flags /* r30 */, class xVec3 * tran /* r21 */, class xQuat * quat /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x213C40 -> 0x214290 + signed int i; // r19 + unsigned int numBones; // r29+0xD0 + float bilerp[2]; // r29+0xF8 + unsigned int biindex[2]; // r29+0xF0 + unsigned int biplus[2]; // r29+0xE8 + class xQuat * q0; // r17 + class xVec3 * t0; // r16 + class xQuat * q1; // r18 + class xVec3 * t1; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00214290 -> 0x00214350 +*/ +// Range: 0x214290 -> 0x214350 +void xAnimFileSetTime(class xAnimFile * data /* r16 */, float duration /* r21 */, float timeOffset /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x214290 -> 0x214350 + float rawDuration; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00214350 -> 0x00214378 +*/ +// Range: 0x214350 -> 0x214378 +class xAnimFile * xAnimFileNew(void * rawData /* r29+0x1C */, char * name /* r2 */, unsigned int flags /* r2 */, class xAnimFile * * linkedList /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x214350 -> 0x214378 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00214380 -> 0x00214644 +*/ +// Range: 0x214380 -> 0x214644 +class xAnimFile * xAnimFileNewBilinear(void * * rawData /* r20 */, char * name /* r19 */, unsigned int flags /* r18 */, class xAnimFile * * linkedList /* r23 */, unsigned int numX /* r17 */, unsigned int numY /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x214380 -> 0x214644 + signed int i; // r5 + class xAnimFile * afile; // r22 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00214650 -> 0x002146B8 +*/ +// Range: 0x214650 -> 0x2146B8 +void xAnimTempTransitionInit(unsigned int count /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x214650 -> 0x2146B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002146C0 -> 0x002146F0 +*/ +// Range: 0x2146C0 -> 0x2146F0 +void xAnimInit() { + // Blocks + /* anonymous block */ { + // Range: 0x2146C0 -> 0x2146F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xAnim.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002146F0 -> 0x00214E30 +*/ +// Range: 0x2146F0 -> 0x214E30 +static unsigned char _xCheckAnimNameInner(char * name /* r21 */, char * pattern /* r22 */, signed int patternSize /* r29+0xEC */, char * extra /* r20 */, signed int * nameOut /* r29+0xE8 */, signed int * extraOut /* r29+0xE4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2146F0 -> 0x214E30 + char * startExtra; // r29+0xD0 + char * initialExtra; // r29+0xCC + signed int patternCurrent; // r19 + signed int nameCurrent; // r18 + signed int check; // r6 + char nextPattern[128]; // r29+0xF0 + signed int nextPatternCount; // r5 + unsigned char first; // r4 + signed int parenCount; // r3 + char * IGNORE_PATTERNS; // r2 + signed int length; // r16 + unsigned char done; // r17 + char * current; // r16 + char * startPattern; // r2 + signed int pc; // r7 + signed int nameOut; // r29+0x17C + signed int extraOut; // r29+0x178 + char * current; // r16 + char * positiveEnd; // r5 + char * negative; // r23 + char * negativeEnd; // r17 + signed int nameOut; // r29+0x174 + signed int extraOut; // r29+0x170 + unsigned char matched; // r29+0xB0 + } +} + diff --git a/dwarf/SB/Core/x/xBase.cpp b/dwarf/SB/Core/x/xBase.cpp new file mode 100644 index 000000000..2398afc62 --- /dev/null +++ b/dwarf/SB/Core/x/xBase.cpp @@ -0,0 +1,119 @@ +/* + Compile unit: C:\SB\Core\x\xBase.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xBase.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF690 -> 0x001BF6BC +*/ +// Range: 0x1BF690 -> 0x1BF6BC +void xBaseReset(class xBase * xb /* r2 */, class xBaseAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF690 -> 0x1BF6BC + } +} + +/* + Compile unit: C:\SB\Core\x\xBase.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF6C0 -> 0x001BF720 +*/ +// Range: 0x1BF6C0 -> 0x1BF720 +void xBaseLoad(class xBase * ent /* r16 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF6C0 -> 0x1BF720 + signed int b; // r29+0x2C + } +} + +/* + Compile unit: C:\SB\Core\x\xBase.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF720 -> 0x001BF76C +*/ +// Range: 0x1BF720 -> 0x1BF76C +void xBaseSave(class xBase * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF720 -> 0x1BF76C + } +} + +/* + Compile unit: C:\SB\Core\x\xBase.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF770 -> 0x001BF778 +*/ +// Range: 0x1BF770 -> 0x1BF778 +void xBaseSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x1BF770 -> 0x1BF778 + } +} + +/* + Compile unit: C:\SB\Core\x\xBase.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF780 -> 0x001BF7B4 +*/ +// Range: 0x1BF780 -> 0x1BF7B4 +void xBaseInit(class xBase * xb /* r2 */, class xBaseAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF780 -> 0x1BF7B4 + } +} + diff --git a/dwarf/SB/Core/x/xBehaveGoalSimple.cpp b/dwarf/SB/Core/x/xBehaveGoalSimple.cpp new file mode 100644 index 000000000..d0cf60e50 --- /dev/null +++ b/dwarf/SB/Core/x/xBehaveGoalSimple.cpp @@ -0,0 +1,243 @@ +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +struct /* @anon2 */ { + // total size: 0x30 +} __vt__12xGoalGeneric; // size: 0x30, address: 0x50BE90 +struct /* @anon1 */ { + // total size: 0x30 +} __vt__10xGoalEmpty; // size: 0x30, address: 0x50BEC0 +struct /* @anon0 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +void GOALDestroy_Generic(class xFactoryInst *); // size: 0x0, address: 0x2F3130 +class xFactoryInst * GOALCreate_Generic(signed int, class RyzMemGrow *, void *); // size: 0x0, address: 0x2F3160 +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xGoalGeneric : public xGoal { + // total size: 0x54 +public: + signed int (* fun_enter)(class xGoal *, void *, float, void *); // offset 0x3C, size 0x4 + signed int (* fun_exit)(class xGoal *, void *, float, void *); // offset 0x40, size 0x4 + signed int (* fun_suspend)(class xGoal *, void *, float, void *); // offset 0x44, size 0x4 + signed int (* fun_resume)(class xGoal *, void *, float, void *); // offset 0x48, size 0x4 + signed int (* fun_sysevent)(class xGoal *, void *, class xBase *, class xBase *, unsigned int, float *, class xBase *, signed int *); // offset 0x4C, size 0x4 + void * usrData; // offset 0x50, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xPsyche { + // total size: 0x0 +}; +struct /* @anon0 */ { + // total size: 0x2C +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xBase { + // total size: 0x0 +}; +struct /* @anon1 */ { + // total size: 0x30 +}; +class RyzMemData { + // total size: 0x1 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +struct /* @anon2 */ { + // total size: 0x30 +}; + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2FD0 -> 0x002F3028 +*/ +// Range: 0x2F2FD0 -> 0x2F3028 +signed int SysEvent(class xGoalGeneric * this /* r2 */, class xBase * from /* r5 */, class xBase * to /* r14 */, unsigned int toEvent /* r13 */, float * toParam /* r12 */, class xBase * toParamWidget /* r3 */, signed int * handled /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2FD0 -> 0x2F3028 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3030 -> 0x002F3064 +*/ +// Range: 0x2F3030 -> 0x2F3064 +signed int Resume(class xGoalGeneric * this /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3030 -> 0x2F3064 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3070 -> 0x002F30A4 +*/ +// Range: 0x2F3070 -> 0x2F30A4 +signed int Suspend(class xGoalGeneric * this /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3070 -> 0x2F30A4 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F30B0 -> 0x002F30E4 +*/ +// Range: 0x2F30B0 -> 0x2F30E4 +signed int Exit(class xGoalGeneric * this /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F30B0 -> 0x2F30E4 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F30F0 -> 0x002F3124 +*/ +// Range: 0x2F30F0 -> 0x2F3124 +signed int Enter(class xGoalGeneric * this /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F30F0 -> 0x2F3124 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3130 -> 0x002F3154 +*/ +// Range: 0x2F3130 -> 0x2F3154 +static void GOALDestroy_Generic(class xFactoryInst * item /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3130 -> 0x2F3154 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3160 -> 0x002F3260 +*/ +// Range: 0x2F3160 -> 0x2F3260 +static class xFactoryInst * GOALCreate_Generic(signed int who /* r16 */, class RyzMemGrow * growCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3160 -> 0x2F3260 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3260 -> 0x002F32BC +*/ +// Range: 0x2F3260 -> 0x2F32BC +void xGoalSimple_RegisterTypes(class xFactory * fac /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3260 -> 0x2F32BC + } +} + diff --git a/dwarf/SB/Core/x/xBehaveGoalSimple.h b/dwarf/SB/Core/x/xBehaveGoalSimple.h new file mode 100644 index 000000000..4d005f972 --- /dev/null +++ b/dwarf/SB/Core/x/xBehaveGoalSimple.h @@ -0,0 +1,56 @@ +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2FB0 -> 0x002F2FBC +*/ +// Range: 0x2F2FB0 -> 0x2F2FBC +char * Name() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2FB0 -> 0x2F2FBC + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2FC0 -> 0x002F2FC8 +*/ +// Range: 0x2F2FC0 -> 0x2F2FC8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2FC0 -> 0x2F2FC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F32C0 -> 0x002F32CC +*/ +// Range: 0x2F32C0 -> 0x2F32CC +char * Name() { + // Blocks + /* anonymous block */ { + // Range: 0x2F32C0 -> 0x2F32CC + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveGoalSimple.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F32D0 -> 0x002F32D8 +*/ +// Range: 0x2F32D0 -> 0x2F32D8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2F32D0 -> 0x2F32D8 + } +} + diff --git a/dwarf/SB/Core/x/xBehaveMgr.cpp b/dwarf/SB/Core/x/xBehaveMgr.cpp new file mode 100644 index 000000000..e9fc0b573 --- /dev/null +++ b/dwarf/SB/Core/x/xBehaveMgr.cpp @@ -0,0 +1,646 @@ +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int g_modinit; // size: 0x4, address: 0x50FFAC +static class xBehaveMgr * g_behavmgr; // size: 0x4, address: 0x50FFB0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +enum en_xpsytime { + XPSY_TYMR_CURGOAL = 0, + XPSY_TYMR_NOMORE = 1, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RyzMemData { + // total size: 0x1 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F02E0 -> 0x002F0314 +*/ +// Range: 0x2F02E0 -> 0x2F0314 +float TimerGet(class xPsyche * this /* r2 */, enum en_xpsytime tymr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F02E0 -> 0x2F0314 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0320 -> 0x002F077C +*/ +// Range: 0x2F0320 -> 0x2F077C +signed int TranGoal(class xPsyche * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0320 -> 0x2F077C + signed int halfway; // r6 + signed int just_switched; // r18 + class xGoal * topgoal; // r16 + signed int moretodo; // r2 + signed int moretodo; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F07A0 -> 0x002F08CC +*/ +// Range: 0x2F07A0 -> 0x2F08CC +signed int ParseTranRequest(class xPsyche * this /* r2 */, enum en_trantype trantyp /* r2 */, signed int trangid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F07A0 -> 0x2F08CC + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F08D0 -> 0x002F0ADC +*/ +// Range: 0x2F08D0 -> 0x2F0ADC +signed int Timestep(class xPsyche * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F08D0 -> 0x2F0ADC + class xGoal * curgoal; // r17 + signed int moretodo; // r2 + signed int trangid; // r2 + enum en_trantype trantyp; // r29+0x6C + signed int old_psyflags; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0AE0 -> 0x002F0B84 +*/ +// Range: 0x2F0AE0 -> 0x2F0B84 +class xGoal * FindGoal(class xPsyche * this /* r18 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0AE0 -> 0x2F0B84 + class xGoal * goal; // r17 + class xGoal * safe; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0B90 -> 0x002F0CEC +*/ +// Range: 0x2F0B90 -> 0x2F0CEC +signed int GoalNone(class xPsyche * this /* r17 */, signed int denyExplicit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0B90 -> 0x2F0CEC + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0CF0 -> 0x002F0E14 +*/ +// Range: 0x2F0CF0 -> 0x2F0E14 +signed int GoalSwap(class xPsyche * this /* r17 */, signed int gid /* r29+0x38 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0CF0 -> 0x2F0E14 + signed int result; // r16 + class xGoal * goal; // r2 + enum en_trantype trantype; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0E20 -> 0x002F1020 +*/ +// Range: 0x2F0E20 -> 0x2F1020 +signed int GoalPop(class xPsyche * this /* r18 */, signed int gid_popto /* r29+0x48 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0E20 -> 0x2F1020 + signed int result; // r17 + class xGoal * destgoal; // r16 + class xGoal * tmpgoal; // r7 + signed int i; // r6 + enum en_trantype trantype; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1020 -> 0x002F1154 +*/ +// Range: 0x2F1020 -> 0x2F1154 +signed int GoalPopRecover(class xPsyche * this /* r17 */, signed int overpend /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1020 -> 0x2F1154 + signed int result; // r16 + signed int i; // r7 + class xGoal * tmpgoal; // r5 + class xGoal * destgoal; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1160 -> 0x002F1218 +*/ +// Range: 0x2F1160 -> 0x2F1218 +signed int GoalPopToBase(class xPsyche * this /* r16 */, signed int overpend /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1160 -> 0x2F1218 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1220 -> 0x002F1394 +*/ +// Range: 0x2F1220 -> 0x2F1394 +signed int GoalPush(class xPsyche * this /* r17 */, signed int gid /* r29+0x38 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1220 -> 0x2F1394 + signed int result; // r16 + class xGoal * goal; // r2 + enum en_trantype trantype; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F13A0 -> 0x002F14DC +*/ +// Range: 0x2F13A0 -> 0x2F14DC +signed int GoalSet(class xPsyche * this /* r17 */, signed int gid /* r29+0x38 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F13A0 -> 0x2F14DC + signed int result; // r16 + class xGoal * goal; // r2 + enum en_trantype trantype; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F14E0 -> 0x002F15D0 +*/ +// Range: 0x2F14E0 -> 0x2F15D0 +class xGoal * GetPrevRecovery(class xPsyche * this /* r2 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F14E0 -> 0x2F15D0 + signed int i; // r6 + signed int idx_start; // r8 + class xGoal * tmpgoal; // r5 + class xGoal * recgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F15D0 -> 0x002F15F0 +*/ +// Range: 0x2F15D0 -> 0x2F15F0 +signed int GIDOfPending(class xPsyche * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F15D0 -> 0x2F15F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F15F0 -> 0x002F161C +*/ +// Range: 0x2F15F0 -> 0x2F161C +signed int GIDOfActive(class xPsyche * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F15F0 -> 0x2F161C + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1620 -> 0x002F1670 +*/ +// Range: 0x2F1620 -> 0x2F1670 +class xGoal * GIDInStack(class xPsyche * this /* r2 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1620 -> 0x2F1670 + class xGoal * da_goal; // r2 + class xGoal * tmpgoal; // r8 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1670 -> 0x002F1698 +*/ +// Range: 0x2F1670 -> 0x2F1698 +class xGoal * GetCurGoal(class xPsyche * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1670 -> 0x2F1698 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F16A0 -> 0x002F16F0 +*/ +// Range: 0x2F16A0 -> 0x2F16F0 +signed int IndexInStack(class xPsyche * this /* r2 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F16A0 -> 0x2F16F0 + signed int da_idx; // r2 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F16F0 -> 0x002F175C +*/ +// Range: 0x2F16F0 -> 0x2F175C +void FreshWipe(class xPsyche * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F16F0 -> 0x2F175C + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1760 -> 0x002F17FC +*/ +// Range: 0x2F1760 -> 0x2F17FC +class xGoal * AddGoal(class xPsyche * this /* r18 */, signed int gid /* r17 */, void * createData /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1760 -> 0x2F17FC + class xGoal * goal; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1800 -> 0x002F1834 +*/ +// Range: 0x2F1800 -> 0x2F1834 +void BrainEnd(class xPsyche * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1800 -> 0x2F1834 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1840 -> 0x002F1860 +*/ +// Range: 0x2F1840 -> 0x2F1860 +void BrainExtend(class xPsyche * this /* r7 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1840 -> 0x2F1860 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1860 -> 0x002F1880 +*/ +// Range: 0x2F1860 -> 0x2F1880 +void BrainBegin(class xPsyche * this /* r7 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1860 -> 0x2F1880 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1880 -> 0x002F1904 +*/ +// Range: 0x2F1880 -> 0x2F1904 +void UnSubscribe(class xBehaveMgr * this /* r18 */, class xPsyche * psy /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1880 -> 0x2F1904 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1910 -> 0x002F19A0 +*/ +// Range: 0x2F1910 -> 0x2F19A0 +class xPsyche * Subscribe(class xBehaveMgr * this /* r2 */, class xBase * owner /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1910 -> 0x2F19A0 + class xPsyche * psy; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F19A0 -> 0x002F1A98 +*/ +// Range: 0x2F19A0 -> 0x2F1A98 +void xBehaveMgr_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x2F19A0 -> 0x2F1A98 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1AA0 -> 0x002F1AAC +*/ +// Range: 0x2F1AA0 -> 0x2F1AAC +void xBehaveMgr_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x2F1AA0 -> 0x2F1AAC + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1AB0 -> 0x002F1AB8 +*/ +// Range: 0x2F1AB0 -> 0x2F1AB8 +void xBehaveMgr_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x2F1AB0 -> 0x2F1AB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1AC0 -> 0x002F1AC8 +*/ +// Range: 0x2F1AC0 -> 0x2F1AC8 +class xBehaveMgr * xBehaveMgr_GetSelf() { + // Blocks + /* anonymous block */ { + // Range: 0x2F1AC0 -> 0x2F1AC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1AD0 -> 0x002F1B1C +*/ +// Range: 0x2F1AD0 -> 0x2F1B1C +void xBehaveMgr_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2F1AD0 -> 0x2F1B1C + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1B20 -> 0x002F1BD8 +*/ +// Range: 0x2F1B20 -> 0x2F1BD8 +void xBehaveMgr_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2F1B20 -> 0x2F1BD8 + } +} + diff --git a/dwarf/SB/Core/x/xBehaveMgr.h b/dwarf/SB/Core/x/xBehaveMgr.h new file mode 100644 index 000000000..cf47b01a5 --- /dev/null +++ b/dwarf/SB/Core/x/xBehaveMgr.h @@ -0,0 +1,14 @@ +/* + Compile unit: C:\SB\Core\x\xBehaveMgr.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAE20 -> 0x002CAE28 +*/ +// Range: 0x2CAE20 -> 0x2CAE28 +void Notice() { + // Blocks + /* anonymous block */ { + // Range: 0x2CAE20 -> 0x2CAE28 + } +} + diff --git a/dwarf/SB/Core/x/xBehaviour.cpp b/dwarf/SB/Core/x/xBehaviour.cpp new file mode 100644 index 000000000..e1a9b3283 --- /dev/null +++ b/dwarf/SB/Core/x/xBehaviour.cpp @@ -0,0 +1,197 @@ +/* + Compile unit: C:\SB\Core\x\xBehaviour.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +struct /* @anon0 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x2C +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; + +/* + Compile unit: C:\SB\Core\x\xBehaviour.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1CD0 -> 0x002F1D08 +*/ +// Range: 0x2F1CD0 -> 0x2F1D08 +signed int Process(class xGoal * this /* r2 */, enum en_trantype * trantype /* r5 */, float dt /* r29+0x10 */, void * ctxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1CD0 -> 0x2F1D08 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1D10 -> 0x002F1D48 +*/ +// Range: 0x2F1D10 -> 0x2F1D48 +signed int EvalRules(class xGoal * this /* r2 */, enum en_trantype * trantype /* r5 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1D10 -> 0x2F1D48 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1D50 -> 0x002F1D84 +*/ +// Range: 0x2F1D50 -> 0x2F1D84 +signed int PreCalc(class xGoal * this /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1D50 -> 0x2F1D84 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1D90 -> 0x002F1D98 +*/ +// Range: 0x2F1D90 -> 0x2F1D98 +void Clear(class xGoal * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1D90 -> 0x2F1D98 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1DA0 -> 0x002F1DAC +*/ +// Range: 0x2F1DA0 -> 0x2F1DAC +class xBase * GetOwner(class xGoal * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1DA0 -> 0x2F1DAC + } +} + diff --git a/dwarf/SB/Core/x/xBehaviour.h b/dwarf/SB/Core/x/xBehaviour.h new file mode 100644 index 000000000..718d8a7dc --- /dev/null +++ b/dwarf/SB/Core/x/xBehaviour.h @@ -0,0 +1,98 @@ +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADB00 -> 0x002ADB08 +*/ +// Range: 0x2ADB00 -> 0x2ADB08 +signed int Suspend() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADB00 -> 0x2ADB08 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADB10 -> 0x002ADB18 +*/ +// Range: 0x2ADB10 -> 0x2ADB18 +signed int SysEvent() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADB10 -> 0x2ADB18 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5B00 -> 0x002C5B10 +*/ +// Range: 0x2C5B00 -> 0x2C5B10 +void AddFlags(class xGoal * this /* r2 */, signed int flags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5B00 -> 0x2C5B10 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5BE0 -> 0x002C5BE8 +*/ +// Range: 0x2C5BE0 -> 0x2C5BE8 +void SetFlags(class xGoal * this /* r2 */, signed int flags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5BE0 -> 0x2C5BE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5C70 -> 0x002C5C78 +*/ +// Range: 0x2C5C70 -> 0x2C5C78 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x2C5C70 -> 0x2C5C78 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0780 -> 0x002F0788 +*/ +// Range: 0x2F0780 -> 0x2F0788 +signed int Enter() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0780 -> 0x2F0788 + } +} + +/* + Compile unit: C:\SB\Core\x\xBehaviour.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0790 -> 0x002F0798 +*/ +// Range: 0x2F0790 -> 0x2F0798 +signed int Resume() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0790 -> 0x2F0798 + } +} + diff --git a/dwarf/SB/Core/x/xBound.cpp b/dwarf/SB/Core/x/xBound.cpp new file mode 100644 index 000000000..d0db8ac09 --- /dev/null +++ b/dwarf/SB/Core/x/xBound.cpp @@ -0,0 +1,927 @@ +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xLightKit { + // total size: 0x0 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0530 -> 0x001C0538 +*/ +// Range: 0x1C0530 -> 0x1C0538 +void xBoundDraw() { + // Blocks + /* anonymous block */ { + // Range: 0x1C0530 -> 0x1C0538 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0540 -> 0x001C0654 +*/ +// Range: 0x1C0540 -> 0x1C0654 +void xVecHitsBound(class xVec3 * v /* r7 */, class xBound * b /* r17 */, class xCollis * c /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0540 -> 0x1C0654 + class xIsect isect; // r29+0x30 + class xVec3 lv; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0660 -> 0x001C06E4 +*/ +// Range: 0x1C0660 -> 0x1C06E4 +void xSphereHitsBound(class xSphere * o /* r2 */, class xBound * b /* r8 */, class xCollis * c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0660 -> 0x1C06E4 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C06F0 -> 0x001C07C0 +*/ +// Range: 0x1C06F0 -> 0x1C07C0 +void xRayHitsBound(class xRay3 * r /* r7 */, class xBound * b /* r2 */, class xCollis * c /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C06F0 -> 0x1C07C0 + class xIsect isect; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C07C0 -> 0x001C0B78 +*/ +// Range: 0x1C07C0 -> 0x1C0B78 +static void xBoundOBBIsectRay(class xBox * b /* r2 */, class xMat4x3 * m /* r2 */, class xRay3 * r /* r17 */, class xIsect * isect /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C07C0 -> 0x1C0B78 + class xRay3 xfr; // r29+0x90 + class xBox sbox; // r29+0x70 + class xVec3 scale; // r29+0xC0 + class xMat4x3 mnormal; // r29+0x30 + float len2; // r4 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0B80 -> 0x001C0D10 +*/ +// Range: 0x1C0B80 -> 0x1C0D10 +void xBoundHitsBound(class xBound * a /* r18 */, class xBound * b /* r17 */, class xCollis * c /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0B80 -> 0x1C0D10 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0D10 -> 0x001C0F68 +*/ +// Range: 0x1C0D10 -> 0x1C0F68 +void xBoundGetSphere(class xSphere & o /* r2 */, class xBound & bound /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0D10 -> 0x1C0F68 + class xMat4x3 & mat; // r9 + class xVec3 v; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0F70 -> 0x001C105C +*/ +// Range: 0x1C0F70 -> 0x1C105C +void xBoundGetBox(class xBox & box /* r2 */, class xBound & bound /* r6 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0F70 -> 0x1C105C + class xSphere & o; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xBound.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1060 -> 0x001C1214 +*/ +// Range: 0x1C1060 -> 0x1C1214 +void xBoundUpdate(class xBound * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1060 -> 0x1C1214 + } +} + diff --git a/dwarf/SB/Core/x/xCM.cpp b/dwarf/SB/Core/x/xCM.cpp new file mode 100644 index 000000000..e96e344f2 --- /dev/null +++ b/dwarf/SB/Core/x/xCM.cpp @@ -0,0 +1,414 @@ +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x508AA0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static char * preset_names[5]; // size: 0x14, address: 0x0 +float dtscale; // size: 0x4, address: 0x50F188 +static float credits_time; // size: 0x4, address: 0x50F18C +static class xCreditsData * credits_data; // size: 0x4, address: 0x51032C +static unsigned int credits_parentID; // size: 0x4, address: 0x510330 +class callback text_cb; // size: 0xC, address: 0x4F87A8 +class xCMcredits { + // total size: 0x38 +public: + unsigned int credits_size; // offset 0x0, size 0x4 + float len; // offset 0x4, size 0x4 + unsigned int flags; // offset 0x8, size 0x4 + class sxy in; // offset 0xC, size 0x8 + class sxy out; // offset 0x14, size 0x8 + float scroll_rate; // offset 0x1C, size 0x4 + float lifetime; // offset 0x20, size 0x4 + class fade fin; // offset 0x24, size 0x8 + class fade fout; // offset 0x2C, size 0x8 + unsigned int num_presets; // offset 0x34, size 0x4 +}; +class xCMpreset { + // total size: 0x4C +public: + unsigned short num; // offset 0x0, size 0x2 + unsigned short align; // offset 0x2, size 0x2 + float delay; // offset 0x4, size 0x4 + float innerspace; // offset 0x8, size 0x4 + class xCMtextbox box[2]; // offset 0xC, size 0x40 +}; +class xCMhunk { + // total size: 0x18 +public: + unsigned int hunk_size; // offset 0x0, size 0x4 + unsigned int preset; // offset 0x4, size 0x4 + float t0; // offset 0x8, size 0x4 + float t1; // offset 0xC, size 0x4 + char * text1; // offset 0x10, size 0x4 + char * text2; // offset 0x14, size 0x4 +}; +class xCMtexture { + // total size: 0x20 +public: + unsigned int assetID; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float x; // offset 0x8, size 0x4 + float y; // offset 0xC, size 0x4 + float w; // offset 0x10, size 0x4 + float h; // offset 0x14, size 0x4 + class RwTexture * texture; // offset 0x18, size 0x4 + unsigned int pad; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class xCMheader { + // total size: 0x18 +public: + unsigned int magic; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int crdID; // offset 0x8, size 0x4 + unsigned int state; // offset 0xC, size 0x4 + float total_time; // offset 0x10, size 0x4 + unsigned int total_size; // offset 0x14, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class sxy { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class fade { + // total size: 0x8 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xCreditsData { + // total size: 0x4 +public: + unsigned int dummy; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xColorUnpack { + // total size: 0x4 +public: + unsigned char a; // offset 0x0, size 0x1 + unsigned char b; // offset 0x1, size 0x1 + unsigned char g; // offset 0x2, size 0x1 + unsigned char r; // offset 0x3, size 0x1 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xCMtextbox { + // total size: 0x20 +public: + unsigned int font; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + class sxy char_size; // offset 0x8, size 0x8 + class sxy char_spacing; // offset 0x10, size 0x8 + class sxy box; // offset 0x18, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5CD0 -> 0x003D5D04 +*/ +// Range: 0x3D5CD0 -> 0x3D5D04 +void xCMstop() { + // Blocks + /* anonymous block */ { + // Range: 0x3D5CD0 -> 0x3D5D04 + } +} + +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5D10 -> 0x003D5D30 +*/ +// Range: 0x3D5D10 -> 0x3D5D30 +void xCMstart(class xCreditsData * data /* r2 */, class xBase * parent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5D10 -> 0x3D5D30 + } +} + +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5D30 -> 0x003D5D3C +*/ +// Range: 0x3D5D30 -> 0x3D5D3C +void xCMrender() { + // Blocks + /* anonymous block */ { + // Range: 0x3D5D30 -> 0x3D5D3C + } +} + +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5D40 -> 0x003D5DAC +*/ +// Range: 0x3D5D40 -> 0x3D5DAC +void xCMupdate(float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5D40 -> 0x3D5DAC + } +} + +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5DB0 -> 0x003D7104 +*/ +// Range: 0x3D5DB0 -> 0x3D7104 +static unsigned int xCMrender(float time /* r23 */, class xCreditsData * data /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5DB0 -> 0x3D7104 + class xCMheader * hdr; // r2 + char * dp; // r18 + class xCMcredits * cp; // r2 + class xCMpreset * pp; // r29+0xD0 + class xCMhunk * hp; // r17 + float a; // r1 + class xCMpreset * preset; // r16 + float nx; // r5 + float ny; // r22 + float x0; // r24 + float x1; // r22 + float y0; // r21 + float y1; // r20 + float ca; // r21 + class xCMtexture * tex; // r21 + class basic_rect bounds; // r29+0x4C0 + class xtextbox tb; // r29+0x450 + unsigned int alignL; // r10 + unsigned int alignR; // r21 + class basic_rect bounds; // r29+0x440 + class xtextbox tb; // r29+0x3D0 + class basic_rect bounds; // r29+0x3C0 + class xtextbox tb; // r29+0x350 + } +} + +/* + Compile unit: C:\SB\Core\x\xCM.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D7110 -> 0x003D7280 +*/ +// Range: 0x3D7110 -> 0x3D7280 +static void xCMprep(class xCreditsData * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D7110 -> 0x3D7280 + class xCMheader * hdr; // r2 + char * dp; // r6 + class xCMcredits * cp; // r2 + class xCMpreset * pp; // r5 + class xCMhunk * hp; // r3 + } +} + diff --git a/dwarf/SB/Core/x/xCamera.cpp b/dwarf/SB/Core/x/xCamera.cpp new file mode 100644 index 000000000..3c19c9d92 --- /dev/null +++ b/dwarf/SB/Core/x/xCamera.cpp @@ -0,0 +1,2818 @@ +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int sCamCollis; // size: 0x4, address: 0x50F914 +signed int xcam_collis_owner_disable; // size: 0x4, address: 0x50F918 +signed int xcam_do_collis; // size: 0x4, address: 0x50E81C +float xcam_collis_radius; // size: 0x4, address: 0x50E820 +float xcam_collis_stiffness; // size: 0x4, address: 0x50E824 +static class RpAtomic * sInvisWallHack; // size: 0x4, address: 0x50F91C +static signed int s_nestlevel; // size: 0x4, address: 0x0 +float gCameraLastFov; // size: 0x4, address: 0x50F920 +static class xMat4x3 sCameraFXMatOld; // size: 0x40, address: 0x540760 +class cameraFXTableEntry sCameraFXTable[3]; // size: 0x24, address: 0x417030 +class cameraFX sCameraFX[10]; // size: 0x2F8, address: 0x5407A0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 m_UnitAxisX; // size: 0xC, address: 0x4F9970 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +void SweptSphereHitsCameraEnt(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x1C4520 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class cameraFX { + // total size: 0x4C +public: + signed int type; // offset 0x0, size 0x4 + signed int flags; // offset 0x4, size 0x4 + float elapsedTime; // offset 0x8, size 0x4 + float maxTime; // offset 0xC, size 0x4 + union { // inferred + class cameraFXShake shake; // offset 0x10, size 0x3C + class cameraFXZoom zoom; // offset 0x10, size 0x20 + }; +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xSweptSphere { + // total size: 0x150 +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 + float dist; // offset 0x1C, size 0x4 + class xiMat4x3Union basis; // offset 0x20, size 0x40 + class xiMat4x3Union invbasis; // offset 0x60, size 0x40 + class xBox box; // offset 0xA0, size 0x18 + class xQCData qcd; // offset 0xB8, size 0x20 + float boxsize; // offset 0xD8, size 0x4 + float curdist; // offset 0xDC, size 0x4 + class xVec3 contact; // offset 0xE0, size 0xC + class xVec3 polynorm; // offset 0xEC, size 0xC + unsigned int oid; // offset 0xF8, size 0x4 + void * optr; // offset 0xFC, size 0x4 + class xModelInstance * mptr; // offset 0x100, size 0x4 + signed int hitIt; // offset 0x104, size 0x4 + class xVec3 worldPos; // offset 0x108, size 0xC + class xVec3 worldContact; // offset 0x114, size 0xC + class xVec3 worldNormal; // offset 0x120, size 0xC + class xVec3 worldTangent; // offset 0x12C, size 0xC + class xVec3 worldPolynorm; // offset 0x138, size 0xC +}; +class xFFX { + // total size: 0x0 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class rxReq { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class cameraFXTableEntry { + // total size: 0xC +public: + signed int type; // offset 0x0, size 0x4 + void (* func)(class cameraFX *, float, class xMat4x3 *, class xMat4x3 *); // offset 0x4, size 0x4 + void (* funcKill)(class cameraFX *); // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class cameraFXZoom { + // total size: 0x20 +public: + float holdTime; // offset 0x0, size 0x4 + float vel; // offset 0x4, size 0x4 + float accel; // offset 0x8, size 0x4 + float distance; // offset 0xC, size 0x4 + unsigned int mode; // offset 0x10, size 0x4 + float velCur; // offset 0x14, size 0x4 + float distanceCur; // offset 0x18, size 0x4 + float holdTimeCur; // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class cameraFXShake { + // total size: 0x3C +public: + float magnitude; // offset 0x0, size 0x4 + class xVec3 dir; // offset 0x4, size 0xC + float cycleTime; // offset 0x10, size 0x4 + float cycleMax; // offset 0x14, size 0x4 + float dampen; // offset 0x18, size 0x4 + float dampenRate; // offset 0x1C, size 0x4 + float rotate_magnitude; // offset 0x20, size 0x4 + float radius; // offset 0x24, size 0x4 + class xVec3 * epicenterP; // offset 0x28, size 0x4 + class xVec3 epicenter; // offset 0x2C, size 0xC + class xVec3 * player; // offset 0x38, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xiMat4x3Union { + // total size: 0x40 +public: + union { // inferred + class xMat4x3 xm; // offset 0x0, size 0x40 + class RwMatrixTag im; // offset 0x0, size 0x40 + }; +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1220 -> 0x001C1C4C +*/ +// Range: 0x1C1220 -> 0x1C1C4C +void update(class xBinaryCamera * this /* r19 */, float dt /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1220 -> 0x1C1C4C + class xVec3 & A; // r18 + class xVec3 & B; // r17 + class xVec3 & C; // r16 + class xVec3 CA; // r29+0x138 + float dCA; // r20 + float yaw_start; // r22 + float yaw_end; // r23 + class xVec3 Q1; // r29+0x128 + class xVec3 Q2; // r29+0x118 + float yaw_Q1; // r21 + float yaw_Q2; // r20 + float dyaw1; // r21 + float dyaw2; // r20 + float fov; // r2 + float max_dyaw; // r29+0x150 + float sstick; // r20 + class analog_data & stick; // r16 + float yaw_diff; // r29+0x14C + float max_yaw_diff; // r29+0x148 + unsigned int bn; // r4 + unsigned int bp; // r3 + unsigned int aa; // r29+0x144 + float d; // r22 + float h; // r21 + float hf; // r20 + float s; // r6 + float s; // r6 + class xVec3 end_loc; // r29+0x108 + float sloc; // r4 + class xVec3 cam_loc; // r29+0xF8 + class xVec3 heading; // r29+0xE8 + float heading_dist2; // r1 + class xQuat end_dir; // r29+0xD0 + class xMat3x3 mat; // r29+0xA0 + float sdir; // r29+0x150 + class xMat3x3 mat; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1C50 -> 0x001C1C58 +*/ +// Range: 0x1C1C50 -> 0x1C1C58 +void stop(class xBinaryCamera * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1C50 -> 0x1C1C58 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1C60 -> 0x001C1C98 +*/ +// Range: 0x1C1C60 -> 0x1C1C98 +void start(class xBinaryCamera * this /* r16 */, class xCamera & camera /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1C60 -> 0x1C1C98 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1CA0 -> 0x001C1CB0 +*/ +// Range: 0x1C1CA0 -> 0x1C1CB0 +void init(class xBinaryCamera * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1CA0 -> 0x1C1CB0 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1CB0 -> 0x001C1E48 +*/ +// Range: 0x1C1CB0 -> 0x1C1E48 +void xCameraRotate(class xCamera * cam /* r16 */, class xVec3 & v /* r17 */, float roll /* r23 */, float time /* r22 */, float accel /* r21 */, float decl /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1CB0 -> 0x1C1E48 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C1E50 -> 0x001C2024 +*/ +// Range: 0x1C1E50 -> 0x1C2024 +void xCameraRotate(class xCamera * cam /* r17 */, class xMat3x3 & m /* r16 */, float time /* r22 */, float accel /* r21 */, float decl /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C1E50 -> 0x1C2024 + class xVec3 eu; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2030 -> 0x001C21AC +*/ +// Range: 0x1C2030 -> 0x1C21AC +void xCameraLookYPR(class xCamera * cam /* r16 */, unsigned int flags /* r2 */, float yaw /* r29+0x30 */, float pitch /* r21 */, float roll /* r20 */, float tm /* r29+0x30 */, float tm_acc /* r29+0x30 */, float tm_dec /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2030 -> 0x1C21AC + float s; // r22 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C21B0 -> 0x001C2364 +*/ +// Range: 0x1C21B0 -> 0x1C2364 +void xCameraLook(class xCamera * cam /* r16 */, unsigned int flags /* r2 */, class xQuat * orn_goal /* r2 */, float tm /* r29+0x30 */, float tm_acc /* r29+0x30 */, float tm_dec /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C21B0 -> 0x1C2364 + float s; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2370 -> 0x001C240C +*/ +// Range: 0x1C2370 -> 0x1C240C +void xCameraFOV(class xCamera * cam /* r2 */, float fov /* r29+0x10 */, float maxSpeed /* r29+0x10 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2370 -> 0x1C240C + float speed; // r3 + float currentFOV; // r2 + float len; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2410 -> 0x001C24E8 +*/ +// Range: 0x1C2410 -> 0x1C24E8 +void xCameraMove(class xCamera * cam /* r2 */, class xVec3 & loc /* r2 */, float maxSpeed /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2410 -> 0x1C24E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C24F0 -> 0x001C2540 +*/ +// Range: 0x1C24F0 -> 0x1C2540 +void xCameraMove(class xCamera * cam /* r2 */, class xVec3 & loc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C24F0 -> 0x1C2540 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2540 -> 0x001C2760 +*/ +// Range: 0x1C2540 -> 0x1C2760 +void xCameraMove(class xCamera * cam /* r16 */, unsigned int flags /* r2 */, float dgoal /* r21 */, float hgoal /* r29+0x40 */, float pgoal /* r20 */, float tm /* r29+0x40 */, float tm_acc /* r29+0x40 */, float tm_dec /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2540 -> 0x1C2760 + float s; // r22 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2760 -> 0x001C27AC +*/ +// Range: 0x1C2760 -> 0x1C27AC +void xCameraDoCollisions(signed int do_collis /* r2 */, signed int owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2760 -> 0x1C27AC + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C27B0 -> 0x001C27B8 +*/ +// Range: 0x1C27B0 -> 0x1C27B8 +void xCameraSetTargetOMatrix(class xCamera * cam /* r2 */, class xMat4x3 * mat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C27B0 -> 0x1C27B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C27C0 -> 0x001C27C8 +*/ +// Range: 0x1C27C0 -> 0x1C27C8 +void xCameraSetTargetMatrix(class xCamera * cam /* r2 */, class xMat4x3 * mat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C27C0 -> 0x1C27C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C27D0 -> 0x001C27E4 +*/ +// Range: 0x1C27D0 -> 0x1C27E4 +void xCameraSetScene(class xCamera * cam /* r2 */, class xScene * sc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C27D0 -> 0x1C27E4 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C27F0 -> 0x001C27F8 +*/ +// Range: 0x1C27F0 -> 0x1C27F8 +void xCameraShowRaster(class xCamera * cam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C27F0 -> 0x1C27F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2800 -> 0x001C2838 +*/ +// Range: 0x1C2800 -> 0x1C2838 +void xCameraEnd(class xCamera * cam /* r16 */, float seconds /* r29+0x20 */, signed int update_scrn_fx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2800 -> 0x1C2838 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2840 -> 0x001C2884 +*/ +// Range: 0x1C2840 -> 0x1C2884 +void xCameraFXEnd(class xCamera * cam /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2840 -> 0x1C2884 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2890 -> 0x001C29D0 +*/ +// Range: 0x1C2890 -> 0x1C29D0 +void xCameraFXUpdate(class xCamera * cam /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2890 -> 0x1C29D0 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C29D0 -> 0x001C2C78 +*/ +// Range: 0x1C29D0 -> 0x1C2C78 +void xCameraFXShakeUpdate(class cameraFX * f /* r17 */, float dt /* r29+0x50 */, class xMat4x3 * m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C29D0 -> 0x1C2C78 + float x; // r22 + float y; // r20 + float scale; // r21 + float noise; // r20 + class xVec3 e; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2C80 -> 0x001C2D40 +*/ +// Range: 0x1C2C80 -> 0x1C2D40 +void xCameraFXShake(float maxTime /* r29 */, float magnitude /* r29 */, float cycleMax /* r29 */, float rotate_magnitude /* r29 */, float radius /* r29 */, class xVec3 * epicenter /* r2 */, class xVec3 * player /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2C80 -> 0x1C2D40 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2D40 -> 0x001C2E8C +*/ +// Range: 0x1C2D40 -> 0x1C2E8C +void xCameraFXZoomUpdate(class cameraFX * f /* r7 */, float dt /* r29+0x10 */, class xMat4x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2D40 -> 0x1C2E8C + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2E90 -> 0x001C2EDC +*/ +// Range: 0x1C2E90 -> 0x1C2EDC +void xCameraFXBegin(class xCamera * cam /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2E90 -> 0x1C2EDC + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2EE0 -> 0x001C2F20 +*/ +// Range: 0x1C2EE0 -> 0x1C2F20 +void xCameraBegin(class xCamera * cam /* r16 */, signed int clear /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2EE0 -> 0x1C2F20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2F20 -> 0x001C2FC4 +*/ +// Range: 0x1C2F20 -> 0x1C2FC4 +void xCameraUpdate(class xCamera * cam /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2F20 -> 0x1C2FC4 + signed int i; // r18 + signed int num_updates; // r17 + float sdt; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C2FD0 -> 0x001C4518 +*/ +// Range: 0x1C2FD0 -> 0x1C4518 +static void _xCameraUpdate(class xCamera * cam /* r16 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C2FD0 -> 0x1C4518 + float wcvx; // r24 + float wcvy; // r23 + float wcvz; // r22 + float m; // r20 + float dcv; // r27 + float hcv; // r26 + float pcv; // r25 + float tnext; // r24 + float dtg; // r23 + float htg; // r22 + float ptg; // r3 + float dsv; // r6 + float hsv; // r7 + float psv; // r8 + float T_inv; // r2 + float T_inv; // r1 + float it; // r2 + float ot; // r10 + float T_inv; // r29+0x310 + float dpv; // r4 + float hpv; // r7 + float ppv; // r1 + float vax; // r5 + float vay; // r7 + float vaz; // r4 + float s; // r6 + float dtg; // r5 + float dtg; // r5 + float dtg; // r5 + float htg; // r29+0x310 + float htg; // r29+0x310 + float htg; // r29+0x310 + float ptg; // r29+0x310 + float dphi; // r22 + float dplo; // r29+0x310 + float ptg; // r6 + float ptg; // r6 + class xVec3 oeu; // r29+0x300 + class xVec3 eu; // r29+0x2F0 + float m; // r20 + float ycv; // r26 + float pcv; // r25 + float rcv; // r24 + float tnext; // r23 + float ytg; // r22 + float ptg; // r20 + float rtg; // r29+0x310 + float ysv; // r5 + float psv; // r4 + float rsv; // r3 + float T_inv; // r3 + float T_inv; // r2 + float it; // r2 + float ot; // r10 + float T_inv; // r1 + float ypv; // r3 + float ppv; // r4 + float rpv; // r6 + float vax; // r29+0x310 + float vay; // r2 + float vaz; // r3 + float ytg; // r29+0x310 + float ptg; // r29+0x310 + float rtg; // r29+0x310 + class xQuat oq; // r29+0x2A0 + class xQuat qdiff_o_c; // r29+0x290 + class xRot rot_cv; // r29+0x280 + class xVec3 f; // r29+0x2E0 + float atx; // r2 + float aty; // r11 + float atz; // r1 + float dist; // r3 + float dx__; // r29+0x310 + float dz__; // r29+0x310 + float dist2; // r5 + float dist_inv; // r29+0x310 + float mpx; // r10 + float mpy; // r9 + float mpz; // r8 + float s; // r3 + class xMat3x3 des_mat; // r29+0x250 + class xMat3x3 latgt; // r29+0x220 + float ang_dist; // r20 + class xQuat a; // r29+0x210 + class xQuat b; // r29+0x200 + class xQuat o; // r29+0x1F0 + float s; // r29+0x310 + class xQuat desq; // r29+0x1E0 + class xQuat difq; // r29+0x1D0 + class xQuat newq; // r29+0x1C0 + class xSweptSphere sws; // r29+0x70 + class xVec3 tgtpos; // r29+0x2D0 + class xRay3 ray; // r29+0x40 + float one_len; // r3 + float stopdist; // r2 + float last_dt; // @ 0x0050E828 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4520 -> 0x001C484C +*/ +// Range: 0x1C4520 -> 0x1C484C +void SweptSphereHitsCameraEnt(class xRay3 * ray /* r18 */, class xQCData * qcd /* r2 */, class xEnt * ent /* r17 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4520 -> 0x1C484C + class xSweptSphere * sws; // r16 + unsigned int result; // r5 + float oldrad; // r20 + class xBox tmpbox; // r29+0xD0 + class xBox tmpbox; // r29+0xB0 + class xRay3 lr; // r29+0x80 + class xMat3x3 mn; // r29+0x50 + class xModelInstance * collmod; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4850 -> 0x001C49A0 +*/ +// Range: 0x1C4850 -> 0x1C49A0 +static void xCam_worldtocyl(float & d /* r2 */, float & h /* r2 */, float & p /* r18 */, class xMat4x3 * tgt_mat /* r17 */, class xVec3 * v /* r2 */, unsigned int flags /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4850 -> 0x1C49A0 + float lx; // r29+0x40 + float lz; // r29+0x40 + float dx__; // r29+0x40 + float dz__; // r29+0x40 + float dist2; // r3 + float dist_inv; // r29+0x40 + float tgt_p; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C49A0 -> 0x001C4B60 +*/ +// Range: 0x1C49A0 -> 0x1C4B60 +static void xCam_buildbasis(class xCamera * cam /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C49A0 -> 0x1C4B60 + float d2d; // r5 + float dx__; // r4 + float dz__; // r3 + float dist2; // r2 + float dist_inv; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4B60 -> 0x001C4DD0 +*/ +// Range: 0x1C4B60 -> 0x1C4DD0 +void xCameraReset(class xCamera * cam /* r16 */, float d /* r23 */, float h /* r22 */, float pitch /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4B60 -> 0x1C4DD0 + float goal_p; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4DD0 -> 0x001C4E08 +*/ +// Range: 0x1C4DD0 -> 0x1C4E08 +void xCameraExit(class xCamera * cam /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4DD0 -> 0x1C4E08 + } +} + +/* + Compile unit: C:\SB\Core\x\xCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4E10 -> 0x001C4EE0 +*/ +// Range: 0x1C4E10 -> 0x1C4EE0 +void xCameraInit(class xCamera * cam /* r18 */, unsigned int width /* r17 */, unsigned int height /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4E10 -> 0x1C4EE0 + } +} + diff --git a/dwarf/SB/Core/x/xClimate.cpp b/dwarf/SB/Core/x/xClimate.cpp new file mode 100644 index 000000000..6d2114527 --- /dev/null +++ b/dwarf/SB/Core/x/xClimate.cpp @@ -0,0 +1,1154 @@ +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class _tagClimate * sClimate; // size: 0x4, address: 0x50F924 +float snow_life; // size: 0x4, address: 0x50E82C +static class xVec3 snow_vel; // size: 0xC, address: 0x4F8060 +static class xVec3 snow_dvel; // size: 0xC, address: 0x4F8070 +unsigned int gPTankDisable; // size: 0x4, address: 0x505BB8 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _tagClimate { + // total size: 0x24 +public: + class _tagRain rain; // offset 0x0, size 0x10 + class _tagWind wind; // offset 0x10, size 0x14 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class _tagWind { + // total size: 0x14 +public: + float strength; // offset 0x0, size 0x4 + float angle; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xScene { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xParSys { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class _tagRain { + // total size: 0x10 +public: + signed int rain; // offset 0x0, size 0x4 + float strength; // offset 0x4, size 0x4 + class zParEmitter * rain_emitter; // offset 0x8, size 0x4 + class zParEmitter * snow_emitter; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4F20 -> 0x001C4F28 +*/ +// Range: 0x1C4F20 -> 0x1C4F28 +void xClimateUpdate(class _tagClimate * climate /* r2 */, float seconds /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4F20 -> 0x1C4F28 + } +} + +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4F30 -> 0x001C5494 +*/ +// Range: 0x1C4F30 -> 0x1C5494 +static void UpdateRain(class _tagClimate * climate /* r20 */, float seconds /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4F30 -> 0x1C5494 + class _tagRain * r; // r2 + class xParEmitterCustomSettings info; // r29+0xC0 + signed int total_rain_drops; // r16 + signed int i; // r21 + signed int total_snow_flakes; // r19 + signed int i; // r18 + float perc; // r1 + signed int num; // r21 + class xVec3 * pos; // r20 + class xVec3 * vel; // r19 + class xVec3 * pp; // r18 + class xVec3 * vp; // r17 + signed int i; // r16 + float xx; // r5 + float zz; // r4 + float perc; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C54A0 -> 0x001C54B8 +*/ +// Range: 0x1C54A0 -> 0x1C54B8 +void xClimateSetRain(float stre /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C54A0 -> 0x1C54B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C54C0 -> 0x001C54D4 +*/ +// Range: 0x1C54C0 -> 0x1C54D4 +void xClimateSetSnow(float stre /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C54C0 -> 0x1C54D4 + } +} + +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C54E0 -> 0x001C5634 +*/ +// Range: 0x1C54E0 -> 0x1C5634 +void xClimateInitAsset(class _tagClimate * climate /* r18 */, class xEnvAsset * easset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C54E0 -> 0x1C5634 + class _tagWind * w; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xClimate.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C5640 -> 0x001C56B4 +*/ +// Range: 0x1C5640 -> 0x1C56B4 +void xClimateInit(class _tagClimate * climate /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C5640 -> 0x1C56B4 + } +} + diff --git a/dwarf/SB/Core/x/xClumpColl.cpp b/dwarf/SB/Core/x/xClumpColl.cpp new file mode 100644 index 000000000..6dc7a41b7 --- /dev/null +++ b/dwarf/SB/Core/x/xClumpColl.cpp @@ -0,0 +1,958 @@ +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned char xClumpColl_FilterFlags; // size: 0x1, address: 0x50F070 +signed int LeafNodeBoxPolyIntersect(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x302430 +signed int LeafNodeSpherePolyIntersect(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x302660 +signed int LeafNodeLinePolyIntersect(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x302860 +class RpAtomic * AddAtomicCB(class RpAtomic *, void *); // size: 0x0, address: 0x3042C0 +signed int rwPip2GeometryOffset; // size: 0x4, address: 0x50FC18 +signed int rwPip2AtomicOffset; // size: 0x4, address: 0x50FC1C +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class xClumpCollV3dGradient { + // total size: 0x18 +public: + float dydx; // offset 0x0, size 0x4 + float dzdx; // offset 0x4, size 0x4 + float dxdy; // offset 0x8, size 0x4 + float dzdy; // offset 0xC, size 0x4 + float dxdz; // offset 0x10, size 0x4 + float dydz; // offset 0x14, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class IntersectionCallBack { + // total size: 0x4 +public: + union { // inferred + class RpWorldSector * (* sectorCB)(class RpIntersection *, class RpWorldSector *, void *); // offset 0x0, size 0x4 + class RpCollisionTriangle * (* worldCB)(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // offset 0x0, size 0x4 + class RpAtomic * (* atomicCB)(class RpIntersection *, class RpWorldSector *, class RpAtomic *, float, void *); // offset 0x0, size 0x4 + }; +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class TempAtomicList { + // total size: 0x10 +public: + class RpAtomic * atomic; // offset 0x0, size 0x4 + class RpGeometry * geom; // offset 0x4, size 0x4 + class RpMeshHeader * meshHeader; // offset 0x8, size 0x4 + class RwMeshCache * meshCache; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rwPS2AllClusterQuickInfo { + // total size: 0x8 +public: + __int128 * data; // offset 0x0, size 0x4 + unsigned int stride; // offset 0x4, size 0x4 +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class PolyLineTestParam { + // total size: 0x50 +public: + class RwV3d start; // offset 0x0, size 0xC + class RpWorldSector * worldSector; // offset 0xC, size 0x4 + class RwV3d delta; // offset 0x10, size 0xC + class xClumpCollV3dGradient grad; // offset 0x1C, size 0x18 + class RwLine line; // offset 0x34, size 0x18 + class CallBackParam * cbParam; // offset 0x4C, size 0x4 +}; +class TestSphere { + // total size: 0x8 +public: + class RwSphere * sphere; // offset 0x0, size 0x4 + float recipRadius; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class CallBackParam { + // total size: 0xC +public: + class RpIntersection * intersection; // offset 0x0, size 0x4 + class IntersectionCallBack u; // offset 0x4, size 0x4 + void * data; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class PolyTestParam { + // total size: 0x24 +public: + class RwBBox bbox; // offset 0x0, size 0x18 + class RpWorldSector * worldSector; // offset 0x18, size 0x4 + void * leafTestData; // offset 0x1C, size 0x4 + class CallBackParam * cbParam; // offset 0x20, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RwMeshCache { + // total size: 0x8 +public: + unsigned int lengthOfMeshesArray; // offset 0x0, size 0x4 + class RwResEntry * meshes[1]; // offset 0x4, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RpMesh { + // total size: 0xC +public: + unsigned short * indices; // offset 0x0, size 0x4 + unsigned int numIndices; // offset 0x4, size 0x4 + class RpMaterial * material; // offset 0x8, size 0x4 +}; +class rwPS2AllResEntryHeader { + // total size: 0x1B0 +public: + signed int refCnt; // offset 0x0, size 0x4 + signed int clrCnt; // offset 0x4, size 0x4 + __int128 * data; // offset 0x8, size 0x4 + unsigned int numVerts; // offset 0xC, size 0x4 + unsigned int objIdentifier; // offset 0x10, size 0x4 + unsigned int meshIdentifier; // offset 0x14, size 0x4 + signed int batchSize; // offset 0x18, size 0x4 + signed int numBatches; // offset 0x1C, size 0x4 + signed int batchesPerTag; // offset 0x20, size 0x4 + signed int morphStart; // offset 0x24, size 0x4 + signed int morphFinish; // offset 0x28, size 0x4 + signed int morphNum; // offset 0x2C, size 0x4 + class rwPS2AllClusterQuickInfo clquickinfo[12]; // offset 0x30, size 0x60 + class rwPS2AllFieldRec fieldRec[12]; // offset 0x90, size 0x120 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwSplitBits { + // total size: 0x4 +public: + union { // inferred + float nReal; // offset 0x0, size 0x4 + signed int nInt; // offset 0x0, size 0x4 + unsigned int nUInt; // offset 0x0, size 0x4 + }; +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class rwPS2AllFieldRec { + // total size: 0x18 +public: + signed int numVerts; // offset 0x0, size 0x4 + signed int morphNumVerts; // offset 0x4, size 0x4 + signed int dataoffset; // offset 0x8, size 0x4 + signed int morphDataoffset; // offset 0xC, size 0x4 + signed short skip; // offset 0x10, size 0x2 + signed short morphSkip; // offset 0x12, size 0x2 + signed short reverse; // offset 0x14, size 0x2 + unsigned char vuoffset; // offset 0x16, size 0x1 + unsigned char pad[1]; // offset 0x17, size 0x1 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class nodeInfo { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int index; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301C40 -> 0x003020F0 +*/ +// Range: 0x301C40 -> 0x3020F0 +static signed int FastIntersectSphereTriangle(class RwSphere * sphere /* r2 */, class RwV3d * v0 /* r2 */, class RwV3d * v1 /* r2 */, class RwV3d * v2 /* r2 */, class RwV3d * normal /* r2 */, float * distance /* r2 */, class RwV3d * vc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301C40 -> 0x3020F0 + float nDotN; // r15 + float distToPlane; // r1 + float sphereRadiusSquared; // r9 + float length2; // r1 + float factor; // r10 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003020F0 -> 0x00302430 +*/ +// Range: 0x3020F0 -> 0x302430 +class xClumpCollBSPTree * xClumpColl_ForAllIntersections(class xClumpCollBSPTree * tree /* r16 */, class RpIntersection * intersection /* r2 */, class RpCollisionTriangle * (* callBack)(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *) /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3020F0 -> 0x302430 + class CallBackParam cbParam; // r29+0xE0 + class PolyLineTestParam isData; // r29+0x80 + class PolyTestParam isData; // r29+0x50 + class TestSphere testSphere; // r29+0xD8 + class PolyTestParam isData; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00302430 -> 0x00302660 +*/ +// Range: 0x302430 -> 0x302660 +static signed int LeafNodeBoxPolyIntersect(class xClumpCollBSPTriangle * triangles /* r20 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x302430 -> 0x302660 + class PolyTestParam * isData; // r23 + class CallBackParam * cbParam; // r19 + class RwV3d * v1; // r18 + class RwV3d * v2; // r17 + class RpCollisionTriangle collisionTri; // r29+0xA0 + float lengthSq; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00302660 -> 0x00302860 +*/ +// Range: 0x302660 -> 0x302860 +static signed int LeafNodeSpherePolyIntersect(class xClumpCollBSPTriangle * triangles /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x302660 -> 0x302860 + class PolyTestParam * isData; // r2 + class CallBackParam * cbParam; // r17 + class TestSphere * testSphere; // r16 + class RwV3d * v0; // r2 + class RwV3d * v1; // r2 + class RwV3d * v2; // r2 + float distance; // r29+0x9C + class RpCollisionTriangle collisionTri; // r29+0x70 + class RwV3d vc[3]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00302860 -> 0x00302BF8 +*/ +// Range: 0x302860 -> 0x302BF8 +static signed int LeafNodeLinePolyIntersect(class xClumpCollBSPTriangle * triangles /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x302860 -> 0x302BF8 + class PolyLineTestParam * isData; // r17 + class CallBackParam * cbParam; // r16 + class RwV3d * v0; // r6 + class RwV3d * v1; // r5 + class RwV3d * v2; // r4 + float distance; // r29+0x8C + signed int result; // r2 + class RpCollisionTriangle collisionTri; // r29+0x40 + class RwV3d vTmp; // r29+0x80 + class RwV3d vTmp2; // r29+0x70 + float recipLength; // r3 + float lengthSq; // r1 + float _result; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00302C00 -> 0x00303608 +*/ +// Range: 0x302C00 -> 0x303608 +class xClumpCollBSPTree * xClumpColl_ForAllCapsuleLeafNodeIntersections(class xClumpCollBSPTree * tree /* r23 */, class RwLine * line /* r2 */, float radius /* r29+0xD8 */, class xClumpCollV3dGradient * grad /* r21 */, signed int (* callBack)(class xClumpCollBSPTriangle *, void *) /* r30 */, void * data /* r29+0xDC */) { + // Blocks + /* anonymous block */ { + // Range: 0x302C00 -> 0x303608 + signed int nStack; // r20 + class nodeInfo nodeStack[33]; // r29+0x420 + class RwLine lineStack[33]; // r29+0x100 + class RwLine currLine; // r29+0xE0 + class RwSplitBits lStart; // r29+0x53C + class RwSplitBits lEnd; // r29+0x538 + class RwSplitBits rStart; // r29+0x534 + class RwSplitBits rEnd; // r29+0x530 + class xClumpCollBSPBranchNode * branch; // r4 + float delta; // r5 + float delta; // r5 + float delta; // r6 + float delta; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00303610 -> 0x00304008 +*/ +// Range: 0x303610 -> 0x304008 +class xClumpCollBSPTree * xClumpColl_ForAllLineLeafNodeIntersections(class xClumpCollBSPTree * tree /* r23 */, class RwLine * line /* r2 */, class xClumpCollV3dGradient * grad /* r21 */, signed int (* callBack)(class xClumpCollBSPTriangle *, void *) /* r30 */, void * data /* r29+0xDC */) { + // Blocks + /* anonymous block */ { + // Range: 0x303610 -> 0x304008 + signed int nStack; // r20 + class nodeInfo nodeStack[33]; // r29+0x420 + class RwLine lineStack[33]; // r29+0x100 + class RwLine currLine; // r29+0xE0 + class RwSplitBits lStart; // r29+0x53C + class RwSplitBits lEnd; // r29+0x538 + class RwSplitBits rStart; // r29+0x534 + class RwSplitBits rEnd; // r29+0x530 + class xClumpCollBSPBranchNode * branch; // r4 + float delta; // r5 + float delta; // r5 + float delta; // r6 + float delta; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304010 -> 0x00304150 +*/ +// Range: 0x304010 -> 0x304150 +class xClumpCollBSPTree * xClumpColl_ForAllBoxLeafNodeIntersections(class xClumpCollBSPTree * tree /* r20 */, class RwBBox * box /* r19 */, signed int (* callBack)(class xClumpCollBSPTriangle *, void *) /* r18 */, void * data /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304010 -> 0x304150 + signed int nStack; // r16 + class nodeInfo nodeStack[33]; // r29+0x60 + class xClumpCollBSPBranchNode * branch; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304150 -> 0x003042B8 +*/ +// Range: 0x304150 -> 0x3042B8 +void xClumpColl_InstancePointers(class xClumpCollBSPTree * tree /* r17 */, class RpClump * clump /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304150 -> 0x3042B8 + signed int i; // r5 + signed int numAtom; // r16 + class TempAtomicList * atomicList; // r16 + class TempAtomicList * iterList; // r29+0x4C + class TempAtomicList * alist; // r13 + signed int vertIndex; // r4 + signed int numMeshes; // r12 + signed int meshIndex; // r11 + class RpMesh * mesh; // r10 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003042C0 -> 0x003043F4 +*/ +// Range: 0x3042C0 -> 0x3043F4 +static class RpAtomic * AddAtomicCB(class RpAtomic * atomic /* r17 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3042C0 -> 0x3043F4 + class TempAtomicList * * tmpList; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xClumpColl.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304400 -> 0x00304480 +*/ +// Range: 0x304400 -> 0x304480 +class xClumpCollBSPTree * xClumpColl_StaticBufferInit(void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304400 -> 0x304480 + unsigned int * header; // r18 + unsigned int numBranchNodes; // r17 + unsigned int numTriangles; // r16 + class xClumpCollBSPTree * tree; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xCollide.cpp b/dwarf/SB/Core/x/xCollide.cpp new file mode 100644 index 000000000..305897b1c --- /dev/null +++ b/dwarf/SB/Core/x/xCollide.cpp @@ -0,0 +1,2268 @@ +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char * g_xCollis_FMT; // size: 0x4, address: 0x0 +static class xCapsule * cb_capsule; // size: 0x4, address: 0x0 +static float cb_dist; // size: 0x4, address: 0x0 +signed int capsuleMethod; // size: 0x4, address: 0x0 +static class xCapsule * cb_cap; // size: 0x4, address: 0x0 +signed int xcollide_docam; // size: 0x4, address: 0x0 +static signed int sSweptSphereHitFound; // size: 0x4, address: 0x50F928 +static class xMat4x3 * sSwsModelMat; // size: 0x4, address: 0x50F930 +static signed int sSweptSphereEntFound; // size: 0x4, address: 0x50F934 +static unsigned char sSweptSphereCollType; // size: 0x1, address: 0x50F938 +static class xEnt * sSweptSphereMover; // size: 0x4, address: 0x50F93C +static unsigned int sSweptSphereIgnoreMovers; // size: 0x4, address: 0x50F940 +signed int ConicDepenLeafNodeCB(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +unsigned char xClumpColl_FilterFlags; // size: 0x1, address: 0x50F070 +void SweptSphereHitsEntCB(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x1C70A0 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class RpMorphTarget anim_coll_old_mt; // size: 0x1C, address: 0x568BD0 +signed int SweptSphereModelCB(signed int, signed int, void *); // size: 0x0, address: 0x1C79A0 +signed int _rpCollisionGeometryDataOffset; // size: 0x4, address: 0x50EC80 +class RpCollisionTriangle * SweptSphereHitsEnvCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1C7D50 +signed int SweptSphereLeafNodeCB(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x1C7CA0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +void xCapsuleHitsEnt(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x0 +class RpCollisionTriangle * CapsuleEnvClosestToStartCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x0 +signed int LeafNodeCapsuleIntersect(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x0 +class RpCollisionTriangle * CapsuleEnvClosestToLineCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x0 +class RpCollisionTriangle * CapsuleModelClosestToLineCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x0 +signed int xParabolaEnvCB(class xClumpCollBSPTriangle *, void *); // size: 0x0, address: 0x1CD120 +class RpCollisionTriangle * sphereHitsModelCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1CDCB0 +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xSweptSphere { + // total size: 0x150 +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 + float dist; // offset 0x1C, size 0x4 + class xiMat4x3Union basis; // offset 0x20, size 0x40 + class xiMat4x3Union invbasis; // offset 0x60, size 0x40 + class xBox box; // offset 0xA0, size 0x18 + class xQCData qcd; // offset 0xB8, size 0x20 + float boxsize; // offset 0xD8, size 0x4 + float curdist; // offset 0xDC, size 0x4 + class xVec3 contact; // offset 0xE0, size 0xC + class xVec3 polynorm; // offset 0xEC, size 0xC + unsigned int oid; // offset 0xF8, size 0x4 + void * optr; // offset 0xFC, size 0x4 + class xModelInstance * mptr; // offset 0x100, size 0x4 + signed int hitIt; // offset 0x104, size 0x4 + class xVec3 worldPos; // offset 0x108, size 0xC + class xVec3 worldContact; // offset 0x114, size 0xC + class xVec3 worldNormal; // offset 0x120, size 0xC + class xVec3 worldTangent; // offset 0x12C, size 0xC + class xVec3 worldPolynorm; // offset 0x138, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class ParabolaCBData { + // total size: 0x18 +public: + class xParabola * p; // offset 0x0, size 0x4 + class xVec3 N; // offset 0x4, size 0xC + float d; // offset 0x10, size 0x4 + class xCollis * colls; // offset 0x14, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xCapsule { + // total size: 0x1C +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float r; // offset 0x18, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xConic { + // total size: 0xA0 +public: + class xMat4x3 basis; // offset 0x0, size 0x40 + class xMat4x3 invbasis; // offset 0x40, size 0x40 + float coef[5]; // offset 0x80, size 0x14 + class xVec3 coneBasisCenter; // offset 0x94, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class SweptSphereCollParam { + // total size: 0x8 +public: + class RpGeometry * geometry; // offset 0x0, size 0x4 + class xSweptSphere * sws; // offset 0x4, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class ConeDepen { + // total size: 0x3B0 +public: + class xMat4x3 cullfrust; // offset 0x0, size 0x40 + class xMat4x3 circleBasis; // offset 0x40, size 0x40 + class xMat4x3 circleInvbasis; // offset 0x80, size 0x40 + class xConic conic; // offset 0xC0, size 0xA0 + class xVec3 start; // offset 0x160, size 0xC + float coneCos; // offset 0x16C, size 0x4 + float coneDist; // offset 0x170, size 0x4 + float coneDist2; // offset 0x174, size 0x4 + float coneRadius; // offset 0x178, size 0x4 + float coneHeight; // offset 0x17C, size 0x4 + class xVec3 axis; // offset 0x180, size 0xC + class xVec3 coneRight; // offset 0x18C, size 0xC + class xVec3 coneAt; // offset 0x198, size 0xC + unsigned int numInterval; // offset 0x1A4, size 0x4 + float interval[128]; // offset 0x1A8, size 0x200 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class rxReq { + // total size: 0x0 +}; +class RpV3dGradient { + // total size: 0x18 +public: + float dydx; // offset 0x0, size 0x4 + float dzdx; // offset 0x4, size 0x4 + float dxdy; // offset 0x8, size 0x4 + float dzdy; // offset 0xC, size 0x4 + float dxdz; // offset 0x10, size 0x4 + float dydz; // offset 0x14, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class IntersectionCallBack { + // total size: 0x4 +public: + union { // inferred + class RpWorldSector * (* sectorCB)(class RpIntersection *, class RpWorldSector *, void *); // offset 0x0, size 0x4 + class RpCollisionTriangle * (* worldCB)(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // offset 0x0, size 0x4 + class RpAtomic * (* atomicCB)(class RpIntersection *, class RpWorldSector *, class RpAtomic *, float, void *); // offset 0x0, size 0x4 + }; +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpCollBSPLeafNode { + // total size: 0x4 +public: + unsigned short numPolygons; // offset 0x0, size 0x2 + unsigned short firstPolygon; // offset 0x2, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum _xCollsIdx { + k_XCOLLS_IDX_FLOOR = 0, + k_XCOLLS_IDX_CEIL = 1, + k_XCOLLS_IDX_FRONT = 2, + k_XCOLLS_IDX_LEFT = 3, + k_XCOLLS_IDX_REAR = 4, + k_XCOLLS_IDX_RIGHT = 5, + k_XCOLLS_IDX_COUNT = 6, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xSphereHitsModel_context { + // total size: 0x20 +public: + class xCollis * coll; // offset 0x0, size 0x4 + class RpIntersection localx; // offset 0x4, size 0x1C +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned char leftType; // offset 0x2, size 0x1 + unsigned char rightType; // offset 0x3, size 0x1 + unsigned short leftNode; // offset 0x4, size 0x2 + unsigned short rightNode; // offset 0x6, size 0x2 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class CallBackParam { + // total size: 0x8 +public: + class IntersectionCallBack u; // offset 0x0, size 0x4 + void * data; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpCollBSPTree { + // total size: 0x10 +public: + unsigned int numLeafNodes; // offset 0x0, size 0x4 + class RpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + class RpCollBSPLeafNode * leafNodes; // offset 0x8, size 0x4 + unsigned char pad[4]; // offset 0xC, size 0x4 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwSplitBits { + // total size: 0x4 +public: + union { // inferred + float nReal; // offset 0x0, size 0x4 + signed int nInt; // offset 0x0, size 0x4 + unsigned int nUInt; // offset 0x0, size 0x4 + }; +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xiMat4x3Union { + // total size: 0x40 +public: + union { // inferred + class xMat4x3 xm; // offset 0x0, size 0x40 + class RwMatrixTag im; // offset 0x0, size 0x40 + }; +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class nodeInfo { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int index; // offset 0x4, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xClumpCollV3dGradient { + // total size: 0x18 +public: + float dydx; // offset 0x0, size 0x4 + float dzdx; // offset 0x4, size 0x4 + float dxdy; // offset 0x8, size 0x4 + float dzdy; // offset 0xC, size 0x4 + float dxdz; // offset 0x10, size 0x4 + float dydz; // offset 0x14, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + class xVec3 norm; // offset 0x0, size 0xC + float D; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C57F0 -> 0x001C5918 +*/ +// Range: 0x1C57F0 -> 0x1C5918 +unsigned char xSphereHitsVCircle(class xVec3 & sc /* r2 */, float sr /* r29+0x20 */, class xVec3 & cc /* r2 */, float cr /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C57F0 -> 0x1C5918 + float ydist; // r1 + class xVec2 xzloc1; // r29+0x18 + class xVec2 xzloc2; // r29+0x10 + float max_xzdist; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C5920 -> 0x001C5A80 +*/ +// Range: 0x1C5920 -> 0x1C5A80 +unsigned char xSphereHitsVCylinder(class xVec3 & sc /* r2 */, float sr /* r29+0x20 */, class xVec3 & cc /* r2 */, float cr /* r29+0x20 */, float ch /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C5920 -> 0x1C5A80 + float ydist; // r1 + class xVec2 xzloc1; // r29+0x18 + class xVec2 xzloc2; // r29+0x10 + float max_xzdist; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C5A80 -> 0x001C6550 +*/ +// Range: 0x1C5A80 -> 0x1C6550 +unsigned char xOBBHitsOBB(class xBox & a /* r2 */, class xMat4x3 & amat /* r2 */, class xBox & b /* r2 */, class xMat4x3 & bmat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C5A80 -> 0x1C6550 + class xVec3 & asize; // r2 + class xVec3 & bsize; // r2 + class xVec3 offset; // r29+0xF0 + class xVec3 aoffset; // r29+0xE0 + class xMat3x3 xmat; // r29+0x30 + class xMat3x3 axmat; // r29 + float ar; // r7 + float br; // r1 + float r; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C6550 -> 0x001C686C +*/ +// Range: 0x1C6550 -> 0x1C686C +unsigned char xSphereHitsBound(class xSphere & o /* r2 */, class xBound & b /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C6550 -> 0x1C686C + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C6870 -> 0x001C6A60 +*/ +// Range: 0x1C6870 -> 0x1C6A60 +unsigned char xSphereHitsCapsule(class xVec3 & center /* r2 */, float radius /* r29+0x40 */, class xVec3 & v1 /* r2 */, class xVec3 & v2 /* r2 */, float width /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C6870 -> 0x1C6A60 + class xVec3 d1; // r29+0x30 + class xVec3 d2; // r29+0x20 + float r; // r29+0x40 + float b; // r6 + float q; // r1 + float d; // r5 + float r1; // r3 + float r2; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C6A60 -> 0x001C6C08 +*/ +// Range: 0x1C6A60 -> 0x1C6C08 +signed int xSweptSphereToNonMoving(class xSweptSphere * sws /* r18 */, class xScene * sc /* r17 */, class xEnt * mover /* r2 */, unsigned char collType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C6A60 -> 0x1C6C08 + signed int envcollfound; // r16 + class xRay3 ray; // r29+0x40 + float one_len; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C6C10 -> 0x001C6D44 +*/ +// Range: 0x1C6C10 -> 0x1C6D44 +signed int xSweptSphereToNPC(class xSweptSphere * sws /* r2 */, class xScene * sc /* r2 */, class xEnt * mover /* r2 */, unsigned char collType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C6C10 -> 0x1C6D44 + class xRay3 ray; // r29+0x10 + float one_len; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C6D50 -> 0x001C6EC4 +*/ +// Range: 0x1C6D50 -> 0x1C6EC4 +signed int xSweptSphereToStatDyn(class xSweptSphere * sws /* r17 */, class xScene * sc /* r16 */, class xEnt * mover /* r2 */, unsigned char collType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C6D50 -> 0x1C6EC4 + class xRay3 ray; // r29+0x30 + float one_len; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C6ED0 -> 0x001C7098 +*/ +// Range: 0x1C6ED0 -> 0x1C7098 +signed int xSweptSphereToScene(class xSweptSphere * sws /* r18 */, class xScene * sc /* r17 */, class xEnt * mover /* r2 */, unsigned char collType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C6ED0 -> 0x1C7098 + signed int envcollfound; // r16 + class xRay3 ray; // r29+0x40 + float one_len; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C70A0 -> 0x001C75BC +*/ +// Range: 0x1C70A0 -> 0x1C75BC +static void SweptSphereHitsEntCB(class xRay3 * ray /* r16 */, class xQCData * qcd /* r2 */, class xEnt * ent /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C70A0 -> 0x1C75BC + class xSweptSphere * sws; // r17 + class xMat4x3 * m1; // r4 + class xMat4x3 * m2; // r3 + unsigned int result; // r5 + float oldrad; // r20 + class xBox tmpbox; // r29+0xD0 + class xBox tmpbox; // r29+0xB0 + class xRay3 lr; // r29+0x80 + class xMat3x3 mn; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C75C0 -> 0x001C7994 +*/ +// Range: 0x1C75C0 -> 0x1C7994 +signed int xSweptSphereToModel(class xSweptSphere * sws /* r20 */, class RpAtomic * model /* r16 */, class RwMatrixTag * mat /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C75C0 -> 0x1C7994 + class xMat4x3 oldinvbasis; // r29+0xD0 + class RpGeometry * geom; // r18 + class RwLine line; // r29+0xB0 + class SweptSphereCollParam isData; // r29+0x118 + class RpV3dGradient grad; // r29+0x90 + signed int i; // r19 + signed int numT; // r17 + class RpTriangle * tri; // r16 + class RwV3d * vert; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C79A0 -> 0x001C7AA4 +*/ +// Range: 0x1C79A0 -> 0x1C7AA4 +static signed int SweptSphereModelCB(signed int numTriangles /* r20 */, signed int triOffset /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C79A0 -> 0x1C7AA4 + class SweptSphereCollParam * isData; // r2 + class RpGeometry * geometry; // r4 + class xSweptSphere * sws; // r19 + class RwV3d * vertices; // r18 + class RpTriangle * triangles; // r17 + signed int triSlot; // r2 + unsigned short * triIndex; // r16 + class RpTriangle * tri; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C7AB0 -> 0x001C7C9C +*/ +// Range: 0x1C7AB0 -> 0x1C7C9C +signed int xSweptSphereToEnv(class xSweptSphere * sws /* r2 */, class xEnv * env /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C7AB0 -> 0x1C7C9C + class RwLine line; // r29+0x50 + class xClumpCollV3dGradient grad; // r29+0x30 + class RpIntersection isx; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C7CA0 -> 0x001C7D44 +*/ +// Range: 0x1C7CA0 -> 0x1C7D44 +static signed int SweptSphereLeafNodeCB(class xClumpCollBSPTriangle * triangles /* r17 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C7CA0 -> 0x1C7D44 + class xSweptSphere * sws; // r16 + class RwV3d * v1; // r2 + class RwV3d * v2; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C7D50 -> 0x001C7DD4 +*/ +// Range: 0x1C7D50 -> 0x1C7DD4 +static class RpCollisionTriangle * SweptSphereHitsEnvCB(class RpWorldSector * sector /* r18 */, class RpCollisionTriangle * tri /* r17 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C7D50 -> 0x1C7DD4 + class xSweptSphere * sws; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C7DE0 -> 0x001C89EC +*/ +// Range: 0x1C7DE0 -> 0x1C89EC +signed int xSweptSphereToBox(class xSweptSphere * sws /* r16 */, class xBox * box /* r17 */, class xMat4x3 * mat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C7DE0 -> 0x1C89EC + signed int i; // r6 + class xMat4x3 tmpmat; // r29+0x80 + class xMat4x3 * boxinvbasis; // r2 + float dx; // r23 + float dy; // r22 + float dz; // r21 + float rad; // r22 + float radsqr; // r21 + float testdist; // r7 + float invZ; // r7 + class xVec3 boxPos; // r29+0x150 + class xVec3 boxaX; // r29+0x140 + class xVec3 boxaY; // r29+0x130 + class xVec3 boxaZ; // r29+0x120 + class xVec3 boxNorm; // r29+0x110 + class xVec3 boxA1; // r29+0x100 + class xVec3 boxA2; // r29+0xF0 + signed int quadfound; // r3 + float boxPlaneDepth; // r7 + float daX; // r29+0x160 + float daY; // r5 + float daZ; // r3 + float d1; // r6 + float d2; // r2 + float distzsqr; // r2 + class xVec3 xform[5]; // r29+0x40 + signed int edge_contact_found; // r5 + signed int vert_contact_found; // r4 + float edge_contact_lerp; // r20 + class xVec3 pt; // r29+0xE0 + class xVec3 cyl; // r29+0xD0 + class xVec3 uu; // r29+0xC0 + float magNsqr; // r6 + float dsqr; // r15 + float ulen; // r13 + float edgedot; // r3 + float magCsqr; // r2 + float distzsqr; // r2 + float lerp; // r29+0x160 + float invlerp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C89F0 -> 0x001C8B50 +*/ +// Range: 0x1C89F0 -> 0x1C8B50 +signed int xSweptSphereToSphere(class xSweptSphere * sws /* r2 */, class xSphere * sph /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C89F0 -> 0x1C8B50 + float testdist; // r3 + float distzsqr; // r1 + float lerp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C8B50 -> 0x001C9538 +*/ +// Range: 0x1C8B50 -> 0x1C9538 +signed int xSweptSphereToTriangle(class xSweptSphere * sws /* r2 */, class xVec3 * v0 /* r2 */, class xVec3 * v1 /* r2 */, class xVec3 * v2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C8B50 -> 0x1C9538 + signed int i; // r8 + float rad; // r29+0xA0 + float raddist; // r3 + float radsqr; // r9 + float startdot; // r3 + float enddot; // r2 + float testdist; // r8 + float invZ; // r8 + class xVec3 xform[4]; // r29 + class xVec3 xnorm; // r29+0x90 + class xVec3 contact; // r29+0x80 + class RwV3d vTmp; // r29+0x70 + class RwV3d vTmp2; // r29+0x60 + float recipLength; // r8 + float lengthSq; // r2 + float _result; // r29+0xA0 + float contx; // r15 + float conty; // r14 + float p0x; // r9 + float p0y; // r5 + float p1x; // r13 + float p1y; // r12 + float p2x; // r11 + float p2y; // r6 + float dot0; // r10 + float dot1; // r6 + float dot2; // r2 + signed int edge_contact_found; // r7 + signed int vert_contact_found; // r6 + float edge_contact_lerp; // r7 + class xVec3 pt; // r29+0x50 + class xVec3 cyl; // r29+0x40 + class xVec3 uu; // r29+0x30 + float magNsqr; // r6 + float dsqr; // r17 + float ulen; // r15 + float edgedot; // r3 + float magCsqr; // r2 + float distzsqr; // r2 + float lerp; // r29+0xA0 + float invlerp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C9540 -> 0x001C9830 +*/ +// Range: 0x1C9540 -> 0x1C9830 +void xSweptSphereGetResults(class xSweptSphere * sws /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C9540 -> 0x1C9830 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C9830 -> 0x001C9BD4 +*/ +// Range: 0x1C9830 -> 0x1C9BD4 +void xSweptSpherePrepare(class xSweptSphere * sws /* r18 */, class xVec3 * start /* r17 */, class xVec3 * end /* r16 */, float radius /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C9830 -> 0x1C9BD4 + float dx; // r5 + float dy; // r4 + float dz; // r3 + float invmag; // r2 + class xCapsule tmpC; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C9BE0 -> 0x001CA540 +*/ +// Range: 0x1C9BE0 -> 0x1CA540 +class RpCollBSPTree * _rpCollBSPTreeForAllCapsuleLeafNodeIntersections(class RpCollBSPTree * tree /* r23 */, class RwLine * line /* r2 */, float radius /* r29+0xD8 */, class RpV3dGradient * grad /* r21 */, signed int (* callBack)(signed int, signed int, void *) /* r30 */, void * data /* r29+0xDC */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C9BE0 -> 0x1CA540 + signed int nStack; // r20 + class nodeInfo nodeStack[33]; // r29+0x420 + class RwLine lineStack[33]; // r29+0x100 + class RwLine currLine; // r29+0xE0 + class RpCollBSPLeafNode * leaf; // r2 + class RpCollBSPBranchNode * branch; // r9 + unsigned int branch_type; // r5 + unsigned int branch_leftType; // r6 + unsigned int branch_rightType; // r4 + unsigned int branch_leftNode; // r3 + unsigned int branch_rightNode; // r2 + class RwSplitBits lStart; // r29+0x53C + class RwSplitBits lEnd; // r29+0x538 + class RwSplitBits rStart; // r29+0x534 + class RwSplitBits rEnd; // r29+0x530 + float delta; // r5 + float delta; // r5 + float delta; // r6 + float delta; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CA540 -> 0x001CAD6C +*/ +// Range: 0x1CA540 -> 0x1CAD6C +class xVec3 xCollisTriHit(class tri_data & tri /* r2 */, class xModelInstance & model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CA540 -> 0x1CAD6C + class xMat4x3 & m; // r7 + class xVec3 v[3]; // r29+0xB0 + class RpGeometry * geom; // r8 + class xVec3 * verts; // r6 + class RpTriangle & t; // r20 + signed int i; // r3 + class xVec3 r[2]; // r29+0x90 + class xVec3 d; // r29+0x2F0 + class xVec3 A; // r29+0x2E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CAD70 -> 0x001CBA78 +*/ +// Range: 0x1CAD70 -> 0x1CBA78 +void xCollideCalcTri(class tri_data & tri /* r2 */, class xModelInstance & model /* r2 */, class xVec3 & center /* r2 */, class xVec3 & heading /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CAD70 -> 0x1CBA78 + class xVec3 v[3]; // r29+0x40 + class RpGeometry * geom; // r5 + class xVec3 * verts; // r11 + class RpMorphTarget * mt; // r3 + class RpTriangle & t; // r10 + signed int i; // r9 + class xVec3 e[3]; // r29+0x10 + class /* @class */ { + // total size: 0x10 + public: + class xVec3 norm; // offset 0x0, size 0xC + float D; // offset 0xC, size 0x4 + } plane; // r29 + class xVec3 p; // r29+0x330 + float num; // r2 + float denom; // r1 + class xVec3 b; // r29+0x320 + class xVec3 A; // r29+0x310 + class xVec3 B; // r29+0x300 + class xVec3 C; // r29+0x2F0 + class xVec3 AxB; // r29+0x2E0 + class xVec3 CxB; // r29+0x2D0 + float len2; // r7 + class xVec3 d; // r29+0x2C0 + class xVec3 ad; // r29+0x2B0 + class xVec3 d; // r29+0x2A0 + class xVec3 ad; // r29+0x290 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CBA80 -> 0x001CBAF0 +*/ +// Range: 0x1CBA80 -> 0x1CBAF0 +unsigned int xBoxHitsObb(class xBox * a /* r2 */, class xBox * b /* r5 */, class xMat4x3 * mat /* r2 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CBA80 -> 0x1CBAF0 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CBAF0 -> 0x001CCC38 +*/ +// Range: 0x1CBAF0 -> 0x1CCC38 +static unsigned int Mgc_BoxBoxTest(class xBox * a /* r2 */, class xMat4x3 * matA /* r2 */, class xBox * b /* r2 */, class xMat4x3 * matB /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CBAF0 -> 0x1CCC38 + class xVec3 akA[3]; // r29+0xD0 + class xVec3 akB[3]; // r29+0xA0 + float afEA[3]; // r29+0x150 + float afEB[3]; // r29+0x140 + float _mag; // r4 + float _mag; // r4 + float _mag; // r4 + float _mag; // r4 + float _mag; // r4 + float _mag; // r4 + class xVec3 centA; // r29+0x130 + class xVec3 centB; // r29+0x120 + class xVec3 kD; // r29+0x110 + float aafC[3][3]; // r29+0x70 + float aafAbsC[3][3]; // r29+0x40 + float afAD[3]; // r29+0x100 + float fR0; // r29+0x160 + float fR1; // r3 + float fR; // r1 + float fR01; // r29+0x160 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CCC40 -> 0x001CCDD8 +*/ +// Range: 0x1CCC40 -> 0x1CCDD8 +unsigned int xBoxHitsSphere(class xBox * a /* r2 */, class xSphere * b /* r2 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CCC40 -> 0x1CCDD8 + class xIsect isx; // r29+0x20 + float scale; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CCDE0 -> 0x001CD118 +*/ +// Range: 0x1CCDE0 -> 0x1CD118 +signed int xParabolaHitsEnv(class xParabola * p /* r2 */, class xEnv * env /* r2 */, class xCollis * colls /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CCDE0 -> 0x1CD118 + class RwBBox xb; // r29+0x40 + float extremumT; // r5 + float extremum; // r1 + class ParabolaCBData data; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CD120 -> 0x001CD7A8 +*/ +// Range: 0x1CD120 -> 0x1CD7A8 +static signed int xParabolaEnvCB(class xClumpCollBSPTriangle * triangles /* r20 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CD120 -> 0x1CD7A8 + class ParabolaCBData * pd; // r19 + class xParabola * p; // r18 + class xCollis * colls; // r17 + class xVec3 * v0; // r16 + class xVec3 * v1; // r4 + class xVec3 * v2; // r3 + unsigned char tester; // r2 + float a; // r6 + float b; // r5 + float c; // r8 + float det; // r7 + class xVec3 N; // r29+0xA0 + float t1; // r27 + float t2; // r26 + float c1; // r3 + float c2; // r2 + float c0; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CD7B0 -> 0x001CD838 +*/ +// Range: 0x1CD7B0 -> 0x1CD838 +void xParabolaRecenter(class xParabola * p /* r2 */, float newZeroT /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CD7B0 -> 0x1CD838 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CD840 -> 0x001CDCA8 +*/ +// Range: 0x1CD840 -> 0x1CDCA8 +unsigned int xSphereHitsModel(class xSphere * b /* r19 */, class xModelInstance * m /* r18 */, class xCollis * coll /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CD840 -> 0x1CDCA8 + class RpIntersection isx; // r29+0x80 + class xSphereHitsModel_context context; // r29+0x60 + class xMat4x3 * mat; // r16 + class RwFrame * frame; // r2 + float mscale; // r20 + float mag2; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CDCB0 -> 0x001CDCCC +*/ +// Range: 0x1CDCB0 -> 0x1CDCCC +static class RpCollisionTriangle * sphereHitsModelCB(class RpCollisionTriangle * tri /* r3 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CDCB0 -> 0x1CDCCC + class xSphereHitsModel_context * context; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CDCD0 -> 0x001CE2B4 +*/ +// Range: 0x1CDCD0 -> 0x1CE2B4 +unsigned int xSphereHitsOBB_nu(class xSphere * s /* r17 */, class xBox * b /* r2 */, class xMat4x3 * m /* r2 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CDCD0 -> 0x1CE2B4 + class xSphere xfs; // r29+0x90 + class xVec3 scale; // r29+0xA0 + class xMat4x3 mnormal; // r29+0x50 + float len2; // r4 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + class xBox sbox; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE2C0 -> 0x001CE460 +*/ +// Range: 0x1CE2C0 -> 0x1CE460 +unsigned int xSphereHitsBox(class xSphere * a /* r2 */, class xBox * b /* r2 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE2C0 -> 0x1CE460 + class xIsect isx; // r29+0x20 + float scale; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE460 -> 0x001CE664 +*/ +// Range: 0x1CE460 -> 0x1CE664 +unsigned int xSphereHitsSphere(class xSphere * a /* r17 */, class xSphere * b /* r2 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE460 -> 0x1CE664 + class xIsect isx; // r29+0x30 + float scale; // r1 + float scale; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE670 -> 0x001CE678 +*/ +// Range: 0x1CE670 -> 0x1CE678 +void xCollideInit(class xScene * sc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE670 -> 0x1CE678 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollide.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE680 -> 0x001CE7FC +*/ +// Range: 0x1CE680 -> 0x1CE7FC +enum _xCollsIdx xCollideGetCollsIdx(class xCollis * coll /* r2 */, class xVec3 * tohit /* r17 */, class xMat3x3 * mat /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE680 -> 0x1CE7FC + float local_x; // r3 + float local_z; // r1 + } +} + diff --git a/dwarf/SB/Core/x/xCollideFast.cpp b/dwarf/SB/Core/x/xCollideFast.cpp new file mode 100644 index 000000000..01317e660 --- /dev/null +++ b/dwarf/SB/Core/x/xCollideFast.cpp @@ -0,0 +1,1057 @@ +/* + Compile unit: C:\SB\Core\x\xCollideFast.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xFFX { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xCollideFast.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE800 -> 0x001CE86C +*/ +// Range: 0x1CE800 -> 0x1CE86C +unsigned int xRayHitsBoxFast(class xRay3 * r /* r2 */, class xBox * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE800 -> 0x1CE86C + class xIsect isx; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollideFast.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE870 -> 0x001CE958 +*/ +// Range: 0x1CE870 -> 0x1CE958 +unsigned int xRayHitsSphereFast(class xRay3 * r /* r2 */, class xSphere * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE870 -> 0x1CE958 + float c; // r8 + } +} + +/* + Compile unit: C:\SB\Core\x\xCollideFast.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE960 -> 0x001CE968 +*/ +// Range: 0x1CE960 -> 0x1CE968 +void xCollideFastInit(class xScene * sc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE960 -> 0x1CE968 + } +} + diff --git a/dwarf/SB/Core/x/xColor.cpp b/dwarf/SB/Core/x/xColor.cpp new file mode 100644 index 000000000..5bb205b4c --- /dev/null +++ b/dwarf/SB/Core/x/xColor.cpp @@ -0,0 +1,50 @@ +/* + Compile unit: C:\SB\Core\x\xColor.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class iColor_tag g_RED; // size: 0x4, address: 0x0 +class iColor_tag g_GREEN; // size: 0x4, address: 0x0 +class iColor_tag g_BLUE; // size: 0x4, address: 0x0 +class iColor_tag g_CYAN; // size: 0x4, address: 0x0 +class iColor_tag g_MAGENTA; // size: 0x4, address: 0x0 +class iColor_tag g_YELLOW; // size: 0x4, address: 0x0 +class iColor_tag g_BLACK; // size: 0x4, address: 0x0 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +class iColor_tag g_GRAY10; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY20; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY30; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY40; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY50; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY60; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY70; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY80; // size: 0x4, address: 0x0 +class iColor_tag g_GRAY90; // size: 0x4, address: 0x0 +class iColor_tag g_CLEAR; // size: 0x4, address: 0x0 +class iColor_tag g_NEON_RED; // size: 0x4, address: 0x0 +class iColor_tag g_NEON_GREEN; // size: 0x4, address: 0x0 +class iColor_tag g_NEON_BLUE; // size: 0x4, address: 0x0 +class iColor_tag g_PEACH; // size: 0x4, address: 0x0 +class iColor_tag g_FUSCHIA; // size: 0x4, address: 0x0 +class iColor_tag g_MAROON; // size: 0x4, address: 0x0 +class iColor_tag g_MIDNIGHTBLUE; // size: 0x4, address: 0x0 +class iColor_tag g_SEAGREEN; // size: 0x4, address: 0x0 +class iColor_tag g_FORESTGREEN; // size: 0x4, address: 0x0 +class iColor_tag g_PIMP_GOLD; // size: 0x4, address: 0x0 +class iColor_tag g_ORANGE; // size: 0x4, address: 0x0 +class iColor_tag g_KHAKI; // size: 0x4, address: 0x0 +class iColor_tag g_LAVENDER; // size: 0x4, address: 0x0 +class iColor_tag g_PINK; // size: 0x4, address: 0x0 +class iColor_tag g_COLOR_TRYME; // size: 0x4, address: 0x0 +class iColor_tag g_COLOR_TRYME2; // size: 0x4, address: 0x0 +class iColor_tag g_COLOR_TRYME3; // size: 0x4, address: 0x0 +char * g_xColor_FMT; // size: 0x4, address: 0x0 +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; + diff --git a/dwarf/SB/Core/x/xColor.h b/dwarf/SB/Core/x/xColor.h new file mode 100644 index 000000000..c80a59c6b --- /dev/null +++ b/dwarf/SB/Core/x/xColor.h @@ -0,0 +1,15 @@ +/* + Compile unit: C:\SB\Core\x\xColor.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003485F0 -> 0x00348630 +*/ +// Range: 0x3485F0 -> 0x348630 +class iColor_tag xColorFromRGBA(unsigned char r /* r2 */, unsigned char g /* r2 */, unsigned char b /* r2 */, unsigned char a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3485F0 -> 0x348630 + class iColor_tag c; // r29+0xC + } +} + diff --git a/dwarf/SB/Core/x/xCounter.cpp b/dwarf/SB/Core/x/xCounter.cpp new file mode 100644 index 000000000..12db70128 --- /dev/null +++ b/dwarf/SB/Core/x/xCounter.cpp @@ -0,0 +1,151 @@ +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +signed int xCounterEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x29E5E0 +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class _xCounter : public xBase { + // total size: 0x18 +public: + class xCounterAsset * asset; // offset 0x10, size 0x4 + signed short count; // offset 0x14, size 0x2 + unsigned char state; // offset 0x16, size 0x1 + unsigned char counterFlags; // offset 0x17, size 0x1 +}; +class xCounterAsset : public xBaseAsset { + // total size: 0xC +public: + signed short count; // offset 0x8, size 0x2 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; + +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E5E0 -> 0x0029E7A0 +*/ +// Range: 0x29E5E0 -> 0x29E7A0 +signed int xCounterEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E5E0 -> 0x29E7A0 + class _xCounter * t; // r2 + signed short newCount; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E7A0 -> 0x0029E7E8 +*/ +// Range: 0x29E7A0 -> 0x29E7E8 +void xCounterLoad(class _xCounter * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E7A0 -> 0x29E7E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E7F0 -> 0x0029E838 +*/ +// Range: 0x29E7F0 -> 0x29E838 +void xCounterSave(class _xCounter * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E7F0 -> 0x29E838 + } +} + +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E840 -> 0x0029E8A0 +*/ +// Range: 0x29E840 -> 0x29E8A0 +void xCounterReset(class xBase * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E840 -> 0x29E8A0 + class _xCounter * t; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E8A0 -> 0x0029E914 +*/ +// Range: 0x29E8A0 -> 0x29E914 +void xCounterInit(void * b /* r2 */, void * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E8A0 -> 0x29E914 + } +} + +/* + Compile unit: C:\SB\Core\x\xCounter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E920 -> 0x0029E928 +*/ +// Range: 0x29E920 -> 0x29E928 +void xCounterInit() { + // Blocks + /* anonymous block */ { + // Range: 0x29E920 -> 0x29E928 + } +} + diff --git a/dwarf/SB/Core/x/xCurveAsset.cpp b/dwarf/SB/Core/x/xCurveAsset.cpp new file mode 100644 index 000000000..800342f64 --- /dev/null +++ b/dwarf/SB/Core/x/xCurveAsset.cpp @@ -0,0 +1,42 @@ +/* + Compile unit: C:\SB\Core\x\xCurveAsset.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xCurveAsset { + // total size: 0x14 +public: + enum xCurveType type; // offset 0x0, size 0x4 + enum xCurveClamp clamp; // offset 0x4, size 0x4 + float delta; // offset 0x8, size 0x4 + signed int numPoints; // offset 0xC, size 0x4 + float * points; // offset 0x10, size 0x4 +}; +enum xCurveType { + xCVT_BAKED = 0, +}; +enum xCurveClamp { + xCC_CONSTANT = 0, + xCC_CYCLE = 1, + xCC_OSCILLATE = 2, +}; + +/* + Compile unit: C:\SB\Core\x\xCurveAsset.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADE50 -> 0x003AE01C +*/ +// Range: 0x3ADE50 -> 0x3AE01C +float xCurveAssetEvaluate(class xCurveAsset * curve_asset /* r16 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3ADE50 -> 0x3AE01C + float max_t; // r1 + float curve_length; // r21 + signed int curve_shift; // r5 + unsigned int last_point; // r4 + float u; // r3 + } +} + diff --git a/dwarf/SB/Core/x/xCutscene.cpp b/dwarf/SB/Core/x/xCutscene.cpp new file mode 100644 index 000000000..f2fc42078 --- /dev/null +++ b/dwarf/SB/Core/x/xCutscene.cpp @@ -0,0 +1,1871 @@ +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class xCutscene sActiveCutscene; // size: 0x138, address: 0x540AA0 +static unsigned int sCutTocCount; // size: 0x4, address: 0x50F944 +static class xCutsceneInfo * sCutTocInfo; // size: 0x4, address: 0x50F948 +static class xEnt sCutsceneFakeEntity[8]; // size: 0x680, address: 0x0 +static class xModelInstance sCutsceneFakeModel[8]; // size: 0x360, address: 0x540BE0 +float ShadowStrength; // size: 0x4, address: 0x50E8B0 +void CutsceneShadowRender(class CutsceneShadowModel *); // size: 0x0, address: 0x1CF6B0 +class tagiRenderArrays gRenderArr; // size: 0x5280, address: 0x533950 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +float gCameraLastFov; // size: 0x4, address: 0x50F920 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xCutsceneMphRun { + // total size: 0x8 +public: + signed int VertIdx; // offset 0x0, size 0x4 + signed int VertCt; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xMorphTargetFile { + // total size: 0x20 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned short NumTargets; // offset 0x4, size 0x2 + unsigned short NumVerts; // offset 0x6, size 0x2 + unsigned int Flags; // offset 0x8, size 0x4 + float Scale; // offset 0xC, size 0x4 + class xVec3 Center; // offset 0x10, size 0xC + float Radius; // offset 0x1C, size 0x4 +}; +class xCutsceneAnimHdr { + // total size: 0x10 +public: + unsigned int RootIndex; // offset 0x0, size 0x4 + float Translate[3]; // offset 0x4, size 0xC +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class JDeltaRun { + // total size: 0x8 +public: + signed int VertIdx; // offset 0x0, size 0x4 + signed int VertCt; // offset 0x4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class JDeltaTarget { + // total size: 0x18 +public: + signed int skipSize; // offset 0x0, size 0x4 + signed int numRuns; // offset 0x4, size 0x4 + signed int numVerts; // offset 0x8, size 0x4 + float scale; // offset 0xC, size 0x4 + class JDeltaRun runs[1]; // offset 0x10, size 0x8 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class tagiRenderArrays { + // total size: 0x5280 +public: + unsigned short m_index[960]; // offset 0x0, size 0x780 + class RxObjSpace3DVertex m_vertex[480]; // offset 0x780, size 0x4380 + float m_vertexTZ[480]; // offset 0x4B00, size 0x780 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xEnv { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class CutsceneShadowModel { + // total size: 0xC +public: + class RpAtomic * model; // offset 0x0, size 0x4 + class RwMatrixTag * animMat; // offset 0x4, size 0x4 + unsigned int shadowBits; // offset 0x8, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zFlyKey { + // total size: 0x40 +public: + signed int frame; // offset 0x0, size 0x4 + float matrix[12]; // offset 0x4, size 0x30 + float aperture[2]; // offset 0x34, size 0x8 + float focal; // offset 0x3C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class FakeEntityInfo { + // total size: 0x28 +public: + class RpAtomic * model; // offset 0x0, size 0x4 + class xCutsceneAnimHdr * ahdr; // offset 0x4, size 0x4 + float time; // offset 0x8, size 0x4 + signed short * v_array[4]; // offset 0xC, size 0x10 + signed short weight[4]; // offset 0x1C, size 0x8 + float scale; // offset 0x24, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xCutsceneMphFrame { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CE970 -> 0x001CF6AC +*/ +// Range: 0x1CE970 -> 0x1CF6AC +void xCutscene_Render(class xCutscene * csn /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CE970 -> 0x1CF6AC + unsigned int i; // r10 + unsigned int dataIndex; // r29+0x160 + unsigned int animIndex; // r29+0x150 + unsigned int mphIndex; // r2 + unsigned int visFlags; // r29+0x140 + unsigned int visIdx; // r23 + unsigned int fakeCount; // r30 + unsigned int hasAlpha; // r21 + unsigned int boundhack; // r29+0x130 + unsigned int tworoot; // r16 + unsigned int noshadow; // r29+0x120 + class xCutsceneData * data; // r22 + class xCutsceneData * mphdata; // r3 + class RpAtomic * model; // r19 + class RpAtomic * shadowModel; // r29+0x11C + class RwMatrixTag animMat[65]; // r29+0x31F0 + class xVec3 * camVec; // r29+0x100 + class XCSNNosey * nosey; // r29+0xF0 + unsigned int tempSize; // r29+0x425C + class RpAtomic * tmpModel; // r2 + float maxRadius; // r22 + unsigned int viscnt; // r7 + unsigned int * currvis; // r6 + unsigned int subIndex; // r5 + unsigned int frameMin; // r4 + unsigned int frameMax; // r3 + unsigned int frameIndex; // r10 + unsigned int shadowBits; // r29+0xE0 + class RpGeometry * geom; // r16 + class RwTexture * tex; // r17 + signed int matnum; // r6 + unsigned int morphAnimIndex; // r11 + unsigned int morphModelIndex; // r10 + unsigned int numFrame; // r2 + unsigned int numRun; // r18 + class xCutsceneMphFrame * mphFrame; // r4 + class xCutsceneMphRun * mphRun; // r17 + class xMorphTargetFile * mphFile; // r3 + signed short * v_array[4]; // r29+0x31E0 + signed short weight[4]; // r29+0x4250 + unsigned int skipsize; // r6 + class xVec3 * csnTmpArray; // r16 + class xVec3 * currtmp; // r2 + class xVec3 * outv; // r5 + unsigned int j; // r4 + unsigned int cmpval; // r3 + void * deltaAnim; // r2 + void * deltaModel; // r2 + class CutsceneShadowModel smod; // r29+0x4240 + class xShadowCache scache; // r29+0x170 + class xVec3 center; // r29+0x4230 + float radius; // r20 + class xVec3 shadVec; // @ 0x00417058 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CF6B0 -> 0x001CF720 +*/ +// Range: 0x1CF6B0 -> 0x1CF720 +static void CutsceneShadowRender(class CutsceneShadowModel * smod /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CF6B0 -> 0x1CF720 + class RpAtomic * model; // r17 + unsigned int bits; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CF720 -> 0x001CFD30 +*/ +// Range: 0x1CF720 -> 0x1CFD30 +static void JDeltaEval(class RpAtomic * model /* r18 */, void * deltaModel /* r17 */, void * deltaAnim /* r2 */, float time /* r29+0x240 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CF720 -> 0x1CFD30 + float outweight[128]; // r29+0x40 + float * currweight; // r6 + signed int i; // r9 + signed int numFrames; // r4 + signed int numWeights; // r16 + float * times; // r3 + float * weights; // r2 + float lerp; // r3 + float invlerp; // r2 + class RwV3d * outverts; // r5 + signed int numRun; // r3 + class JDeltaTarget * dtgt; // r2 + float scale; // r1 + signed short * svert; // r12 + signed int j; // r11 + signed int cmpval; // r10 + class RwV3d * vert; // r11 + signed int j; // r10 + signed int cmpval; // r9 + float scale; // r3 + signed short * svert; // r14 + signed int j; // r13 + signed int cmpval; // r12 + float scale; // r3 + class RwV3d * vert; // r13 + signed int j; // r12 + signed int cmpval; // r11 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CFD30 -> 0x001CFFB4 +*/ +// Range: 0x1CFD30 -> 0x1CFFB4 +static void xcsCalcAnimMatrices(class RwMatrixTag * animMat /* r18 */, class RpAtomic * model /* r17 */, class xCutsceneAnimHdr * ahdr /* r16 */, float time /* r29+0x800 */, unsigned int tworoot /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CFD30 -> 0x1CFFB4 + class xQuat quatresult[65]; // r29+0x3E0 + class xVec3 tranresult[65]; // r29+0xD0 + void * afile; // r2 + class xMat4x3 m1; // r29+0x90 + class xMat4x3 m2; // r29+0x50 + unsigned int numbone; // r2 + unsigned int boneidx; // r7 + class xQuat * qqq; // r6 + class xVec3 * ttt; // r5 + class xVec3 addtran; // r29+0x7F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001CFFC0 -> 0x001D0378 +*/ +// Range: 0x1CFFC0 -> 0x1D0378 +void xCutscene_SetCamera(class xCutscene * csn /* r22 */, class xCamera * cam /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1CFFC0 -> 0x1D0378 + class xCutsceneData * data; // r21 + unsigned int i; // r19 + unsigned int dataIndex; // r23 + float camFOV; // r29+0x150 + class xMat4x3 camMat; // r29+0x110 + class xMat3x3 tmpMat; // r29+0xE0 + class xQuat quats[2]; // r29+0xC0 + class xQuat qresult; // r29+0xB0 + float invlerp; // r21 + float lerp; // r20 + signed int frame; // r16 + unsigned int count; // r3 + class zFlyKey * keys; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0380 -> 0x001D047C +*/ +// Range: 0x1D0380 -> 0x1D047C +void xCutscene_SetSpeed(class xCutscene * csn /* r16 */, float speed /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0380 -> 0x1D047C + float semitones; // r20 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0480 -> 0x001D0774 +*/ +// Range: 0x1D0480 -> 0x1D0774 +signed int xCutscene_Update(class xCutscene * csn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0480 -> 0x1D0774 + class xCutsceneTime * oldChunk; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0780 -> 0x001D07C0 +*/ +// Range: 0x1D0780 -> 0x1D07C0 +signed int xCutscene_LoadStart(class xCutscene * csn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0780 -> 0x1D07C0 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D07C0 -> 0x001D0938 +*/ +// Range: 0x1D07C0 -> 0x1D0938 +signed int xCutscene_Destroy(class xCutscene * csn /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D07C0 -> 0x1D0938 + unsigned int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0940 -> 0x001D0AC0 +*/ +// Range: 0x1D0940 -> 0x1D0AC0 +class xCutscene * xCutscene_Create(unsigned int id /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0940 -> 0x1D0AC0 + class xCutscene * csn; // r17 + unsigned int i; // r5 + class xCutsceneInfo * cnfo; // r16 + unsigned int maxload; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xCutscene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0AC0 -> 0x001D0BA4 +*/ +// Range: 0x1D0AC0 -> 0x1D0BA4 +void xCutscene_Init(void * toc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0AC0 -> 0x1D0BA4 + signed int i; // r17 + } +} + diff --git a/dwarf/SB/Core/x/xDebug.cpp b/dwarf/SB/Core/x/xDebug.cpp new file mode 100644 index 000000000..ed2d891a3 --- /dev/null +++ b/dwarf/SB/Core/x/xDebug.cpp @@ -0,0 +1,225 @@ +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static char xStatsFieldName[35][32]; // size: 0x460, address: 0x0 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +class callback text_cb; // size: 0xC, address: 0x4F87A8 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class xSB { + // total size: 0x10 +public: + char * buf; // offset 0x0, size 0x4 + unsigned int max; // offset 0x4, size 0x4 + char * cur; // offset 0x8, size 0x4 + char * disp; // offset 0xC, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0BB0 -> 0x001D0BB8 +*/ +// Range: 0x1D0BB0 -> 0x1D0BB8 +void xDebugTimestampScreen() { + // Blocks + /* anonymous block */ { + // Range: 0x1D0BB0 -> 0x1D0BB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0BC0 -> 0x001D0BC8 +*/ +// Range: 0x1D0BC0 -> 0x1D0BC8 +void xDebugExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1D0BC0 -> 0x1D0BC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0BD0 -> 0x001D0BD8 +*/ +// Range: 0x1D0BD0 -> 0x1D0BD8 +void xDebugUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x1D0BD0 -> 0x1D0BD8 + } +} + +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0BE0 -> 0x001D0BE8 +*/ +// Range: 0x1D0BE0 -> 0x1D0BE8 +void xDebugInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1D0BE0 -> 0x1D0BE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0BF0 -> 0x001D0BF8 +*/ +// Range: 0x1D0BF0 -> 0x1D0BF8 +signed int xDebugModeAdd() { + // Blocks + /* anonymous block */ { + // Range: 0x1D0BF0 -> 0x1D0BF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xDebug.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0C00 -> 0x001D0C28 +*/ +// Range: 0x1D0C00 -> 0x1D0C28 +void xprintf() { + // Blocks + /* anonymous block */ { + // Range: 0x1D0C00 -> 0x1D0C28 + } +} + diff --git a/dwarf/SB/Core/x/xDecal.cpp b/dwarf/SB/Core/x/xDecal.cpp new file mode 100644 index 000000000..62fefafec --- /dev/null +++ b/dwarf/SB/Core/x/xDecal.cpp @@ -0,0 +1,2303 @@ +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xDecalEmitter * active_emitters[32]; // size: 0x80, address: 0x5E64E0 +static unsigned int active_emitters_size; // size: 0x4, address: 0x51027C +static char * blend_mode_labels[11]; // size: 0x2C, address: 0x0 +static unsigned int blend_mode_values[11]; // size: 0x2C, address: 0x0 +static unsigned int blend_modes; // size: 0x4, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int _rpPTankAtomicDataOffset; // size: 0x4, address: 0x50F128 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class zPlatform { + // total size: 0x0 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xDecalEmitter { + // total size: 0x68 +public: + class config cfg; // offset 0x0, size 0x28 + class /* @class */ { + // total size: 0x1C + public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 + } texture; // offset 0x28, size 0x1C + class static_queue units; // offset 0x44, size 0x14 + class curve_node * curve; // offset 0x58, size 0x4 + unsigned int curve_size; // offset 0x5C, size 0x4 + unsigned int curve_index; // offset 0x60, size 0x4 + float ilife; // offset 0x64, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class unit_data { + // total size: 0x50 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char curve_index; // offset 0x1, size 0x1 + unsigned char u; // offset 0x2, size 0x1 + unsigned char v; // offset 0x3, size 0x1 + float frac; // offset 0x4, size 0x4 + float age; // offset 0x8, size 0x4 + float cull_size; // offset 0xC, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum texture_mode { + TM_DEFAULT = 0, + TM_RANDOM = 1, + TM_CYCLE = 2, + MAX_TM = 3, + FORCE_INT_TM = -1, +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class unit_data * _buffer; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class config { + // total size: 0x28 +public: + unsigned int flags; // offset 0x0, size 0x4 + float life_time; // offset 0x4, size 0x4 + unsigned int blend_src; // offset 0x8, size 0x4 + unsigned int blend_dst; // offset 0xC, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 + } texture; // offset 0x10, size 0x18 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class ptank_pool { + // total size: 0x24 +public: + class render_state rs; // offset 0x0, size 0x10 + unsigned int used; // offset 0x10, size 0x4 + class RpAtomic * ptank; // offset 0x14, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + } hide; // offset 0x18, size 0xC +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class ptank_pool__color_mat_uv2 : public ptank_pool { + // total size: 0x34 +public: + class iColor_tag * color; // offset 0x24, size 0x4 + class xMat4x3 * mat; // offset 0x28, size 0x4 + class xVec2 * uv; // offset 0x2C, size 0x4 + signed int stride; // offset 0x30, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xFFX { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class render_state { + // total size: 0x10 +public: + class RwTexture * texture; // offset 0x0, size 0x4 + unsigned int src_blend; // offset 0x4, size 0x4 + unsigned int dst_blend; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class iterator { + // total size: 0x8 +public: + unsigned int _it; // offset 0x0, size 0x4 + class static_queue * _owner; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AE5D0 -> 0x003AECBC +*/ +// Range: 0x3AE5D0 -> 0x3AECBC +void get_render_data(class xDecalEmitter * this /* r2 */, class unit_data & unit /* r2 */, float scale /* r29+0x10 */, class iColor_tag & color /* r2 */, class xMat4x3 & mat /* r2 */, class xVec2 & uv0 /* r2 */, class xVec2 & uv1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AE5D0 -> 0x3AECBC + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AECC0 -> 0x003AF1B4 +*/ +// Range: 0x3AECC0 -> 0x3AF1B4 +void update(class xDecalEmitter * this /* r17 */, float dt /* r29+0xD0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AECC0 -> 0x3AF1B4 + float dage; // r21 + class ptank_pool__color_mat_uv2 pool; // r29+0x40 + class iterator it; // r29+0xC8 + class unit_data & unit; // r16 + class curve_node & node0; // r4 + class curve_node & node1; // r3 + float scale; // r20 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AF1C0 -> 0x003AF54C +*/ +// Range: 0x3AF1C0 -> 0x3AF54C +void emit(class xDecalEmitter * this /* r17 */, class xMat4x3 & mat /* r2 */, class xVec3 & scale /* r2 */, signed int texture_index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AF1C0 -> 0x3AF54C + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AF550 -> 0x003AF824 +*/ +// Range: 0x3AF550 -> 0x3AF824 +void emit(class xDecalEmitter * this /* r17 */, class xMat4x3 & mat /* r2 */, signed int texture_index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AF550 -> 0x3AF824 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AF830 -> 0x003AF83C +*/ +// Range: 0x3AF830 -> 0x3AF83C +void set_curve(class xDecalEmitter * this /* r2 */, class curve_node * curve /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AF830 -> 0x3AF83C + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AF840 -> 0x003AFA14 +*/ +// Range: 0x3AF840 -> 0x3AFA14 +void refresh_config(class xDecalEmitter * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AF840 -> 0x3AFA14 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFA20 -> 0x003AFA70 +*/ +// Range: 0x3AFA20 -> 0x3AFA70 +void set_texture(class xDecalEmitter * this /* r16 */, char * name /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AFA20 -> 0x3AFA70 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFA70 -> 0x003AFAB0 +*/ +// Range: 0x3AFA70 -> 0x3AFAB0 +void set_default_config(class xDecalEmitter * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AFA70 -> 0x3AFAB0 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFAB0 -> 0x003AFB68 +*/ +// Range: 0x3AFAB0 -> 0x3AFB68 +void init(class xDecalEmitter * this /* r16 */, signed int max_size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AFAB0 -> 0x3AFB68 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFB70 -> 0x003AFBF8 +*/ +// Range: 0x3AFB70 -> 0x3AFBF8 +void xDecalUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AFB70 -> 0x3AFBF8 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xDecal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFC00 -> 0x003AFC08 +*/ +// Range: 0x3AFC00 -> 0x3AFC08 +void xDecalInit() { + // Blocks + /* anonymous block */ { + // Range: 0x3AFC00 -> 0x3AFC08 + } +} + diff --git a/dwarf/SB/Core/x/xEnt.cpp b/dwarf/SB/Core/x/xEnt.cpp new file mode 100644 index 000000000..654e0019a --- /dev/null +++ b/dwarf/SB/Core/x/xEnt.cpp @@ -0,0 +1,3331 @@ +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char * g_xEnt_FMT; // size: 0x4, address: 0x0 +static float nsn_angle; // size: 0x4, address: 0x50E830 +static float sEntityTimePassed; // size: 0x4, address: 0x50F950 +static class xBox all_ents_box; // size: 0x18, address: 0x540F40 +static signed int all_ents_box_init; // size: 0x4, address: 0x50F954 +static signed int setMaterialTextureRestore; // size: 0x4, address: 0x50F95C +signed int sSetPipeline; // size: 0x4, address: 0x50F960 +static class RxPipeline * oldPipe; // size: 0x4, address: 0x50F964 +signed int xent_entent; // size: 0x4, address: 0x50F96C +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +signed int gGridIterActive; // size: 0x4, address: 0x50FFC8 +class xEnt * xEntCollCheckOneEntNoDepen(class xEnt *, class xScene *, void *); // size: 0x0, address: 0x1D1BF0 +void stacked_owner_destroyed(class zEntDestructObj &, void *); // size: 0x0, address: 0x1D4BF0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xScene * g_xSceneCur; // size: 0x4, address: 0x50FAB4 +void xEntRender(class xEnt *); // size: 0x0, address: 0x1D3C10 +void xEntUpdate(class xEnt *, class xScene *, float); // size: 0x0, address: 0x1D3A70 +void xEntDefaultTranslate(class xEnt *, class xVec3 *, class xMat4x3 *); // size: 0x0, address: 0x1D3600 +void xEntDefaultBoundUpdate(class xEnt *, class xVec3 *); // size: 0x0, address: 0x1D37C0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zEntDestructObjAsset { + // total size: 0x38 +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned int health; // offset 0x8, size 0x4 + unsigned int spawnItemID; // offset 0xC, size 0x4 + unsigned int dflags; // offset 0x10, size 0x4 + unsigned char collType; // offset 0x14, size 0x1 + unsigned char fxType; // offset 0x15, size 0x1 + unsigned char pad[2]; // offset 0x16, size 0x2 + float blast_radius; // offset 0x18, size 0x4 + float blast_strength; // offset 0x1C, size 0x4 + unsigned int shrapnelID_destroy; // offset 0x20, size 0x4 + unsigned int shrapnelID_hit; // offset 0x24, size 0x4 + unsigned int sfx_destroy; // offset 0x28, size 0x4 + unsigned int sfx_hit; // offset 0x2C, size 0x4 + unsigned int hitModel; // offset 0x30, size 0x4 + unsigned int destroyModel; // offset 0x34, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zFrag { + // total size: 0x0 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zPlatform { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zEntDestructObj : public zEnt { + // total size: 0x114 +public: + class zEntDestructObjAsset * dasset; // offset 0xD4, size 0x4 + unsigned int state; // offset 0xD8, size 0x4 + unsigned int healthCnt; // offset 0xDC, size 0x4 + float fx_timer; // offset 0xE0, size 0x4 + class zParEmitter * fx_emitter; // offset 0xE4, size 0x4 + float respawn_timer; // offset 0xE8, size 0x4 + unsigned int throw_target; // offset 0xEC, size 0x4 + class zShrapnelAsset * shrapnel_destroy; // offset 0xF0, size 0x4 + class zShrapnelAsset * shrapnel_hit; // offset 0xF4, size 0x4 + class xModelInstance * base_model; // offset 0xF8, size 0x4 + class xModelInstance * hit_model; // offset 0xFC, size 0x4 + class xModelInstance * destroy_model; // offset 0x100, size 0x4 + void (* destroy_notify)(class zEntDestructObj &, void *); // offset 0x104, size 0x4 + void * notify_context; // offset 0x108, size 0x4 + class xSFXAsset * sfx_destroy; // offset 0x10C, size 0x4 + class xSFXAsset * sfx_hit; // offset 0x110, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class anim_coll_data { + // total size: 0xA0 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bones; // offset 0x4, size 0x4 + class xMat4x3 old_mat; // offset 0x10, size 0x40 + class xMat4x3 new_mat; // offset 0x50, size 0x40 + unsigned int verts_size; // offset 0x90, size 0x4 + class xVec3 * verts; // offset 0x94, size 0x4 + class xVec3 * normals; // offset 0x98, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* doEffect)(class xEnt *, class xScene *, float, void *); // offset 0x4, size 0x4 + void * fdata; // offset 0x8, size 0x4 + class xFFX * next; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xGridIterator { + // total size: 0xC +public: + class xGridBound * * listhead; // offset 0x0, size 0x4 + class xGridBound * curcell; // offset 0x4, size 0x4 + unsigned int delfound; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0C30 -> 0x001D0C78 +*/ +// Range: 0x1D0C30 -> 0x1D0C78 +void xEntInitShadow(class xEnt & ent /* r2 */, class xEntShadow & shadow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0C30 -> 0x1D0C78 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0C80 -> 0x001D0F18 +*/ +// Range: 0x1D0C80 -> 0x1D0F18 +void xEntReposition(class xEnt & ent /* r16 */, class xMat4x3 & mat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0C80 -> 0x1D0F18 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0F20 -> 0x001D0F70 +*/ +// Range: 0x1D0F20 -> 0x1D0F70 +unsigned char xEntValidType(unsigned char type /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0F20 -> 0x1D0F70 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D0F70 -> 0x001D1010 +*/ +// Range: 0x1D0F70 -> 0x1D1010 +void xEntAnimateCollision(class xEnt & ent /* r16 */, unsigned char on /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D0F70 -> 0x1D1010 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D1010 -> 0x001D101C +*/ +// Range: 0x1D1010 -> 0x1D101C +class xBox * xEntGetAllEntsBox() { + // Blocks + /* anonymous block */ { + // Range: 0x1D1010 -> 0x1D101C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D1020 -> 0x001D1028 +*/ +// Range: 0x1D1020 -> 0x1D1028 +void xEntSetNostepNormAngle(float angle /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D1020 -> 0x1D1028 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D1030 -> 0x001D1464 +*/ +// Range: 0x1D1030 -> 0x1D1464 +void xEntCollideWalls(class xEnt * p /* r17 */, class xScene * sc /* r16 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D1030 -> 0x1D1464 + class xCollis * coll; // r21 + class xEnt * cent; // r2 + unsigned char sidx; // r2 + unsigned char idx; // r20 + float sbr; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D1470 -> 0x001D1724 +*/ +// Range: 0x1D1470 -> 0x1D1724 +void xEntCollideCeiling(class xEnt * p /* r21 */, class xScene * sc /* r20 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D1470 -> 0x1D1724 + class xCollis * coll; // r19 + unsigned char idx; // r18 + class xCollis * ml; // r17 + float sbr; // r20 + class xCollis * mf; // r16 + class xEnt * fent; // r2 + float ceil_dist; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D1730 -> 0x001D1BEC +*/ +// Range: 0x1D1730 -> 0x1D1BEC +void xEntCollideFloor(class xEnt * p /* r20 */, class xScene * sc /* r19 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D1730 -> 0x1D1BEC + class xCollis * coll; // r18 + unsigned char idx; // r17 + class xCollis * ml; // r16 + class xVec3 motion; // r29+0x90 + float mlen; // r21 + signed int stepping; // r22 + float sbr; // r20 + class xCollis * mf; // r21 + class xEnt * fent; // r2 + float flr_dist; // r29+0xA0 + class xEnt * fent; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D1BF0 -> 0x001D2120 +*/ +// Range: 0x1D1BF0 -> 0x1D2120 +class xEnt * xEntCollCheckOneEntNoDepen(class xEnt * ent /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D1BF0 -> 0x1D2120 + class xEnt * p; // r17 + class xCollis * coll; // r16 + unsigned int modl_coll; // r20 + class xBound tmp; // r29+0x60 + class xBound * bptr; // r4 + unsigned char ncolls; // r19 + class xVec3 * upper; // r2 + class xVec3 * lower; // r2 + unsigned char idx; // r5 + float rsum; // r7 + float dx; // r5 + float dy; // r3 + float dz; // r29+0xB0 + float hsqr; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2120 -> 0x001D2168 +*/ +// Range: 0x1D2120 -> 0x1D2168 +void xEntCollCheckNPCs(class xEnt * p /* r16 */, class xScene * sc /* r2 */, class xEnt * (* hitIt)(class xEnt *, class xScene *, void *) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2120 -> 0x1D2168 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2170 -> 0x001D21B8 +*/ +// Range: 0x1D2170 -> 0x1D21B8 +void xEntCollCheckDyns(class xEnt * p /* r16 */, class xScene * sc /* r2 */, class xEnt * (* hitIt)(class xEnt *, class xScene *, void *) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2170 -> 0x1D21B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D21C0 -> 0x001D2208 +*/ +// Range: 0x1D21C0 -> 0x1D2208 +void xEntCollCheckStats(class xEnt * p /* r16 */, class xScene * sc /* r2 */, class xEnt * (* hitIt)(class xEnt *, class xScene *, void *) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D21C0 -> 0x1D2208 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2210 -> 0x001D2254 +*/ +// Range: 0x1D2210 -> 0x1D2254 +void xEntCollCheckNPCsByGrid(class xEnt * p /* r16 */, class xScene * sc /* r2 */, class xEnt * (* hitIt)(class xEnt *, class xScene *, void *) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2210 -> 0x1D2254 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2260 -> 0x001D22EC +*/ +// Range: 0x1D2260 -> 0x1D22EC +void xEntCollCheckByGrid(class xEnt * p /* r16 */, class xScene * sc /* r18 */, class xEnt * (* hitIt)(class xEnt *, class xScene *, void *) /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2260 -> 0x1D22EC + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D22F0 -> 0x001D28B0 +*/ +// Range: 0x1D22F0 -> 0x1D28B0 +static void xEntCollCheckOneGrid(class xEnt * p /* r21 */, class xScene * sc /* r22 */, class xEnt * (* hitIt)(class xEnt *, class xScene *, void *) /* r23 */, class xGrid * grid /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D22F0 -> 0x1D28B0 + class xGridIterator it; // r29+0xA8 + signed int px; // r29+0xBC + signed int pz; // r29+0xB8 + class xGridBound * cell; // r17 + float clcenterx; // r8 + float clcenterz; // r1 + signed int i; // r20 + signed int _x; // r6 + signed int _z; // r5 + signed int offs[4][3][2]; // @ 0x00417070 + signed int k; // @ 0x0050F968 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D28B0 -> 0x001D294C +*/ +// Range: 0x1D28B0 -> 0x1D294C +void xEntCollCheckEnv(class xEnt * p /* r16 */, class xScene * sc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D28B0 -> 0x1D294C + class xCollis * coll; // r2 + unsigned char ncolls; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2950 -> 0x001D297C +*/ +// Range: 0x1D2950 -> 0x1D297C +void xEntEndCollide(class xEnt * ent /* r2 */, class xScene * sc /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2950 -> 0x1D297C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2980 -> 0x001D2AC0 +*/ +// Range: 0x1D2980 -> 0x1D2AC0 +void xEntBeginCollide(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2980 -> 0x1D2AC0 + unsigned char idx; // r8 + class xCollis * coll; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2AC0 -> 0x001D2E30 +*/ +// Range: 0x1D2AC0 -> 0x1D2E30 +void xEntCollide(class xEnt * ent /* r17 */, class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2AC0 -> 0x1D2E30 + class xCollis * coll; // r3 + float h_dot_n; // r2 + float depen_len; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D2E30 -> 0x001D30EC +*/ +// Range: 0x1D2E30 -> 0x1D30EC +void xEntApplyPhysics(class xEnt * ent /* r2 */, class xScene * sc /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D2E30 -> 0x1D30EC + class xVec3 dposvel; // r29 + float tfric; // r1 + float tdrag; // r1 + float dposXZ; // r2 + float scaleXZ; // r29+0x10 + float scaleY; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D30F0 -> 0x001D3274 +*/ +// Range: 0x1D30F0 -> 0x1D3274 +void xEntMove(class xEnt * ent /* r16 */, class xScene * sc /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D30F0 -> 0x1D3274 + class xEntFrame * dframe; // r17 + class xVec3 dpos; // r29+0xD0 + class xMat4x3 invOldmat; // r29+0x90 + class xMat4x3 deltaMat; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3310 -> 0x001D35F4 +*/ +// Range: 0x1D3310 -> 0x1D35F4 +void xEntMotionToMatrix(class xEnt * ent /* r17 */, class xEntFrame * frame /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3310 -> 0x1D35F4 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3600 -> 0x001D37BC +*/ +// Range: 0x1D3600 -> 0x1D37BC +void xEntDefaultTranslate(class xEnt * ent /* r17 */, class xVec3 * dpos /* r2 */, class xMat4x3 * dmat /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3600 -> 0x1D37BC + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D37C0 -> 0x001D3838 +*/ +// Range: 0x1D37C0 -> 0x1D3838 +void xEntDefaultBoundUpdate(class xEnt * ent /* r16 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D37C0 -> 0x1D3838 + class xBound * bound; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3840 -> 0x001D3948 +*/ +// Range: 0x1D3840 -> 0x1D3948 +void xEntEndUpdate(class xEnt * ent /* r17 */, class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3840 -> 0x1D3948 + class xVec3 * mpos; // r2 + class xVec3 * upos; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3950 -> 0x001D3A70 +*/ +// Range: 0x1D3950 -> 0x1D3A70 +void xEntBeginUpdate(class xEnt * ent /* r16 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3950 -> 0x1D3A70 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3A70 -> 0x001D3C10 +*/ +// Range: 0x1D3A70 -> 0x1D3C10 +void xEntUpdate(class xEnt * ent /* r17 */, class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3A70 -> 0x1D3C10 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3C10 -> 0x001D3D78 +*/ +// Range: 0x1D3C10 -> 0x1D3D78 +void xEntRender(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3C10 -> 0x1D3D78 + signed int shadowOutside; // r29+0x2C + class xVec3 shadVec; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3D80 -> 0x001D3DD0 +*/ +// Range: 0x1D3D80 -> 0x1D3DD0 +void xEntRestorePipeline(class RpAtomic * model /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3D80 -> 0x1D3DD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3DD0 -> 0x001D3E20 +*/ +// Range: 0x1D3DD0 -> 0x1D3E20 +void xEntRestorePipeline(class xModelInstance * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3DD0 -> 0x1D3E20 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D3E20 -> 0x001D4014 +*/ +// Range: 0x1D3E20 -> 0x1D4014 +void xEntSetupPipeline(class xSurface * surf /* r2 */, class RpAtomic * model /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D3E20 -> 0x1D4014 + class zSurfaceProps * pp; // r16 + class xGroup * g; // r2 + unsigned int texid; // r2 + class RwTexture * texptr; // r2 + class xGroup * g; // r2 + unsigned int texid; // r2 + class RwTexture * texptr; // r2 + class RwTexture * texptr; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D4020 -> 0x001D402C +*/ +// Range: 0x1D4020 -> 0x1D402C +void xEntSetupPipeline(class xModelInstance * model /* r4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D4020 -> 0x1D402C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D4030 -> 0x001D40DC +*/ +// Range: 0x1D4030 -> 0x1D40DC +class xModelInstance * xEntLoadModel(class xEnt * ent /* r18 */, class RpAtomic * imodel /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D4030 -> 0x1D40DC + class xModelInstance * model; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D40E0 -> 0x001D46E0 +*/ +// Range: 0x1D40E0 -> 0x1D46E0 +void xEntReset(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D40E0 -> 0x1D46E0 + class xMat4x3 frame; // r29+0x20 + class xModelInstance * minst; // r4 + unsigned int receive_models[15]; // @ 0x00540F60 + signed char @4889; // @ 0x0050F958 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D46E0 -> 0x001D474C +*/ +// Range: 0x1D46E0 -> 0x1D474C +void xEntLoad(class xEnt * ent /* r16 */, class xSerial * s /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D46E0 -> 0x1D474C + signed int b; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D4750 -> 0x001D47BC +*/ +// Range: 0x1D4750 -> 0x1D47BC +void xEntSave(class xEnt * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D4750 -> 0x1D47BC + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D47C0 -> 0x001D4BEC +*/ +// Range: 0x1D47C0 -> 0x1D4BEC +void xEntSetup(class xEnt * ent /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D47C0 -> 0x1D4BEC + class xSurface * surf; // r2 + class xModelInstance * minst; // r3 + signed int i; // r17 + class xLinkAsset * la; // r19 + class xEnt * dent; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D4BF0 -> 0x001D4C30 +*/ +// Range: 0x1D4BF0 -> 0x1D4C30 +static void stacked_owner_destroyed(void * context /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D4BF0 -> 0x1D4C30 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D4C30 -> 0x001D4E44 +*/ +// Range: 0x1D4C30 -> 0x1D4E44 +static unsigned char collide_downward(class xVec3 & loc /* r17 */, class xEnt * & hit /* r16 */, class xScene & s /* r18 */, class xEnt & ent /* r21 */, float max_dist /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D4C30 -> 0x1D4E44 + class xRay3 ray; // r29+0xF0 + unsigned char old_bound_type; // r20 + float old_bound_radius; // r20 + class xCollis coll; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D4E50 -> 0x001D5064 +*/ +// Range: 0x1D4E50 -> 0x1D5064 +void xEntInitForType(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D4E50 -> 0x1D5064 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5070 -> 0x001D517C +*/ +// Range: 0x1D5070 -> 0x1D517C +void xEntInit(class xEnt * ent /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D5070 -> 0x1D517C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5180 -> 0x001D5260 +*/ +// Range: 0x1D5180 -> 0x1D5260 +static void xEntAddHittableFlag(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D5180 -> 0x1D5260 + unsigned int i; // r13 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5260 -> 0x001D5268 +*/ +// Range: 0x1D5260 -> 0x1D5268 +void xEntSceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1D5260 -> 0x1D5268 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5270 -> 0x001D527C +*/ +// Range: 0x1D5270 -> 0x1D527C +void xEntSceneInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1D5270 -> 0x1D527C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5280 -> 0x001D5288 +*/ +// Range: 0x1D5280 -> 0x1D5288 +void xEntSetTimePassed(float sec /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D5280 -> 0x1D5288 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5290 -> 0x001D5400 +*/ +// Range: 0x1D5290 -> 0x1D5400 +static void refresh(class xEnt & ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D5290 -> 0x1D5400 + class anim_coll_data & ac; // r17 + class xMat4x3 & bone_mat; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5400 -> 0x001D580C +*/ +// Range: 0x1D5400 -> 0x1D580C +static void reset(class xEnt & ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D5400 -> 0x1D580C + class xModelInstance & model; // r16 + class xMat4x3 & mat; // r5 + class anim_coll_data & ac; // r3 + class xBox & box; // r6 + class xVec3 size; // r29+0x40 + float max_size; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xEnt.h b/dwarf/SB/Core/x/xEnt.h new file mode 100644 index 000000000..ede731957 --- /dev/null +++ b/dwarf/SB/Core/x/xEnt.h @@ -0,0 +1,28 @@ +/* + Compile unit: C:\SB\Core\x\xEnt.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134650 -> 0x0013465C +*/ +// Range: 0x134650 -> 0x13465C +class xMat4x3 * xEntGetFrame(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134650 -> 0x13465C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnt.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175E90 -> 0x00175EA4 +*/ +// Range: 0x175E90 -> 0x175EA4 +unsigned int xEntIsVisible(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175E90 -> 0x175EA4 + } +} + diff --git a/dwarf/SB/Core/x/xEntBoulder.cpp b/dwarf/SB/Core/x/xEntBoulder.cpp new file mode 100644 index 000000000..06a9ef8d7 --- /dev/null +++ b/dwarf/SB/Core/x/xEntBoulder.cpp @@ -0,0 +1,3732 @@ +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xEntCollis sBoulderCollis; // size: 0x5B4, address: 0x5CED00 +static unsigned int sBubbleStreakID; // size: 0x4, address: 0x50F074 +void xEntBoulder_Update(class xEntBoulder *, class xScene *, float); // size: 0x0, address: 0x309070 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int xBoulderGenerator_EventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x3073A0 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +class xEntBoulder * boulderVehicle; // size: 0x4, address: 0x50F3B4 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * xFXBubbleRender(class RpAtomic *); // size: 0x0, address: 0x1EA900 +void xEntBoulder_Render(class xEnt *); // size: 0x0, address: 0x30AC10 +void xEntBoulder_BUpdate(class xEnt *, class xVec3 *); // size: 0x0, address: 0x30A800 +signed int xEntBoulderEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x308130 +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xBoulderGenerator : public xBase { + // total size: 0x48 +public: + class xBoulderGeneratorAsset * bgasset; // offset 0x10, size 0x4 + signed int numBoulders; // offset 0x14, size 0x4 + signed int nextBoulder; // offset 0x18, size 0x4 + class xEntBoulder * * boulderList; // offset 0x1C, size 0x4 + signed int * boulderAges; // offset 0x20, size 0x4 + unsigned int isMarker; // offset 0x24, size 0x4 + void * objectPtr; // offset 0x28, size 0x4 + float lengthOfInitVel; // offset 0x2C, size 0x4 + class xVec3 perp1; // offset 0x30, size 0xC + class xVec3 perp2; // offset 0x3C, size 0xC +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xPlatformOrbitData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xPlatformSpringboardData { + // total size: 0x2C +public: + float jmph[3]; // offset 0x0, size 0xC + float jmpbounce; // offset 0xC, size 0x4 + unsigned int animID[3]; // offset 0x10, size 0xC + class xVec3 jmpdir; // offset 0x1C, size 0xC + unsigned int springflags; // offset 0x28, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xPlatformSplineData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xBoulderGeneratorAsset : public xDynAsset { + // total size: 0x48 +public: + unsigned int object; // offset 0x10, size 0x4 + class xVec3 offset; // offset 0x14, size 0xC + float offsetRand; // offset 0x20, size 0x4 + class xVec3 initvel; // offset 0x24, size 0xC + float velAngleRand; // offset 0x30, size 0x4 + float velMagRand; // offset 0x34, size 0x4 + class xVec3 initaxis; // offset 0x38, size 0xC + float angvel; // offset 0x44, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xPlatformAsset { + // total size: 0x3C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char pad; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xPlatformERData er; // offset 0x4, size 0x4 + class xPlatformOrbitData orb; // offset 0x4, size 0x4 + class xPlatformSplineData spl; // offset 0x4, size 0x4 + class xPlatformMPData mp; // offset 0x4, size 0x4 + class xPlatformMechData mech; // offset 0x4, size 0x4 + class xPlatformPenData pen; // offset 0x4, size 0x4 + class xPlatformConvBeltData cb; // offset 0x4, size 0x4 + class xPlatformFallingData fall; // offset 0x4, size 0x8 + class xPlatformFRData fr; // offset 0x4, size 0x10 + class xPlatformBreakawayData ba; // offset 0x4, size 0x10 + class xPlatformSpringboardData sb; // offset 0x4, size 0x2C + class xPlatformTeeterData teet; // offset 0x4, size 0xC + class xPlatformPaddleData paddle; // offset 0x4, size 0x38 + class xPlatformFMData fm; // offset 0x4, size 0x4 + }; +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RyzMemData { + // total size: 0x1 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xPlatformTeeterData { + // total size: 0xC +public: + float itilt; // offset 0x0, size 0x4 + float maxtilt; // offset 0x4, size 0x4 + float invmass; // offset 0x8, size 0x4 +}; +class xPlatformMPData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class xPlatformMechData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xPlatformPaddleData { + // total size: 0x38 +public: + signed int startOrient; // offset 0x0, size 0x4 + signed int countOrient; // offset 0x4, size 0x4 + float orientLoop; // offset 0x8, size 0x4 + float orient[6]; // offset 0xC, size 0x18 + unsigned int paddleFlags; // offset 0x24, size 0x4 + float rotateSpeed; // offset 0x28, size 0x4 + float accelTime; // offset 0x2C, size 0x4 + float decelTime; // offset 0x30, size 0x4 + float hubRadius; // offset 0x34, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xPlatformPenData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xPlatformConvBeltData { + // total size: 0x4 +public: + float speed; // offset 0x0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xPlatformFMData { + // total size: 0x4 +public: + signed int nothingyet; // offset 0x0, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xPlatformFallingData { + // total size: 0x8 +public: + float speed; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xPlatformFRData { + // total size: 0x10 +public: + float fspeed; // offset 0x0, size 0x4 + float rspeed; // offset 0x4, size 0x4 + float ret_delay; // offset 0x8, size 0x4 + float post_ret_delay; // offset 0xC, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class anim_coll_data { + // total size: 0x0 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xPlatformBreakawayData { + // total size: 0x10 +public: + float ba_delay; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 + float reset_delay; // offset 0x8, size 0x4 + unsigned int breakflags; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xPlatformERData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00306D40 -> 0x003073A0 +*/ +// Range: 0x306D40 -> 0x3073A0 +void xBoulderGenerator_GenBoulder(class xBoulderGenerator * bg /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x306D40 -> 0x3073A0 + signed int i; // r2 + class xEntBoulder * b; // r17 + class xEntBoulder * bb; // r5 + float p1c; // r20 + float p2c; // r6 + float nf; // r2 + float randAng; // r2 + float sclMag; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003073A0 -> 0x003078A8 +*/ +// Range: 0x3073A0 -> 0x3078A8 +signed int xBoulderGenerator_EventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r17 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3073A0 -> 0x3078A8 + class xBoulderGenerator * bg; // r16 + class xVec3 pnt; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003078B0 -> 0x00307AF0 +*/ +// Range: 0x3078B0 -> 0x307AF0 +void xBoulderGenerator_Launch(class xBoulderGenerator * bg /* r19 */, class xVec3 * pnt /* r18 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3078B0 -> 0x307AF0 + signed int i; // r2 + class xEntBoulder * b; // r17 + float invTime; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00307AF0 -> 0x00307C8C +*/ +// Range: 0x307AF0 -> 0x307C8C +static signed int GetBoulderForGenerating(class xBoulderGenerator * bg /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x307AF0 -> 0x307C8C + signed int i; // r2 + signed int j; // r7 + signed int oldestCulled; // r6 + signed int minAge; // r5 + signed int numList; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00307C90 -> 0x00307FF8 +*/ +// Range: 0x307C90 -> 0x307FF8 +void xBoulderGenerator_Init(class xBoulderGenerator * bg /* r16 */, class xBoulderGeneratorAsset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x307C90 -> 0x307FF8 + unsigned int size; // r29+0x6C + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308000 -> 0x00308008 +*/ +// Range: 0x308000 -> 0x308008 +void xBoulderGenerator_Init(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308000 -> 0x308008 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308010 -> 0x00308130 +*/ +// Range: 0x308010 -> 0x308130 +static void RecurseChild(class xBase * child /* r2 */, class xEntBoulder * * boulList /* r20 */, signed int & currBoul /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308010 -> 0x308130 + signed int i; // r18 + signed int cnt; // r17 + class xGroup * grp; // r16 + class xBase * grpitem; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308130 -> 0x00308524 +*/ +// Range: 0x308130 -> 0x308524 +signed int xEntBoulderEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308130 -> 0x308524 + class xEntBoulder * s; // r16 + class FloatAndVoid dist; // r29+0x2C + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308530 -> 0x003086FC +*/ +// Range: 0x308530 -> 0x3086FC +void xEntBoulder_Reset(class xEntBoulder * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308530 -> 0x3086FC + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308700 -> 0x00308750 +*/ +// Range: 0x308700 -> 0x308750 +void xEntBoulder_Setup(class xEntBoulder * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308700 -> 0x308750 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308750 -> 0x00308C40 +*/ +// Range: 0x308750 -> 0x308C40 +void xEntBoulder_BubbleBowl(float multiplier /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308750 -> 0x308C40 + class xEntBoulder * ent; // r17 + class xRay3 ray; // r29+0x90 + class xCollis rayCollis; // r29+0x40 + class xEnt * optr; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308C40 -> 0x00308CA4 +*/ +// Range: 0x308C40 -> 0x308CA4 +void xEntBoulder_Kill(class xEntBoulder * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308C40 -> 0x308CA4 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00308CB0 -> 0x00309070 +*/ +// Range: 0x308CB0 -> 0x309070 +signed int xEntBoulder_KilledBySurface(class xEntBoulder * ent /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x308CB0 -> 0x309070 + class xCollis * coll; // r17 + class xCollis * cend; // r16 + float temp; // r29+0x4C + class xSurface * surf; // r2 + class zSurfaceProps * prop; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00309070 -> 0x0030A738 +*/ +// Range: 0x309070 -> 0x30A738 +void xEntBoulder_Update(class xEntBoulder * ent /* r20 */, class xScene * sc /* r16 */, float dt /* r25 */) { + // Blocks + /* anonymous block */ { + // Range: 0x309070 -> 0x30A738 + signed int i; // r7 + class zEnt * plent; // r4 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + class xVec3 a; // r29+0x1E0 + class xVec3 b; // r29+0x1D0 + class xVec3 tmp; // r29+0x1C0 + float fn; // r20 + class xVec3 velNorm; // r29+0x1B0 + signed int numDepens; // r19 + class xVec3 depen; // r29+0x1A0 + class xEnt * xb; // r18 + class xEntBoulder * boul; // r2 + class xVec3 force; // r29+0x190 + float forceMag; // r1 + class xEnt * xb; // r21 + class zNPCCommon * npc; // r21 + float oldMag; // r24 + class xVec3 depenNorm; // r29+0x180 + float depenComp; // r23 + class xVec3 newRotVec; // r29+0x170 + class xMat3x3 rotM; // r29+0xC0 + float vol; // r29+0x1F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030A740 -> 0x0030A7FC +*/ +// Range: 0x30A740 -> 0x30A7FC +void xEntBoulder_RealBUpdate(class xEnt * ent /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30A740 -> 0x30A7FC + class xEntBoulder * boul; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030A800 -> 0x0030A808 +*/ +// Range: 0x30A800 -> 0x30A808 +void xEntBoulder_BUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x30A800 -> 0x30A808 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030A810 -> 0x0030A858 +*/ +// Range: 0x30A810 -> 0x30A858 +void xEntBoulder_AddForce(class xEntBoulder * ent /* r2 */, class xVec3 * force /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30A810 -> 0x30A858 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030A860 -> 0x0030A998 +*/ +// Range: 0x30A860 -> 0x30A998 +void xEntBoulder_ApplyForces(class xEntCollis * collis /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30A860 -> 0x30A998 + signed int i; // r17 + class xEntBoulder * boul; // r2 + class xEntDrive * drv; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030A9A0 -> 0x0030AC00 +*/ +// Range: 0x30A9A0 -> 0x30AC00 +void xEntBoulder_Init(class xEntBoulder * ent /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30A9A0 -> 0x30AC00 + class xEntBoulderAsset * basset; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030AC00 -> 0x0030AC08 +*/ +// Range: 0x30AC00 -> 0x30AC08 +void xEntBoulder_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30AC00 -> 0x30AC08 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntBoulder.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030AC10 -> 0x0030AD7C +*/ +// Range: 0x30AC10 -> 0x30AD7C +void xEntBoulder_Render(class xEnt * ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30AC10 -> 0x30AD7C + class xModelInstance * model; // r16 + signed int shadowResult; // r29+0x3C + class xVec3 shadVec; // r29+0x30 + float radius; // r1 + } +} + diff --git a/dwarf/SB/Core/x/xEntDrive.cpp b/dwarf/SB/Core/x/xEntDrive.cpp new file mode 100644 index 000000000..811a1b6f4 --- /dev/null +++ b/dwarf/SB/Core/x/xEntDrive.cpp @@ -0,0 +1,1100 @@ +/* + Compile unit: C:\SB\Core\x\xEntDrive.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xSurface { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xEntDrive.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D5810 -> 0x001D66C4 +*/ +// Range: 0x1D5810 -> 0x1D66C4 +void xEntDriveUpdate(class xEntDrive * drv /* r17 */, float dt /* r29+0x150 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D5810 -> 0x1D66C4 + class xVec3 euler; // r29+0x140 + class xMat3x3 rot; // r29+0xA0 + class xMat3x3 a_descaled; // r29+0x70 + float dummy; // r2 + float len2; // r4 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + class xVec3 newq; // r29+0x130 + class xModelInstance & m; // r16 + class xVec3 world_loc; // r29+0x120 + class xVec3 new_loc; // r29+0x110 + class xMat4x3 oldmat; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntDrive.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D66D0 -> 0x001D6814 +*/ +// Range: 0x1D66D0 -> 0x1D6814 +void xEntDriveDismount(class xEntDrive * drv /* r2 */, float dmt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D66D0 -> 0x1D6814 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntDrive.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D6820 -> 0x001D6E20 +*/ +// Range: 0x1D6820 -> 0x1D6E20 +void xEntDriveMount(class xEntDrive * drv /* r18 */, class xEnt * driver /* r17 */, float mt /* r29+0x90 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D6820 -> 0x1D6E20 + class xVec3 euler; // r29+0x80 + class xMat3x3 a_descaled; // r29+0x40 + float dummy; // r2 + float len2; // r4 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + float len2; // r3 + float len_inv; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntDrive.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D6E20 -> 0x001D6E58 +*/ +// Range: 0x1D6E20 -> 0x1D6E58 +void xEntDriveInit(class xEntDrive * drv /* r2 */, class xEnt * driven /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D6E20 -> 0x1D6E58 + } +} + diff --git a/dwarf/SB/Core/x/xEntMotion.cpp b/dwarf/SB/Core/x/xEntMotion.cpp new file mode 100644 index 000000000..f6349f3e6 --- /dev/null +++ b/dwarf/SB/Core/x/xEntMotion.cpp @@ -0,0 +1,1647 @@ +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class xEntMotion * * dbg_xems; // size: 0x4, address: 0x50F970 +static unsigned short dbg_num; // size: 0x2, address: 0x50F974 +static unsigned short dbg_num_allocd; // size: 0x2, address: 0x50F978 +static signed short dbg_idx; // size: 0x2, address: 0x50E834 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class _tagxPad * gDebugPad; // size: 0x4, address: 0x50FA68 +class xScene * g_xSceneCur; // size: 0x4, address: 0x50FAB4 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +void xEntMotionDebugCB(); // size: 0x0, address: 0x1D7BF0 +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xSurface { + // total size: 0x0 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xFFX { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D6E60 -> 0x001D6F70 +*/ +// Range: 0x1D6E60 -> 0x1D6F70 +static void xEntMotionDebugIPad(class xEntMotion * xem /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D6E60 -> 0x1D6F70 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D6F70 -> 0x001D70D8 +*/ +// Range: 0x1D6F70 -> 0x1D70D8 +static void xEntMotionDebugDraw(class xEntMotion * xem /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D6F70 -> 0x1D70D8 + class xMovePoint * xmp; // r22 + unsigned short idx; // r21 + class xMovePoint * omp; // r20 + unsigned short jdx; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D70E0 -> 0x001D7BEC +*/ +// Range: 0x1D70E0 -> 0x1D7BEC +static void xEntMotionDebugWrite(class xEntMotion * xem /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D70E0 -> 0x1D7BEC + char * gps; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D7BF0 -> 0x001D7C50 +*/ +// Range: 0x1D7BF0 -> 0x1D7C50 +static void xEntMotionDebugCB() { + // Blocks + /* anonymous block */ { + // Range: 0x1D7BF0 -> 0x1D7C50 + class xEntMotion * xem; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D7C50 -> 0x001D7C68 +*/ +// Range: 0x1D7C50 -> 0x1D7C68 +void xEntMotionDebugExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1D7C50 -> 0x1D7C68 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D7C70 -> 0x001D7CD0 +*/ +// Range: 0x1D7C70 -> 0x1D7CD0 +void xEntMotionDebugInit(unsigned short num_xems /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D7C70 -> 0x1D7CD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D7CD0 -> 0x001D83C4 +*/ +// Range: 0x1D7CD0 -> 0x1D83C4 +void xEntMotionTranslate(class xEntMotion * motion /* r2 */, class xVec3 * dpos /* r2 */, class xMat4x3 * dmat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D7CD0 -> 0x1D83C4 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D83D0 -> 0x001D84F0 +*/ +// Range: 0x1D83D0 -> 0x1D84F0 +void xEntMechReverse(class xEntMotion * motion /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D83D0 -> 0x1D84F0 + class xEntMechData * mech; // r9 + class xEntMotionMechData * mkasst; // r8 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D84F0 -> 0x001D8610 +*/ +// Range: 0x1D84F0 -> 0x1D8610 +void xEntMechForward(class xEntMotion * motion /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D84F0 -> 0x1D8610 + class xEntMechData * mech; // r10 + class xEntMotionMechData * mkasst; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D8610 -> 0x001D8900 +*/ +// Range: 0x1D8610 -> 0x1D8900 +static unsigned int xEntRotMove(class xEntMotion * motion /* r18 */, float dt /* r29+0x40 */, class xEntFrame * frame /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D8610 -> 0x1D8900 + class xEntMechData * mech; // r16 + class xEntMotionMechData * mkasst; // r5 + unsigned int last; // r16 + float tmradj; // r3 + float rem; // r2 + float speed; // r29+0x40 + class xEnt * ownr; // r2 + class xEntAsset * easst; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D8900 -> 0x001D8B38 +*/ +// Range: 0x1D8900 -> 0x1D8B38 +static unsigned int xEntSldMove(class xEntMotion * motion /* r2 */, float dt /* r29 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D8900 -> 0x1D8B38 + class xEntMechData * mech; // r5 + class xEntMotionMechData * mkasst; // r4 + unsigned int last; // r2 + float tmradj; // r3 + float rem; // r2 + float speed; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D8B40 -> 0x001D8E70 +*/ +// Range: 0x1D8B40 -> 0x1D8E70 +static void xEntMechMove(class xEntMotion * motion /* r19 */, class xScene * sc /* r8 */, float dt /* r20 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D8B40 -> 0x1D8E70 + class xEntMechData * mech; // r18 + class xEntMotionMechData * mkasst; // r17 + unsigned int last; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D8E70 -> 0x001D8FA8 +*/ +// Range: 0x1D8E70 -> 0x1D8FA8 +static void xEntPenMove(class xEntMotion * motion /* r18 */, float dt /* r20 */, class xEntFrame * frame /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D8E70 -> 0x1D8FA8 + class xEntPenData * pen; // r16 + class xEntMotionPenData * aspen; // r19 + float th; // r22 + float dangle; // r29+0xA0 + float newt; // r29+0xA0 + float rem; // r1 + class xMat4x3 delta_mat; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D8FB0 -> 0x001D9944 +*/ +// Range: 0x1D8FB0 -> 0x1D9944 +static void xEntMPMove(class xEntMotion * motion /* r19 */, class xScene * sc /* r18 */, float dt /* r20 */, class xEntFrame * frame /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D8FB0 -> 0x1D9944 + class xEntMPData * mp; // r16 + float newdist; // r29+0x190 + class xMovePoint * prev; // r2 + float qdot; // r29+0x190 + class xVec3 tgt; // r29+0x180 + class xVec3 dir; // r29+0x170 + class xVec3 bank; // r29+0x160 + class xQuat quat; // r29+0xA0 + class xQuat qold; // r29+0x90 + class xMat3x3 tmpmat; // r29+0x60 + float u; // r21 + class xVec3 gravity; // r29+0x150 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D9950 -> 0x001D9AAC +*/ +// Range: 0x1D9950 -> 0x1D9AAC +static void xEntMPGetNext(class xEntMotion * motion /* r17 */, class xMovePoint * prev /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D9950 -> 0x1D9AAC + class xEntMPData * mp; // r16 + class xVec3 tempdir; // r29+0x60 + class xMat3x3 mat; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D9AB0 -> 0x001D9BF8 +*/ +// Range: 0x1D9AB0 -> 0x1D9BF8 +static void xEntOrbitMove(class xEntMotion * motion /* r17 */, float dt /* r21 */, class xEntFrame * frame /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D9AB0 -> 0x1D9BF8 + float th; // r1 + float u; // r22 + float newt; // r1 + float rem; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D9C00 -> 0x001D9EA8 +*/ +// Range: 0x1D9C00 -> 0x1D9EA8 +static void xEntERMove(class xEntMotion * motion /* r2 */, float dt /* r29 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D9C00 -> 0x1D9EA8 + float newt; // r1 + float rem; // r2 + float scale; // r2 + float rem; // r29 + float scale; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D9EB0 -> 0x001D9F9C +*/ +// Range: 0x1D9EB0 -> 0x1D9F9C +void xEntMotionMove(class xEntMotion * motion /* r16 */, class xScene * sc /* r2 */, float dt /* r20 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D9EB0 -> 0x1D9F9C + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001D9FA0 -> 0x001DA4E4 +*/ +// Range: 0x1D9FA0 -> 0x1DA4E4 +void xEntMotionReset(class xEntMotion * motion /* r18 */, class xScene * sc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1D9FA0 -> 0x1DA4E4 + class xEntMotionPenData * aspen; // r16 + class xMat3x3 pshrot; // r29+0x60 + class xMat3x3 * modlrot; // r19 + class xVec3 * modlpos; // r17 + class xEnt * ownr; // r5 + class xEntMotionMechData * mkasst; // r17 + class xEntMechData * mech; // r16 + float drot; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xEntMotion.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA4F0 -> 0x001DA7D8 +*/ +// Range: 0x1DA4F0 -> 0x1DA7D8 +void xEntMotionInit(class xEntMotion * motion /* r2 */, class xEnt * owner /* r2 */, class xEntMotionAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA4F0 -> 0x1DA7D8 + class xEntMotionMechData * mkasst; // r7 + } +} + diff --git a/dwarf/SB/Core/x/xEnv.cpp b/dwarf/SB/Core/x/xEnv.cpp new file mode 100644 index 000000000..34f5f800a --- /dev/null +++ b/dwarf/SB/Core/x/xEnv.cpp @@ -0,0 +1,615 @@ +/* + Compile unit: C:\SB\Core\x\xEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xEnv * gCurXEnv; // size: 0x4, address: 0x50F97C +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; + +/* + Compile unit: C:\SB\Core\x\xEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA7E0 -> 0x001DA80C +*/ +// Range: 0x1DA7E0 -> 0x1DA80C +void xEnvRender(class xEnv * env /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA7E0 -> 0x1DA80C + } +} + +/* + Compile unit: C:\SB\Core\x\xEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA810 -> 0x001DA848 +*/ +// Range: 0x1DA810 -> 0x1DA848 +void xEnvFree(class xEnv * env /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA810 -> 0x1DA848 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA850 -> 0x001DA880 +*/ +// Range: 0x1DA850 -> 0x1DA880 +void xEnvSetup(class xEnv * env /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA850 -> 0x1DA880 + } +} + +/* + Compile unit: C:\SB\Core\x\xEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA880 -> 0x001DA8BC +*/ +// Range: 0x1DA880 -> 0x1DA8BC +void xEnvLoadBsp(class xEnv * env /* r16 */, void * data /* r2 */, unsigned int datasize /* r2 */, signed int dataType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA880 -> 0x1DA8BC + } +} + diff --git a/dwarf/SB/Core/x/xEvent.cpp b/dwarf/SB/Core/x/xEvent.cpp new file mode 100644 index 000000000..538ba50d5 --- /dev/null +++ b/dwarf/SB/Core/x/xEvent.cpp @@ -0,0 +1,180 @@ +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char zEventLogBuf[20][256]; // size: 0x1400, address: 0x5C47B0 +signed int zEventLogBufInit; // size: 0x4, address: 0x0 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002832C0 -> 0x0028345C +*/ +// Range: 0x2832C0 -> 0x28345C +void zEntEvent(class xBase * from /* r20 */, class xBase * to /* r19 */, unsigned int toEvent /* r18 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */, signed int forceEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2832C0 -> 0x28345C + class xLinkAsset * idx; // r17 + signed int i; // r16 + class xBase * sendTo; // r21 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00283460 -> 0x00283480 +*/ +// Range: 0x283460 -> 0x283480 +void zEntEvent(class xBase * from /* r2 */, class xBase * to /* r5 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x283460 -> 0x283480 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00283480 -> 0x002834A0 +*/ +// Range: 0x283480 -> 0x2834A0 +void zEntEvent(class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x283480 -> 0x2834A0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002834A0 -> 0x002834C0 +*/ +// Range: 0x2834A0 -> 0x2834C0 +void zEntEvent(class xBase * to /* r4 */, unsigned int toEvent /* r5 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2834A0 -> 0x2834C0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002834C0 -> 0x002834E0 +*/ +// Range: 0x2834C0 -> 0x2834E0 +void zEntEvent(class xBase * to /* r4 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2834C0 -> 0x2834E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002834E0 -> 0x00283524 +*/ +// Range: 0x2834E0 -> 0x283524 +void zEntEvent(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float toParam0 /* r29+0x20 */, float toParam1 /* r29+0x20 */, float toParam2 /* r29+0x20 */, float toParam3 /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2834E0 -> 0x283524 + float toParam[4]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00283530 -> 0x00283550 +*/ +// Range: 0x283530 -> 0x283550 +void zEntEvent(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x283530 -> 0x283550 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00283550 -> 0x002835A8 +*/ +// Range: 0x283550 -> 0x2835A8 +void zEntEvent(unsigned int toID /* r2 */, unsigned int toEvent /* r16 */, float toParam0 /* r29+0x30 */, float toParam1 /* r29+0x30 */, float toParam2 /* r29+0x30 */, float toParam3 /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x283550 -> 0x2835A8 + class xBase * sendTo; // r2 + float toParam[4]; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002835B0 -> 0x002835F8 +*/ +// Range: 0x2835B0 -> 0x2835F8 +void zEntEvent(unsigned int toID /* r2 */, unsigned int toEvent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2835B0 -> 0x2835F8 + class xBase * sendTo; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00283600 -> 0x00283650 +*/ +// Range: 0x283600 -> 0x283650 +void zEntEvent(char * to /* r2 */, unsigned int toEvent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x283600 -> 0x283650 + unsigned int id; // r2 + class xBase * sendTo; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xFFX.cpp b/dwarf/SB/Core/x/xFFX.cpp new file mode 100644 index 000000000..031010451 --- /dev/null +++ b/dwarf/SB/Core/x/xFFX.cpp @@ -0,0 +1,1236 @@ +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int psize; // size: 0x4, address: 0x50F980 +static class xFFX * pool; // size: 0x4, address: 0x50F984 +static class xFFX * alist; // size: 0x4, address: 0x50F988 +static unsigned int shake_psize; // size: 0x4, address: 0x50F98C +static class xFFXShakeState * shake_pool; // size: 0x4, address: 0x50F990 +static class xFFXShakeState * shake_alist; // size: 0x4, address: 0x50F994 +static unsigned int rot_match_psize; // size: 0x4, address: 0x50F998 +static class xFFXRotMatchState * rot_match_pool; // size: 0x4, address: 0x50F99C +static class xFFXRotMatchState * rot_match_alist; // size: 0x4, address: 0x50F9A0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* doEffect)(class xEnt *, class xScene *, float, void *); // offset 0x4, size 0x4 + void * fdata; // offset 0x8, size 0x4 + class xFFX * next; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xFFXShakeState { + // total size: 0x24 +public: + class xVec3 disp; // offset 0x0, size 0xC + float dur; // offset 0xC, size 0x4 + float freq; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float alpha; // offset 0x18, size 0x4 + float lval; // offset 0x1C, size 0x4 + class xFFXShakeState * next; // offset 0x20, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xFFXRotMatchState { + // total size: 0x44 +public: + signed int lgrounded; // offset 0x0, size 0x4 + class xVec3 lfup; // offset 0x4, size 0xC + class xVec3 lfat; // offset 0x10, size 0xC + class xVec3 plfat; // offset 0x1C, size 0xC + float tmr; // offset 0x28, size 0x4 + float mrate; // offset 0x2C, size 0x4 + float tmatch; // offset 0x30, size 0x4 + float rrate; // offset 0x34, size 0x4 + float trelax; // offset 0x38, size 0x4 + float max_decl; // offset 0x3C, size 0x4 + class xFFXRotMatchState * next; // offset 0x40, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA8C0 -> 0x001DA8E8 +*/ +// Range: 0x1DA8C0 -> 0x1DA8E8 +class xFFXRotMatchState * xFFXRotMatchAlloc() { + // Blocks + /* anonymous block */ { + // Range: 0x1DA8C0 -> 0x1DA8E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA8F0 -> 0x001DA988 +*/ +// Range: 0x1DA8F0 -> 0x1DA988 +void xFFXRotMatchPoolInit(unsigned int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA8F0 -> 0x1DA988 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA990 -> 0x001DA9A0 +*/ +// Range: 0x1DA990 -> 0x1DA9A0 +void xFFXShakeFree(class xFFXShakeState * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA990 -> 0x1DA9A0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA9A0 -> 0x001DA9C8 +*/ +// Range: 0x1DA9A0 -> 0x1DA9C8 +class xFFXShakeState * xFFXShakeAlloc() { + // Blocks + /* anonymous block */ { + // Range: 0x1DA9A0 -> 0x1DA9C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DA9D0 -> 0x001DAA68 +*/ +// Range: 0x1DA9D0 -> 0x1DAA68 +void xFFXShakePoolInit(unsigned int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DA9D0 -> 0x1DAA68 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAA70 -> 0x001DABCC +*/ +// Range: 0x1DAA70 -> 0x1DABCC +void xFFXShakeUpdateEnt(class xEnt * ent /* r17 */, float dt /* r29+0x40 */, void * fdata /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAA70 -> 0x1DABCC + class xFFXShakeState * ss; // r2 + float tnext; // r20 + float mag; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DABD0 -> 0x001DAC04 +*/ +// Range: 0x1DABD0 -> 0x1DAC04 +void xFFXApply(class xEnt * ent /* r5 */, class xScene * sc /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DABD0 -> 0x1DAC04 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAC10 -> 0x001DADB8 +*/ +// Range: 0x1DAC10 -> 0x1DADB8 +static void xFFXApplyOne(class xFFX * ffx /* r23 */, class xEnt * ent /* r22 */, class xScene * sc /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAC10 -> 0x1DADB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DADC0 -> 0x001DAE28 +*/ +// Range: 0x1DADC0 -> 0x1DAE28 +signed short xFFXAddEffect(class xEnt * ent /* r2 */, void (* dof)(class xEnt *, class xScene *, float, void *) /* r2 */, void * fd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DADC0 -> 0x1DAE28 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAE30 -> 0x001DAE58 +*/ +// Range: 0x1DAE30 -> 0x1DAE58 +signed short xFFXAddEffect(class xEnt * ent /* r2 */, class xFFX * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAE30 -> 0x1DAE58 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAE60 -> 0x001DAE74 +*/ +// Range: 0x1DAE60 -> 0x1DAE74 +void xFFXTurnOff(class xFFX * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAE60 -> 0x1DAE74 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAE80 -> 0x001DAE90 +*/ +// Range: 0x1DAE80 -> 0x1DAE90 +void xFFXTurnOn(class xFFX * f /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAE80 -> 0x1DAE90 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAE90 -> 0x001DAEB8 +*/ +// Range: 0x1DAE90 -> 0x1DAEB8 +class xFFX * xFFXAlloc() { + // Blocks + /* anonymous block */ { + // Range: 0x1DAE90 -> 0x1DAEB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAEC0 -> 0x001DAF50 +*/ +// Range: 0x1DAEC0 -> 0x1DAF50 +void xFFXPoolInit(unsigned int num_ffx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAEC0 -> 0x1DAF50 + unsigned int i; // r7 + } +} + diff --git a/dwarf/SB/Core/x/xFX.cpp b/dwarf/SB/Core/x/xFX.cpp new file mode 100644 index 000000000..1e87aaace --- /dev/null +++ b/dwarf/SB/Core/x/xFX.cpp @@ -0,0 +1,3819 @@ +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class RpAtomic * (* gAtomicRenderCallBack)(class RpAtomic *); // size: 0x4, address: 0x50F9BC +float EnvMapShininess; // size: 0x4, address: 0x50E858 +float BumpMapBumpiness; // size: 0x4, address: 0x0 +class RpLight * MainLight; // size: 0x4, address: 0x50F9C0 +unsigned int xfx_initted; // size: 0x4, address: 0x50F9C4 +class xFXRing ringlist[8]; // size: 0x1E0, address: 0x5613C0 +static class RxObjSpace3DVertex * Im3DBuffer; // size: 0x4, address: 0x0 +static unsigned int Im3DBufferPos; // size: 0x4, address: 0x50F9C8 +static class RwTexture * g_txtr_drawRing; // size: 0x4, address: 0x50F9CC +static class xFXBubbleParams defaultBFX[1]; // size: 0x18, address: 0x418B50 +static unsigned int bfx_curr; // size: 0x4, address: 0x50F9D0 +static unsigned int bfx_max; // size: 0x4, address: 0x0 +static class xFXBubbleParams * BFX; // size: 0x4, address: 0x50E85C +static unsigned int sFresnelMap; // size: 0x4, address: 0x50F9D4 +static unsigned int sEnvMap; // size: 0x4, address: 0x50F9D8 +static signed int sTweaked; // size: 0x4, address: 0x50F9DC +static class RxPipeline * xFXanimUVPipeline; // size: 0x4, address: 0x50F9E0 +float xFXanimUVRotMat0[2]; // size: 0x8, address: 0x50E860 +float xFXanimUVRotMat1[2]; // size: 0x8, address: 0x50E868 +float xFXanimUVTrans[2]; // size: 0x8, address: 0x50F9E8 +float xFXanimUVScale[2]; // size: 0x8, address: 0x50E870 +float xFXanimUV2PRotMat0[2]; // size: 0x8, address: 0x50E878 +float xFXanimUV2PRotMat1[2]; // size: 0x8, address: 0x50E880 +float xFXanimUV2PTrans[2]; // size: 0x8, address: 0x50F9F0 +float xFXanimUV2PScale[2]; // size: 0x8, address: 0x50E888 +class RwTexture * xFXanimUV2PTexture; // size: 0x4, address: 0x50F9F8 +class RxPipeline * xFXgooPipeline; // size: 0x4, address: 0x50F9FC +static unsigned char alpha_count0[300]; // size: 0x12C, address: 0x5615A0 +static unsigned char alpha_count1[300]; // size: 0x12C, address: 0x5616D0 +unsigned char segments[43]; // size: 0x2B, address: 0x4F8BD0 +static class _tagFirework sFirework[10]; // size: 0x168, address: 0x561800 +static class zParEmitter * sFireworkTrailEmit; // size: 0x4, address: 0x50FA00 +static class zParEmitter * sFirework1Emit; // size: 0x4, address: 0x50FA04 +static class zParEmitter * sFirework2Emit; // size: 0x4, address: 0x50FA08 +static unsigned int sFireworkSoundID; // size: 0x4, address: 0x50FA0C +static unsigned int sFireworkLaunchSoundID; // size: 0x4, address: 0x50FA10 +class xFXStreak sStreakList[10]; // size: 0x4038, address: 0x561970 +class xFXShine sShineList[2]; // size: 0x22F0, address: 0x565A40 +static class xFXRibbon * active_ribbons[64]; // size: 0x100, address: 0x567DC0 +static unsigned int active_ribbons_size; // size: 0x4, address: 0x50FA14 +static unsigned char ribbons_dirty; // size: 0x1, address: 0x50FA18 +static char * blend_mode_labels[11]; // size: 0x2C, address: 0x0 +static unsigned int blend_mode_values[11]; // size: 0x2C, address: 0x0 +static unsigned int blend_modes; // size: 0x4, address: 0x0 +class tier_queue_allocator joint_alloc; // size: 0x1C, address: 0x567EC0 +static float sAuraPulse[2]; // size: 0x8, address: 0x50FA20 +static float sAuraPulseAng[2]; // size: 0x8, address: 0x50FA28 +static class _xFXAuraAngle sAuraAngle[2]; // size: 0x18, address: 0x567EE0 +static class RwTexture * gAuraTex; // size: 0x4, address: 0x50FA30 +static class _xFXAura sAura[32]; // size: 0x480, address: 0x567F00 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +signed int compare_ribbons(void *, void *); // size: 0x0, address: 0x1E70E0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class tagiRenderInput gRenderBuffer; // size: 0x80, address: 0x538BD0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RpAtomic * AtomicResetMaterialEffects(class RpAtomic *, void *); // size: 0x0, address: 0x0 +class RpMaterial * MaterialResetEffects(class RpMaterial *, void *); // size: 0x0, address: 0x0 +unsigned int gFXSurfaceFlags; // size: 0x4, address: 0x50F4D8 +class RpMaterial * MaterialSetBumpMap(class RpMaterial *, void *); // size: 0x0, address: 0x0 +class RpMaterial * MaterialSetBumpiness(class RpMaterial *, void *); // size: 0x0, address: 0x0 +class RpMaterial * MaterialSetShininess(class RpMaterial *, void *); // size: 0x0, address: 0x1EACD0 +class RpMaterial * MaterialSetEnvMap2(class RpMaterial *, void *); // size: 0x0, address: 0x1EAB60 +class RpMaterial * MatUpdateFrame(class RpMaterial *, void *); // size: 0x0, address: 0x0 +class RpMaterial * MaterialDisableMatFX(class RpMaterial *, void *); // size: 0x0, address: 0x1EADD0 +class RpAtomic * PreAllocMatFX_cb(class RpAtomic *, void *); // size: 0x0, address: 0x1EAD30 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * xFXBubbleRender(class RpAtomic *); // size: 0x0, address: 0x1EA900 +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class tri_data { + // total size: 0x78 +public: + class vert_data vert[3]; // offset 0x0, size 0x78 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xFXRibbon { + // total size: 0x140 +public: + class config cfg; // offset 0x0, size 0x10 + unsigned char activated; // offset 0x10, size 0x1 + class RwRaster * raster; // offset 0x14, size 0x4 + class tier_queue joints; // offset 0x18, size 0x110 + class curve_node * curve; // offset 0x128, size 0x4 + unsigned int curve_size; // offset 0x12C, size 0x4 + unsigned int curve_index; // offset 0x130, size 0x4 + float ilife; // offset 0x134, size 0x4 + unsigned int mtime; // offset 0x138, size 0x4 + unsigned int mlife; // offset 0x13C, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class config { + // total size: 0x10 +public: + float life_time; // offset 0x0, size 0x4 + unsigned int blend_src; // offset 0x4, size 0x4 + unsigned int blend_dst; // offset 0x8, size 0x4 + float pivot; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpSkin { + // total size: 0x0 +}; +class xFXStreak { + // total size: 0x66C +public: + unsigned int flags; // offset 0x0, size 0x4 + float frequency; // offset 0x4, size 0x4 + float alphaFadeRate; // offset 0x8, size 0x4 + float alphaStart; // offset 0xC, size 0x4 + float elapsed; // offset 0x10, size 0x4 + float lifetime; // offset 0x14, size 0x4 + unsigned int head; // offset 0x18, size 0x4 + class iColor_tag color_a; // offset 0x1C, size 0x4 + class iColor_tag color_b; // offset 0x20, size 0x4 + class RwTexture * texturePtr; // offset 0x24, size 0x4 + class RwRaster * textureRasterPtr; // offset 0x28, size 0x4 + class xFXStreakElem elem[50]; // offset 0x2C, size 0x640 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class block_data { + // total size: 0x8 +public: + unsigned char prev; // offset 0x0, size 0x1 + unsigned char next; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xFXBubbleParams { + // total size: 0x18 +public: + unsigned int pass1 : 1; // offset 0x0, size 0x4 + unsigned int pass2 : 1; // offset 0x0, size 0x4 + unsigned int pass3 : 1; // offset 0x0, size 0x4 + unsigned int padding : 5; // offset 0x0, size 0x4 + unsigned char pass1_alpha; // offset 0x1, size 0x1 + unsigned char pass2_alpha; // offset 0x2, size 0x1 + unsigned char pass3_alpha; // offset 0x3, size 0x1 + unsigned int pass1_fbmsk; // offset 0x4, size 0x4 + unsigned int fresnel_map; // offset 0x8, size 0x4 + float fresnel_map_coeff; // offset 0xC, size 0x4 + unsigned int env_map; // offset 0x10, size 0x4 + float env_map_coeff; // offset 0x14, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagFirework { + // total size: 0x24 +public: + signed int state; // offset 0x0, size 0x4 + float timer; // offset 0x4, size 0x4 + class xVec3 vel; // offset 0x8, size 0xC + class xVec3 pos; // offset 0x14, size 0xC + float fuel; // offset 0x20, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class joint_data { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int born; // offset 0x4, size 0x4 + class xVec3 loc; // offset 0x8, size 0xC + class xVec3 norm; // offset 0x14, size 0xC + float orient; // offset 0x20, size 0x4 + float scale; // offset 0x24, size 0x4 + float alpha; // offset 0x28, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class _xFXAuraAngle { + // total size: 0xC +public: + float angle; // offset 0x0, size 0x4 + float cc; // offset 0x4, size 0x4 + float ss; // offset 0x8, size 0x4 +}; +enum RpMatFXMaterialFlags { + rpMATFXEFFECTNULL = 0, + rpMATFXEFFECTBUMPMAP = 1, + rpMATFXEFFECTENVMAP = 2, + rpMATFXEFFECTBUMPENVMAP = 3, + rpMATFXEFFECTDUAL = 4, + rpMATFXEFFECTUVTRANSFORM = 5, + rpMATFXEFFECTDUALUVTRANSFORM = 6, + rpMATFXEFFECTMAX = 7, + rpMATFXNUMEFFECTS = 6, + rpMATFXFORCEENUMSIZEINT = 2147483647, +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xFXShine { + // total size: 0x1178 +public: + unsigned int flags; // offset 0x0, size 0x4 + class xVec3 * ppos; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + float spd; // offset 0x14, size 0x4 + float width; // offset 0x18, size 0x4 + float frequency; // offset 0x1C, size 0x4 + float elapsed; // offset 0x20, size 0x4 + float lifetimeElemMax; // offset 0x24, size 0x4 + float lifetimeMax; // offset 0x28, size 0x4 + float lifetime; // offset 0x2C, size 0x4 + float rotateSpeed; // offset 0x30, size 0x4 + float rotateZ; // offset 0x34, size 0x4 + class iColor_tag color_a; // offset 0x38, size 0x4 + class iColor_tag color_b; // offset 0x3C, size 0x4 + class RwTexture * texturePtr; // offset 0x40, size 0x4 + class RwRaster * textureRasterPtr; // offset 0x44, size 0x4 + class xFXShineElem elem[100]; // offset 0x48, size 0x1130 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xFXRing { + // total size: 0x3C +public: + unsigned int texture; // offset 0x0, size 0x4 + float lifetime; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + float time; // offset 0x14, size 0x4 + float ring_radius; // offset 0x18, size 0x4 + float ring_radius_delta; // offset 0x1C, size 0x4 + float ring_tilt; // offset 0x20, size 0x4 + float ring_tilt_delta; // offset 0x24, size 0x4 + float ring_height; // offset 0x28, size 0x4 + float ring_height_delta; // offset 0x2C, size 0x4 + class iColor_tag ring_color; // offset 0x30, size 0x4 + unsigned short ring_segs; // offset 0x34, size 0x2 + unsigned char u_repeat; // offset 0x36, size 0x1 + unsigned char v_repeat; // offset 0x37, size 0x1 + class xFXRing * * parent; // offset 0x38, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class vert_data { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 norm; // offset 0xC, size 0xC + class RwRGBA color; // offset 0x18, size 0x4 + class RwTexCoords uv; // offset 0x1C, size 0x8 + float depth; // offset 0x24, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class tier_queue_allocator { + // total size: 0x1C +public: + class block_data * blocks; // offset 0x0, size 0x4 + unsigned int _unit_size; // offset 0x4, size 0x4 + unsigned int _block_size; // offset 0x8, size 0x4 + unsigned int _block_size_shift; // offset 0xC, size 0x4 + unsigned int _max_blocks; // offset 0x10, size 0x4 + unsigned int _max_blocks_shift; // offset 0x14, size 0x4 + unsigned char head; // offset 0x18, size 0x1 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class tier_queue { + // total size: 0x110 +public: + unsigned int first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int wrap_mask; // offset 0x8, size 0x4 + class tier_queue_allocator * alloc; // offset 0xC, size 0x4 + unsigned char blocks[256]; // offset 0x10, size 0x100 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class _xFXAura { + // total size: 0x24 +public: + class xVec3 pos; // offset 0x0, size 0xC + class iColor_tag color; // offset 0xC, size 0x4 + float size; // offset 0x10, size 0x4 + void * parent; // offset 0x14, size 0x4 + unsigned int frame; // offset 0x18, size 0x4 + float dangle[2]; // offset 0x1C, size 0x8 +}; +class xFXShineElem { + // total size: 0x2C +public: + unsigned int flag; // offset 0x0, size 0x4 + class xVec3 p; // offset 0x4, size 0xC + class xVec3 vel; // offset 0x10, size 0xC + float lifetime; // offset 0x1C, size 0x4 + float a; // offset 0x20, size 0x4 + class iColor_tag cola; // offset 0x24, size 0x4 + class iColor_tag colb; // offset 0x28, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xFXStreakElem { + // total size: 0x20 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xVec3 p[2]; // offset 0x4, size 0x18 + float a; // offset 0x1C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class iterator { + // total size: 0x8 +public: + unsigned int it; // offset 0x0, size 0x4 + class tier_queue * owner; // offset 0x4, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntBoulder { + // total size: 0x0 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class zEntHangable { + // total size: 0x0 +}; +class xParSys { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zPlatform { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class tagiRenderInput { + // total size: 0x80 +public: + unsigned short * m_index; // offset 0x0, size 0x4 + class RxObjSpace3DVertex * m_vertex; // offset 0x4, size 0x4 + float * m_vertexTZ; // offset 0x8, size 0x4 + unsigned int m_mode; // offset 0xC, size 0x4 + signed int m_vertexType; // offset 0x10, size 0x4 + signed int m_vertexTypeSize; // offset 0x14, size 0x4 + signed int m_indexCount; // offset 0x18, size 0x4 + signed int m_vertexCount; // offset 0x1C, size 0x4 + class xMat4x3 m_camViewMatrix; // offset 0x20, size 0x40 + class xVec4 m_camViewR; // offset 0x60, size 0x10 + class xVec4 m_camViewU; // offset 0x70, size 0x10 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4130 -> 0x001E413C +*/ +// Range: 0x1E4130 -> 0x1E413C +void xFXSceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x1E4130 -> 0x1E413C + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4140 -> 0x001E4148 +*/ +// Range: 0x1E4140 -> 0x1E4148 +void xFXScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x1E4140 -> 0x1E4148 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4150 -> 0x001E4158 +*/ +// Range: 0x1E4150 -> 0x1E4158 +void xFXSceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x1E4150 -> 0x1E4158 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4160 -> 0x001E41A0 +*/ +// Range: 0x1E4160 -> 0x1E41A0 +void xFXSceneSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x1E4160 -> 0x1E41A0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E41A0 -> 0x001E41A8 +*/ +// Range: 0x1E41A0 -> 0x1E41A8 +void xFXSceneInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1E41A0 -> 0x1E41A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E41B0 -> 0x001E41B8 +*/ +// Range: 0x1E41B0 -> 0x1E41B8 +void xFXShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x1E41B0 -> 0x1E41B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E41C0 -> 0x001E41C8 +*/ +// Range: 0x1E41C0 -> 0x1E41C8 +void xFXStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x1E41C0 -> 0x1E41C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E41D0 -> 0x001E435C +*/ +// Range: 0x1E41D0 -> 0x1E435C +void xFXAuraRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1E41D0 -> 0x1E435C + signed int fogstate; // r29+0x3C + class _xFXAura * ap; // r17 + signed int i; // r16 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4360 -> 0x001E48DC +*/ +// Range: 0x1E4360 -> 0x1E48DC +static void RenderRotatedBillboard(class xVec3 * pos /* r29+0xF0 */, class _xFXAuraAngle * rot /* r30 */, unsigned int count /* r29+0xEC */, float width /* r29+0x3720 */, float height /* r29+0x3720 */, class iColor_tag tint /* r29+0x10C */, unsigned int flipUV /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E4360 -> 0x1E48DC + unsigned int i; // r29+0xD0 + class RxObjSpace3DVertex vert[384]; // r29+0x110 + class RxObjSpace3DVertex * vp; // r21 + class xMat4x3 * cammat; // r20 + class xVec3 * rt; // r2 + class xVec3 * up; // r19 + float zero; // r22 + float one; // r21 + float nearclip; // r20 + class xVec3 myat; // r29+0x3710 + float depth; // r29+0x3720 + float camdist; // r1 + float at_offset; // r12 + float scale; // r15 + float dx; // r16 + float dy; // r15 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E48E0 -> 0x001E4AB0 +*/ +// Range: 0x1E48E0 -> 0x1E4AB0 +void xFXAuraUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E48E0 -> 0x1E4AB0 + class _xFXAura * ap; // r6 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4AB0 -> 0x001E4BB8 +*/ +// Range: 0x1E4AB0 -> 0x1E4BB8 +void xFXAuraAdd(void * parent /* r2 */, class xVec3 * pos /* r2 */, class iColor_tag * color /* r2 */, float size /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E4AB0 -> 0x1E4BB8 + signed int i; // r8 + class _xFXAura * ap; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4BC0 -> 0x001E4CF4 +*/ +// Range: 0x1E4BC0 -> 0x1E4CF4 +void xFXRibbonRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1E4BC0 -> 0x1E4CF4 + class xFXRibbon * prev; // r19 + unsigned int i; // r18 + class xFXRibbon * ribbon; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E4D00 -> 0x001E4E94 +*/ +// Range: 0x1E4D00 -> 0x1E4E94 +void xFXRibbonSceneEnter() { + // Blocks + /* anonymous block */ { + // Range: 0x1E4D00 -> 0x1E4E94 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E5080 -> 0x001E5120 +*/ +// Range: 0x1E5080 -> 0x1E5120 +signed int render_compare(class xFXRibbon * this /* r2 */, class xFXRibbon & c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E5080 -> 0x1E5120 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E5120 -> 0x001E5578 +*/ +// Range: 0x1E5120 -> 0x1E5578 +void render_strip(class xFXRibbon * this /* r18 */, class RxObjSpace3DVertex * verts /* r17 */, class iterator first /* r29+0xA0 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E5120 -> 0x1E5578 + class RxObjSpace3DVertex * v; // r16 + signed int back; // r21 + float ulookup[2]; // r29+0x138 + class iterator last; // r29+0x130 + class iColor_tag color; // r29+0x14C + float width; // r29+0x148 + float offset1; // r6 + float offset2; // r1 + float u; // r29+0x150 + class xVec3 loc1; // r29+0x120 + class xVec3 loc2; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E5580 -> 0x001E5A34 +*/ +// Range: 0x1E5580 -> 0x1E5A34 +void eval_joint(class xFXRibbon * this /* r2 */, class joint_data & joint /* r2 */, class iColor_tag & color /* r2 */, float & width /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E5580 -> 0x1E5A34 + float frac; // r4 + class curve_node & node0; // r4 + class curve_node & node1; // r3 + float subfrac; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E5A40 -> 0x001E5DA0 +*/ +// Range: 0x1E5A40 -> 0x1E5DA0 +void refresh_joint(class xFXRibbon * this /* r2 */, class joint_data & joint /* r16 */, class iterator & it /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E5A40 -> 0x1E5DA0 + class xVec3 offset; // r29+0xB0 + class xVec3 dir; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E5DA0 -> 0x001E6050 +*/ +// Range: 0x1E5DA0 -> 0x1E6050 +void get_normal(class xVec3 & norm /* r17 */, class xVec3 & dir /* r16 */, float orient /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E5DA0 -> 0x1E6050 + float a; // r20 + float b; // r29+0x40 + float ax; // r3 + float ay; // r2 + float az; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6050 -> 0x001E60C8 +*/ +// Range: 0x1E6050 -> 0x1E60C8 +void set_texture(class xFXRibbon * this /* r16 */, char * name /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6050 -> 0x1E60C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E60D0 -> 0x001E6138 +*/ +// Range: 0x1E60D0 -> 0x1E6138 +void set_texture(class xFXRibbon * this /* r16 */, unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E60D0 -> 0x1E6138 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6140 -> 0x001E62D0 +*/ +// Range: 0x1E6140 -> 0x1E62D0 +void render(class xFXRibbon * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6140 -> 0x1E62D0 + class RxObjSpace3DVertex * verts; // r19 + signed int it; // r10 + signed int subsize; // r2 + signed int next_it; // r18 + signed int break_it; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E62D0 -> 0x001E66F4 +*/ +// Range: 0x1E62D0 -> 0x1E66F4 +void update(class xFXRibbon * this /* r20 */, float dt /* r29+0xC0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E62D0 -> 0x1E66F4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6850 -> 0x001E6B88 +*/ +// Range: 0x1E6850 -> 0x1E6B88 +void insert(class xFXRibbon * this /* r20 */, class xVec3 & loc /* r19 */, float orient /* r22 */, float scale /* r21 */, float alpha /* r20 */, unsigned int flags /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6850 -> 0x1E6B88 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6B90 -> 0x001E6ED0 +*/ +// Range: 0x1E6B90 -> 0x1E6ED0 +void insert(class xFXRibbon * this /* r20 */, class xVec3 & loc /* r19 */, class xVec3 & norm /* r18 */, float scale /* r21 */, float alpha /* r20 */, unsigned int flags /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6B90 -> 0x1E6ED0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6ED0 -> 0x001E6EDC +*/ +// Range: 0x1E6ED0 -> 0x1E6EDC +void set_curve(class xFXRibbon * this /* r2 */, class curve_node * curve /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6ED0 -> 0x1E6EDC + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6EE0 -> 0x001E6F60 +*/ +// Range: 0x1E6EE0 -> 0x1E6F60 +void refresh_config(class xFXRibbon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6EE0 -> 0x1E6F60 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E6F60 -> 0x001E7000 +*/ +// Range: 0x1E6F60 -> 0x1E7000 +void set_default_config(class xFXRibbon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E6F60 -> 0x1E7000 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7000 -> 0x001E70E0 +*/ +// Range: 0x1E7000 -> 0x1E70E0 +void init(class xFXRibbon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E7000 -> 0x1E70E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E70E0 -> 0x001E7134 +*/ +// Range: 0x1E70E0 -> 0x1E7134 +static signed int compare_ribbons(void * e1 /* r2 */, void * e2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E70E0 -> 0x1E7134 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7140 -> 0x001E7148 +*/ +// Range: 0x1E7140 -> 0x1E7148 +unsigned int xFXShineStart() { + // Blocks + /* anonymous block */ { + // Range: 0x1E7140 -> 0x1E7148 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7150 -> 0x001E780C +*/ +// Range: 0x1E7150 -> 0x1E780C +void xFXShineRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1E7150 -> 0x1E780C + class xFXShineElem * e; // r21 + signed int shine; // r20 + class xFXShine * s; // r19 + signed int j; // r18 + class RxObjSpace3DVertex * vert; // r17 + class RwFrame * frame; // r16 + class xVec3 v; // r29+0x110 + class xVec3 w; // r29+0x100 + float uoff; // r22 + class xMat3x3 mat; // r29+0xB0 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r4 + class RwRGBA * _col; // r7 + class RwRGBA * _col; // r6 + class RwRGBA * _col; // r5 + class RwRGBA * _col; // r4 + class RxObjSpace3DVertex blah[4]; // @ 0x00567D30 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7810 -> 0x001E7BB4 +*/ +// Range: 0x1E7810 -> 0x1E7BB4 +void xFXShineUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E7810 -> 0x1E7BB4 + signed int i; // r30 + class xFXShine * s; // r21 + signed int j; // r20 + class xFXShineElem * e; // r19 + signed int done; // r6 + signed int j; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7BC0 -> 0x001E7C18 +*/ +// Range: 0x1E7BC0 -> 0x1E7C18 +void xFXShineInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1E7BC0 -> 0x1E7C18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7C20 -> 0x001E7CF0 +*/ +// Range: 0x1E7C20 -> 0x1E7CF0 +void xFXStreakUpdate(unsigned int id /* r2 */, class xVec3 * a /* r2 */, class xVec3 * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E7C20 -> 0x1E7CF0 + class xFXStreak * s; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7CF0 -> 0x001E7D50 +*/ +// Range: 0x1E7CF0 -> 0x1E7D50 +void xFXStreakStop(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E7CF0 -> 0x1E7D50 + class xFXStreak * s; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7D50 -> 0x001E7EEC +*/ +// Range: 0x1E7D50 -> 0x1E7EEC +unsigned int xFXStreakStart(float frequency /* r29+0x30 */, float alphaFadeRate /* r29+0x30 */, float alphaStart /* r29+0x30 */, unsigned int textureID /* r2 */, class iColor_tag * edge_a /* r2 */, class iColor_tag * edge_b /* r2 */, signed int taper /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E7D50 -> 0x1E7EEC + unsigned int i; // r17 + signed int j; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E7EF0 -> 0x001E829C +*/ +// Range: 0x1E7EF0 -> 0x1E829C +void xFXStreakRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1E7EF0 -> 0x1E829C + class xFXStreakElem * e1; // r4 + signed int streak; // r19 + class xFXStreak * s; // r18 + signed int count; // r17 + signed int j; // r16 + class RwRGBA * _col; // r6 + class RwRGBA * _col; // r6 + class RwRGBA * _col; // r5 + class RwRGBA * _col; // r5 + class RxObjSpace3DVertex sStripVert[4]; // @ 0x005659B0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E82A0 -> 0x001E84A8 +*/ +// Range: 0x1E82A0 -> 0x1E84A8 +void xFXStreakUpdate(float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E82A0 -> 0x1E84A8 + signed int i; // r8 + class xFXStreak * s; // r7 + signed int j; // r15 + class xFXStreakElem * e; // r14 + class xVec3 diff; // r29+0x10 + signed int done; // r15 + signed int j; // r14 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E84B0 -> 0x001E850C +*/ +// Range: 0x1E84B0 -> 0x1E850C +void xFXStreakInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1E84B0 -> 0x1E850C + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E8510 -> 0x001E8AD0 +*/ +// Range: 0x1E8510 -> 0x1E8AD0 +void xFXFireworksUpdate(float dt /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E8510 -> 0x1E8AD0 + signed int i; // r20 + class xParEmitterCustomSettings trail_info; // r29+0x230 + class zParEmitter * femit; // r19 + class xParEmitterCustomSettings xplo_info; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E8AD0 -> 0x001E8B30 +*/ +// Range: 0x1E8AD0 -> 0x1E8B30 +void xFXFireworksLaunch(float countdownTime /* r29 */, class xVec3 * pos /* r2 */, float fuelTime /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E8AD0 -> 0x1E8B30 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E8B30 -> 0x001E8BEC +*/ +// Range: 0x1E8B30 -> 0x1E8BEC +void xFXFireworksInit(char * fireworksTrailEmitter /* r2 */, char * fireworksEmitter1 /* r19 */, char * fireworksEmitter2 /* r18 */, char * fireworksSound /* r17 */, char * fireworksLaunchSound /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E8B30 -> 0x1E8BEC + signed int i; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E8BF0 -> 0x001E9D98 +*/ +// Range: 0x1E8BF0 -> 0x1E9D98 +void xFXRenderProximityFade(class xModelInstance & model /* r18 */, float near_dist /* r22 */, float far_dist /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E8BF0 -> 0x1E9D98 + class RpGeometry * geom; // r21 + class RwRaster * raster; // r19 + class RpTriangle * tri; // r29+0x1C0 + class RwFrame * frame; // r17 + class RwTexCoords * uv; // r29+0x1B0 + signed int vert_total; // r16 + class xVec3 * vert; // r29+0x1AC + class xVec3 * normal; // r29+0x1A8 + unsigned char * alpha; // r29+0x1A4 + float * depth; // r29+0x1A0 + class xMat4x3 & cm; // r20 + class xVec3 ov; // r29+0x530 + float zfrac; // r21 + signed int i; // r19 + float a; // r3 + class RxObjSpace3DVertex * out_vert; // r21 + signed int tri_total; // r17 + unsigned short * alpha_tri_index; // r29+0x19C + class tri_data * alpha_tri; // r29+0x198 + unsigned int alpha_tri_total; // r22 + class tri_data tri_buffer[2][3]; // r29+0x250 + class tri_data cur_tri; // r29+0x1D0 + class RpTriangle * end; // r29+0x180 + unsigned short vi[3]; // r29+0x528 + float d0; // r3 + float d1; // r2 + float d2; // r1 + unsigned int flags; // r2 + signed int i; // r23 + signed int size1; // r29+0x170 + signed int j; // r20 + unsigned int i; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E9DA0 -> 0x001E9E98 +*/ +// Range: 0x1E9DA0 -> 0x1E9E98 +static void set_vert(class RxObjSpace3DVertex & vert /* r2 */, class vert_data & vd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E9DA0 -> 0x1E9E98 + unsigned char alpha; // r6 + float a; // r3 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E9EA0 -> 0x001EA358 +*/ +// Range: 0x1E9EA0 -> 0x1EA358 +static void lerp(class vert_data & v /* r2 */, float frac /* r29+0x10 */, class vert_data & v0 /* r2 */, class vert_data & v1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E9EA0 -> 0x1EA358 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA400 -> 0x001EA498 +*/ +// Range: 0x1EA400 -> 0x1EA498 +static void depth_sort(unsigned short * index /* r2 */, class tri_data * tri /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA400 -> 0x1EA498 + unsigned int i; // r11 + unsigned short & e0; // r10 + float d0; // r1 + unsigned int j; // r9 + unsigned short temp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA4A0 -> 0x001EA4C0 +*/ +// Range: 0x1EA4A0 -> 0x1EA4C0 +class RpAtomic * xFXanimUVAtomicSetup(class RpAtomic * atomic /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA4A0 -> 0x1EA4C0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA4C0 -> 0x001EA4C8 +*/ +// Range: 0x1EA4C0 -> 0x1EA4C8 +void xFXanimUV2PSetTexture(class RwTexture * texture /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA4C0 -> 0x1EA4C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA4D0 -> 0x001EA514 +*/ +// Range: 0x1EA4D0 -> 0x1EA514 +void xFXanimUV2PSetAngle(float angle /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA4D0 -> 0x1EA514 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA520 -> 0x001EA534 +*/ +// Range: 0x1EA520 -> 0x1EA534 +void xFXanimUV2PSetScale(class xVec3 * scale /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA520 -> 0x1EA534 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA540 -> 0x001EA554 +*/ +// Range: 0x1EA540 -> 0x1EA554 +void xFXanimUV2PSetTranslation(class xVec3 * trans /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA540 -> 0x1EA554 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA560 -> 0x001EA5A4 +*/ +// Range: 0x1EA560 -> 0x1EA5A4 +void xFXanimUVSetAngle(float angle /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA560 -> 0x1EA5A4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA5B0 -> 0x001EA5C4 +*/ +// Range: 0x1EA5B0 -> 0x1EA5C4 +void xFXanimUVSetScale(class xVec3 * scale /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA5B0 -> 0x1EA5C4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA5D0 -> 0x001EA5E4 +*/ +// Range: 0x1EA5D0 -> 0x1EA5E4 +void xFXanimUVSetTranslation(class xVec3 * trans /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA5D0 -> 0x1EA5E4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA5F0 -> 0x001EA6B4 +*/ +// Range: 0x1EA5F0 -> 0x1EA6B4 +class RpAtomic * xFXAtomicEnvMapSetup(class RpAtomic * atomic /* r17 */, unsigned int envmapID /* r2 */, float shininess /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA5F0 -> 0x1EA6B4 + class RwTexture * env; // r16 + float tmp; // r20 + class RpSkin * skin; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA6C0 -> 0x001EA8F8 +*/ +// Range: 0x1EA6C0 -> 0x1EA8F8 +class RpAtomic * xFXShinyRender(class RpAtomic * atomic /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA6C0 -> 0x1EA8F8 + enum RwCullMode cmode; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EA900 -> 0x001EAB60 +*/ +// Range: 0x1EA900 -> 0x1EAB60 +class RpAtomic * xFXBubbleRender(class RpAtomic * atomic /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EA900 -> 0x1EAB60 + enum RwCullMode cmode; // r29+0x5C + class xFXBubbleParams * bp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAB60 -> 0x001EABFC +*/ +// Range: 0x1EAB60 -> 0x1EABFC +class RpMaterial * MaterialSetEnvMap2(class RpMaterial * material /* r16 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAB60 -> 0x1EABFC + char * textureName; // r2 + class RwTexture * texture; // r18 + class RwFrame * frame; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAC00 -> 0x001EACD0 +*/ +// Range: 0x1EAC00 -> 0x1EACD0 +static class RpMaterial * MaterialSetEnvMap(class RpMaterial * material /* r17 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAC00 -> 0x1EACD0 + class RwTexture * texture; // r16 + class RwFrame * frame; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EACD0 -> 0x001EAD1C +*/ +// Range: 0x1EACD0 -> 0x1EAD1C +class RpMaterial * MaterialSetShininess(class RpMaterial * material /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EACD0 -> 0x1EAD1C + enum RpMatFXMaterialFlags flags; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAD20 -> 0x001EAD30 +*/ +// Range: 0x1EAD20 -> 0x1EAD30 +void xFXPreAllocMatFX(class RpClump * clump /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAD20 -> 0x1EAD30 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAD30 -> 0x001EAD74 +*/ +// Range: 0x1EAD30 -> 0x1EAD74 +static class RpAtomic * PreAllocMatFX_cb(class RpAtomic * atomic /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAD30 -> 0x1EAD74 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAD80 -> 0x001EADC4 +*/ +// Range: 0x1EAD80 -> 0x1EADC4 +class RpAtomic * AtomicDisableMatFX(class RpAtomic * atomic /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAD80 -> 0x1EADC4 + class RpGeometry * geometry; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EADD0 -> 0x001EADFC +*/ +// Range: 0x1EADD0 -> 0x1EADFC +static class RpMaterial * MaterialDisableMatFX(class RpMaterial * material /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EADD0 -> 0x1EADFC + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAE00 -> 0x001EAE78 +*/ +// Range: 0x1EAE00 -> 0x1EAE78 +void xFXUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAE00 -> 0x1EAE78 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAE80 -> 0x001EAE88 +*/ +// Range: 0x1EAE80 -> 0x1EAE88 +void xFX_SceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1EAE80 -> 0x1EAE88 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EAE90 -> 0x001EB2B8 +*/ +// Range: 0x1EAE90 -> 0x1EB2B8 +void xFX_SceneEnter(class RpWorld * world /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EAE90 -> 0x1EB2B8 + signed int i; // r18 + signed int num; // r22 + class xSurface * sp; // r2 + class zSurfaceProps * pp; // r3 + class zSurfMatFX * fxp; // r17 + class RpMaterial * mp; // r16 + class RwTexture * env; // r2 + class RwTexture * bump; // r21 + class RwTexture * env; // r21 + class RwTexture * bump; // r20 + class zScene * sc; // r21 + class xEnt * ent; // r20 + class RpAtomic * (* tmp)(class RpAtomic *); // r5 + unsigned int bubble; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EB2C0 -> 0x001EB324 +*/ +// Range: 0x1EB2C0 -> 0x1EB324 +void xFXRingRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1EB2C0 -> 0x1EB324 + signed int i; // r17 + class xFXRing * ring; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EB330 -> 0x001EB3F0 +*/ +// Range: 0x1EB330 -> 0x1EB3F0 +static void xFXRingUpdate(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EB330 -> 0x1EB3F0 + class xFXRing * ring; // r5 + signed int i; // r4 + float lifetime; // r3 + float t; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EB3F0 -> 0x001EB4F4 +*/ +// Range: 0x1EB3F0 -> 0x1EB4F4 +class xFXRing * xFXRingCreate(class xVec3 * pos /* r17 */, class xFXRing * params /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EB3F0 -> 0x1EB4F4 + class xFXRing * ring; // r16 + signed int i; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EB500 -> 0x001EBCA0 +*/ +// Range: 0x1EB500 -> 0x1EBCA0 +static void DrawRing(class xFXRing * m /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EB500 -> 0x1EBCA0 + signed int i; // r19 + unsigned char red; // r6 + unsigned char green; // r5 + unsigned char blue; // r4 + unsigned char alpha; // r2 + float u; // r2 + float radius; // r31 + float oradius; // r30 + float height; // r29 + float tilt; // r20 + enum RwCullMode cmode; // r29+0x9C + float dt; // r28 + class xVec3 * center; // r18 + class RxObjSpace3DVertex * Im3DBuffer; // r17 + class RxObjSpace3DVertex * imv; // r16 + float oour; // r27 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EBCA0 -> 0x001EBDDC +*/ +// Range: 0x1EBCA0 -> 0x1EBDDC +void xFXInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1EBCA0 -> 0x1EBDDC + class RpLight * light; // r16 + class RwFrame * frame; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xFactory.cpp b/dwarf/SB/Core/x/xFactory.cpp new file mode 100644 index 000000000..7b36776e3 --- /dev/null +++ b/dwarf/SB/Core/x/xFactory.cpp @@ -0,0 +1,225 @@ +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int OrdTest_infotype(void *, void *); // size: 0x0, address: 0x2F1E00 +signed int OrdComp_infotype(void *, void *); // size: 0x0, address: 0x2F1DB0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x0 +}; +class RyzMemData { + // total size: 0x1 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1DB0 -> 0x002F1DF8 +*/ +// Range: 0x2F1DB0 -> 0x2F1DF8 +static signed int OrdComp_infotype(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1DB0 -> 0x2F1DF8 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1E00 -> 0x002F1E48 +*/ +// Range: 0x2F1E00 -> 0x2F1E48 +static signed int OrdTest_infotype(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1E00 -> 0x2F1E48 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1E50 -> 0x002F1F3C +*/ +// Range: 0x2F1E50 -> 0x2F1F3C +void DestroyItem(class xFactory * this /* r17 */, class xFactoryInst * item /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1E50 -> 0x2F1F3C + signed int idx; // r2 + class XGOFTypeInfo pattern; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1F40 -> 0x002F1F80 +*/ +// Range: 0x2F1F40 -> 0x2F1F80 +void DestroyAll(class xFactory * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1F40 -> 0x2F1F80 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1F80 -> 0x002F20CC +*/ +// Range: 0x2F1F80 -> 0x2F20CC +class xFactoryInst * CreateItem(class xFactory * this /* r19 */, signed int typeID /* r2 */, void * userdata /* r18 */, class RyzMemGrow * callerzgrow /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1F80 -> 0x2F20CC + signed int idx; // r2 + class xFactoryInst * item; // r2 + class XGOFTypeInfo pattern; // r29+0x50 + class XGOFTypeInfo * darec; // r16 + class RyzMemGrow * grow; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F20D0 -> 0x002F20D8 +*/ +// Range: 0x2F20D0 -> 0x2F20D8 +void GrowDataDisable(class xFactory * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F20D0 -> 0x2F20D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F20E0 -> 0x002F2114 +*/ +// Range: 0x2F20E0 -> 0x2F2114 +void GrowDataEnable(class xFactory * this /* r2 */, class xBase * user /* r2 */, signed int isResume /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F20E0 -> 0x2F2114 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2120 -> 0x002F216C +*/ +// Range: 0x2F2120 -> 0x2F216C +signed int RegItemType(class xFactory * this /* r2 */, signed int tid /* r2 */, class xFactoryInst * (* create)(signed int, class RyzMemGrow *, void *) /* r2 */, void (* destroy)(class xFactoryInst *) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2120 -> 0x2F216C + class XGOFTypeInfo typerec[2]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2170 -> 0x002F227C +*/ +// Range: 0x2F2170 -> 0x2F227C +signed int RegItemType(class xFactory * this /* r18 */, class XGOFTypeInfo * info /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2170 -> 0x2F227C + signed int rc; // r17 + class XGOFTypeInfo * tptr; // r16 + class XGOFTypeInfo * nextrec; // r2 + signed int idx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2280 -> 0x002F22E0 +*/ +// Range: 0x2F2280 -> 0x2F22E0 +void * __dt(class xFactory * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2280 -> 0x2F22E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFactory.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F22E0 -> 0x002F2358 +*/ +// Range: 0x2F22E0 -> 0x2F2358 +void * __ct(class xFactory * this /* r18 */, signed int maxTypes /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F22E0 -> 0x2F2358 + unsigned int amt; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xFog.cpp b/dwarf/SB/Core/x/xFog.cpp new file mode 100644 index 000000000..3e9f37845 --- /dev/null +++ b/dwarf/SB/Core/x/xFog.cpp @@ -0,0 +1,167 @@ +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int xFogEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x29EE10 +class xSerial { + // total size: 0x0 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xFogAsset : public xBaseAsset { + // total size: 0x24 +public: + unsigned char bkgndColor[4]; // offset 0x8, size 0x4 + unsigned char fogColor[4]; // offset 0xC, size 0x4 + float fogDensity; // offset 0x10, size 0x4 + float fogStart; // offset 0x14, size 0x4 + float fogStop; // offset 0x18, size 0x4 + float transitionTime; // offset 0x1C, size 0x4 + unsigned char fogType; // offset 0x20, size 0x1 + unsigned char padFog[3]; // offset 0x21, size 0x3 +}; +class _xFog : public xBase { + // total size: 0x14 +public: + class xFogAsset * tasset; // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; + +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EE00 -> 0x0029EE08 +*/ +// Range: 0x29EE00 -> 0x29EE08 +void xFogUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x29EE00 -> 0x29EE08 + } +} + +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EE10 -> 0x0029EF20 +*/ +// Range: 0x29EE10 -> 0x29EF20 +signed int xFogEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EE10 -> 0x29EF20 + class _xFog * t; // r2 + class iFogParams fog; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EF20 -> 0x0029EF28 +*/ +// Range: 0x29EF20 -> 0x29EF28 +void xFogLoad(class _xFog * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EF20 -> 0x29EF28 + } +} + +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EF30 -> 0x0029EF38 +*/ +// Range: 0x29EF30 -> 0x29EF38 +void xFogSave(class _xFog * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EF30 -> 0x29EF38 + } +} + +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EF40 -> 0x0029EFA4 +*/ +// Range: 0x29EF40 -> 0x29EFA4 +void xFogInit(void * b /* r17 */, void * tasset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EF40 -> 0x29EFA4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFog.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EFB0 -> 0x0029EFC0 +*/ +// Range: 0x29EFB0 -> 0x29EFC0 +void xFogClearFog() { + // Blocks + /* anonymous block */ { + // Range: 0x29EFB0 -> 0x29EFC0 + } +} + diff --git a/dwarf/SB/Core/x/xFont.cpp b/dwarf/SB/Core/x/xFont.cpp new file mode 100644 index 000000000..ce6a33fca --- /dev/null +++ b/dwarf/SB/Core/x/xFont.cpp @@ -0,0 +1,3191 @@ +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x4F8790 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * default_font_texture[3]; // size: 0xC, address: 0x4170D0 +static class font_asset default_font_assets[4]; // size: 0x650, address: 0x4170E0 +static class font_data active_fonts[4]; // size: 0x53C0, address: 0x540FA0 +static unsigned int active_fonts_size; // size: 0x4, address: 0x50F9A4 +static class RwSky2DVertex vert_buffer[120]; // size: 0x1E00, address: 0x546360 +static unsigned int vert_buffer_used; // size: 0x4, address: 0x50F9A8 +static float rcz; // size: 0x4, address: 0x50F9AC +static float nsz; // size: 0x4, address: 0x50F9B0 +static class model_cache_entry model_cache[8]; // size: 0x60, address: 0x548160 +static unsigned char model_cache_inited; // size: 0x1, address: 0x50F9B4 +static class /* @class */ { + // total size: 0x24 +public: + signed int fogenable; // offset 0x0, size 0x4 + signed int vertexalphaenable; // offset 0x4, size 0x4 + signed int zwriteenable; // offset 0x8, size 0x4 + signed int ztestenable; // offset 0xC, size 0x4 + unsigned int srcblend; // offset 0x10, size 0x4 + unsigned int destblend; // offset 0x14, size 0x4 + unsigned int shademode; // offset 0x18, size 0x4 + class RwRaster * textureraster; // offset 0x1C, size 0x4 + enum RwTextureFilterMode filter; // offset 0x20, size 0x4 +} oldrs; // size: 0x24, address: 0x5481C0 +static class substr text_delims; // size: 0x8, address: 0x4F87A0 +static class tex_args def_tex_args; // size: 0x34, address: 0x5481F0 +static class model_args def_model_args; // size: 0x2C, address: 0x548230 +static class tl_cache_entry tl_cache[3]; // size: 0x18F18, address: 0x548260 +class callback text_cb; // size: 0xC, address: 0x4F87A8 +unsigned char disable_text_stats; // size: 0x1, address: 0x0 +static class tag_type format_tags_buffer[2][128]; // size: 0x1400, address: 0x417750 +static class tag_type * format_tags; // size: 0x4, address: 0x50E850 +static unsigned int format_tags_size; // size: 0x4, address: 0x50E854 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class basic_rect m_Unit; // size: 0x10, address: 0x4F8D60 +class xVec3 m_Null; // size: 0xC, address: 0x4F9960 +class basic_rect m_Null; // size: 0x10, address: 0x4F8D50 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class font_asset { + // total size: 0x194 +public: + unsigned int tex_id; // offset 0x0, size 0x4 + unsigned short u; // offset 0x4, size 0x2 + unsigned short v; // offset 0x6, size 0x2 + unsigned char du; // offset 0x8, size 0x1 + unsigned char dv; // offset 0x9, size 0x1 + unsigned char line_size; // offset 0xA, size 0x1 + unsigned char baseline; // offset 0xB, size 0x1 + class /* @class */ { + // total size: 0x4 + public: + signed short x; // offset 0x0, size 0x2 + signed short y; // offset 0x2, size 0x2 + } space; // offset 0xC, size 0x4 + unsigned int flags; // offset 0x10, size 0x4 + unsigned char char_set[128]; // offset 0x14, size 0x80 + class /* @class */ { + // total size: 0x2 + public: + unsigned char offset; // offset 0x0, size 0x1 + unsigned char size; // offset 0x1, size 0x1 + } char_pos[127]; // offset 0x94, size 0xFE +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class model_tag_context { + // total size: 0x30 +public: + class xModelInstance * model; // offset 0x0, size 0x4 + class xVec3 rot; // offset 0x4, size 0xC + class basic_rect dst; // offset 0x10, size 0x10 + class xSphere o; // offset 0x20, size 0x10 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class RwImage { + // total size: 0x1C +public: + signed int flags; // offset 0x0, size 0x4 + signed int width; // offset 0x4, size 0x4 + signed int height; // offset 0x8, size 0x4 + signed int depth; // offset 0xC, size 0x4 + signed int stride; // offset 0x10, size 0x4 + unsigned char * cpPixels; // offset 0x14, size 0x4 + class RwRGBA * palette; // offset 0x18, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class tag_entry { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + char op; // offset 0x8, size 0x1 + class substr * args; // offset 0xC, size 0x4 + unsigned int args_size; // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class model_pool { + // total size: 0x560 +public: + class RwMatrixTag mat[8]; // offset 0x0, size 0x200 + class xModelInstance model[8]; // offset 0x200, size 0x360 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class jot_line { + // total size: 0x20 +public: + class basic_rect bounds; // offset 0x0, size 0x10 + float baseline; // offset 0x10, size 0x4 + unsigned int first; // offset 0x14, size 0x4 + unsigned int last; // offset 0x18, size 0x4 + unsigned char page_break; // offset 0x1C, size 0x1 +}; +class xTextAsset { + // total size: 0x4 +public: + unsigned int len; // offset 0x0, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class font_data { + // total size: 0x14F0 +public: + class font_asset * asset; // offset 0x0, size 0x4 + unsigned int index_max; // offset 0x4, size 0x4 + unsigned char char_index[256]; // offset 0x8, size 0x100 + float iwidth; // offset 0x108, size 0x4 + float iheight; // offset 0x10C, size 0x4 + class basic_rect tex_bounds[127]; // offset 0x110, size 0x7F0 + class basic_rect bounds[127]; // offset 0x900, size 0x7F0 + class xVec2 dstfrac[127]; // offset 0x10F0, size 0x3F8 + class RwTexture * texture; // offset 0x14E8, size 0x4 + class RwRaster * raster; // offset 0x14EC, size 0x4 +}; +class xTimerAsset : public xBaseAsset { + // total size: 0x10 +public: + float seconds; // offset 0x8, size 0x4 + float randomRange; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + signed int x; // offset 0x0, size 0x4 + signed int y; // offset 0x4, size 0x4 + signed int w; // offset 0x8, size 0x4 + signed int h; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class layout { + // total size: 0x84F8 +public: + class xtextbox tb; // offset 0x0, size 0x68 + class jot _jots[512]; // offset 0x68, size 0x7000 + unsigned int _jots_size; // offset 0x7068, size 0x4 + class jot_line _lines[128]; // offset 0x706C, size 0x1000 + unsigned int _lines_size; // offset 0x806C, size 0x4 + unsigned char context_buffer[1024]; // offset 0x8070, size 0x400 + unsigned int context_buffer_size; // offset 0x8470, size 0x4 + unsigned short dynamics[64]; // offset 0x8474, size 0x80 + unsigned int dynamics_size; // offset 0x84F4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class tag_entry_list { + // total size: 0x8 +public: + class tag_entry * entries; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class tex_tag_context { + // total size: 0x28 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + class basic_rect src; // offset 0x8, size 0x10 + class basic_rect dst; // offset 0x18, size 0x10 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class model_cache_entry { + // total size: 0xC +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned int order; // offset 0x4, size 0x4 + class xModelInstance * model; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class model_args { + // total size: 0x2C +public: + class xModelInstance * model; // offset 0x0, size 0x4 + class xVec3 rot; // offset 0x4, size 0xC + class basic_rect dst; // offset 0x10, size 0x10 + class xVec2 off; // offset 0x20, size 0x8 + enum /* @enum */ { + SCALE_FONT = 0, + SCALE_SCREEN = 1, + SCALE_SIZE = 2, + } scale; // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class tex_args { + // total size: 0x34 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + class basic_rect src; // offset 0x8, size 0x10 + class basic_rect dst; // offset 0x18, size 0x10 + class xVec2 off; // offset 0x28, size 0x8 + enum /* @enum */ { + SCALE_FONT = 0, + SCALE_SCREEN = 1, + SCALE_SIZE = 2, + SCALE_FONT_WIDTH = 3, + SCALE_FONT_HEIGHT = 4, + SCALE_SCREEN_WIDTH = 5, + SCALE_SCREEN_HEIGHT = 6, + } scale; // offset 0x30, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum /* @enum */ { + SCALE_FONT = 0, + SCALE_SCREEN = 1, + SCALE_SIZE = 2, +}; +class tl_cache_entry { + // total size: 0x8508 +public: + unsigned int used; // offset 0x0, size 0x4 + signed long last_used; // offset 0x8, size 0x4 + class layout tl; // offset 0x10, size 0x84F8 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xTimer : public xBase { + // total size: 0x1C +public: + class xTimerAsset * tasset; // offset 0x10, size 0x4 + unsigned char state; // offset 0x14, size 0x1 + unsigned char runsInPause; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + float secondsLeft; // offset 0x18, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x24 +public: + signed int fogenable; // offset 0x0, size 0x4 + signed int vertexalphaenable; // offset 0x4, size 0x4 + signed int zwriteenable; // offset 0x8, size 0x4 + signed int ztestenable; // offset 0xC, size 0x4 + unsigned int srcblend; // offset 0x10, size 0x4 + unsigned int destblend; // offset 0x14, size 0x4 + unsigned int shademode; // offset 0x18, size 0x4 + class RwRaster * textureraster; // offset 0x1C, size 0x4 + enum RwTextureFilterMode filter; // offset 0x20, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + char * s; // offset 0x0, size 0x4 + char * end; // offset 0x4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +enum RwTextureFilterMode { + rwFILTERNAFILTERMODE = 0, + rwFILTERNEAREST = 1, + rwFILTERLINEAR = 2, + rwFILTERMIPNEAREST = 3, + rwFILTERMIPLINEAR = 4, + rwFILTERLINEARMIPNEAREST = 5, + rwFILTERLINEARMIPLINEAR = 6, + rwTEXTUREFILTERMODEFORCEENUMSIZEINT = 2147483647, +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class /* @class */ { + // total size: 0x4 +public: + signed short x; // offset 0x0, size 0x2 + signed short y; // offset 0x2, size 0x2 +}; +enum /* @enum */ { + SCALE_FONT = 0, + SCALE_SCREEN = 1, + SCALE_SIZE = 2, + SCALE_FONT_WIDTH = 3, + SCALE_FONT_HEIGHT = 4, + SCALE_SCREEN_WIDTH = 5, + SCALE_SCREEN_HEIGHT = 6, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char offset; // offset 0x0, size 0x1 + unsigned char size; // offset 0x1, size 0x1 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DAF50 -> 0x001DB1B0 +*/ +// Range: 0x1DAF50 -> 0x1DB1B0 +void render_fill_rect(class basic_rect & bounds /* r16 */, class iColor_tag color /* r29+0x4C */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DAF50 -> 0x1DB1B0 + float rcz; // r21 + float nsz; // r20 + class RwSky2DVertex vert[4]; // r29+0x60 + class basic_rect r; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB1B0 -> 0x001DB2A4 +*/ +// Range: 0x1DB1B0 -> 0x1DB2A4 +static void set_rect_vert(class RwSky2DVertex & vert /* r2 */, float x /* r29+0x10 */, float y /* r29+0x10 */, float z /* r29+0x10 */, class iColor_tag c /* r29+0xC */, float rcz /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB1B0 -> 0x1DB2A4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB2B0 -> 0x001DB388 +*/ +// Range: 0x1DB2B0 -> 0x1DB388 +class tag_type * find_format_tag(class substr & s /* r19 */, signed int & index /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB2B0 -> 0x1DB388 + signed int start; // r17 + signed int end; // r16 + class tag_type & t; // r20 + signed int c; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB390 -> 0x001DB5A0 +*/ +// Range: 0x1DB390 -> 0x1DB5A0 +void register_tags(class tag_type * t /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB390 -> 0x1DB5A0 + class tag_type * s1; // r20 + class tag_type * s2; // r19 + class tag_type * end1; // r18 + class tag_type * end2; // r17 + class tag_type * d; // r16 + signed int c; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB5A0 -> 0x001DB750 +*/ +// Range: 0x1DB5A0 -> 0x1DB750 +static void parse_tag_timer(class jot & j /* r16 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB5A0 -> 0x1DB750 + unsigned int id; // r2 + class xTimer * ta; // r2 + char buffer[64]; // r29+0x20 + unsigned int sec; // r4 + unsigned int mn; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB750 -> 0x001DB790 +*/ +// Range: 0x1DB750 -> 0x1DB790 +static void parse_tag_pop(class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB750 -> 0x1DB790 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB790 -> 0x001DB870 +*/ +// Range: 0x1DB790 -> 0x1DB870 +static void parse_tag_insert_hash(class jot & j /* r16 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB790 -> 0x1DB870 + class xTextAsset * ta; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB870 -> 0x001DB948 +*/ +// Range: 0x1DB870 -> 0x1DB948 +static void parse_tag_insert(class jot & j /* r16 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DB870 -> 0x1DB948 + unsigned int id; // r2 + class xTextAsset * ta; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DB950 -> 0x001DB9F8 +*/ +// Range: 0x1DB950 -> 0x1DB9F8 +static void reset_tag_tex() { + // Blocks + /* anonymous block */ { + // Range: 0x1DB950 -> 0x1DB9F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DBA00 -> 0x001DBE5C +*/ +// Range: 0x1DBA00 -> 0x1DBE5C +static void parse_tag_tex(class jot & a /* r17 */, class xtextbox & tb /* r16 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DBA00 -> 0x1DBE5C + class tex_tag_context & ttc; // r3 + class callback cb; // @ 0x004F89D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DBE60 -> 0x001DBF48 +*/ +// Range: 0x1DBE60 -> 0x1DBF48 +static void render_tag_tex(class jot & j /* r2 */, class xtextbox & tb /* r18 */, float x /* r21 */, float y /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DBE60 -> 0x1DBF48 + class tex_tag_context & ttc; // r17 + class basic_rect dst; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DBF50 -> 0x001DBFE8 +*/ +// Range: 0x1DBF50 -> 0x1DBFE8 +static void reset_tag_model() { + // Blocks + /* anonymous block */ { + // Range: 0x1DBF50 -> 0x1DBFE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DBFF0 -> 0x001DC274 +*/ +// Range: 0x1DBFF0 -> 0x1DC274 +static void parse_tag_model(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DBFF0 -> 0x1DC274 + class model_tag_context & mtc; // r16 + class callback cb; // @ 0x004F89C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC280 -> 0x001DC490 +*/ +// Range: 0x1DC280 -> 0x1DC490 +static void render_tag_model(class jot & j /* r2 */, class xtextbox & tb /* r17 */, float x /* r29+0xA0 */, float y /* r29+0xA0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC280 -> 0x1DC490 + class model_tag_context & mtc; // r16 + class basic_rect dst; // r29+0x70 + class xVec3 from; // r29+0x90 + class xVec3 to; // r29+0x80 + class xMat4x3 frame; // r29+0x30 + float scale; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC490 -> 0x001DC4AC +*/ +// Range: 0x1DC490 -> 0x1DC4AC +static void parse_tag_page_break(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC490 -> 0x1DC4AC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC4B0 -> 0x001DC4CC +*/ +// Range: 0x1DC4B0 -> 0x1DC4CC +static void parse_tag_word_break(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC4B0 -> 0x1DC4CC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC4D0 -> 0x001DC4EC +*/ +// Range: 0x1DC4D0 -> 0x1DC4EC +static void parse_tag_tab(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC4D0 -> 0x1DC4EC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC4F0 -> 0x001DC600 +*/ +// Range: 0x1DC4F0 -> 0x1DC600 +static void parse_tag_newline(class jot & a /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC4F0 -> 0x1DC600 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC600 -> 0x001DC704 +*/ +// Range: 0x1DC600 -> 0x1DC704 +static void parse_tag_open_curly(class jot & a /* r2 */, class xtextbox & tb /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC600 -> 0x1DC704 + char c; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC710 -> 0x001DC720 +*/ +// Range: 0x1DC710 -> 0x1DC720 +static void reset_tag_yjustify(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC710 -> 0x1DC720 + class callback cb; // @ 0x004F89B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC720 -> 0x001DC8B8 +*/ +// Range: 0x1DC720 -> 0x1DC8B8 +static void parse_tag_yjustify(class jot & a /* r18 */, class split_tag & ti /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC720 -> 0x1DC8B8 + unsigned int & flags; // r16 + class callback cb; // @ 0x004F89A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC8C0 -> 0x001DC8E0 +*/ +// Range: 0x1DC8C0 -> 0x1DC8E0 +static void update_tag_reset_yjustify(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC8C0 -> 0x1DC8E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC8E0 -> 0x001DC900 +*/ +// Range: 0x1DC8E0 -> 0x1DC900 +static void update_tag_yjustify(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC8E0 -> 0x1DC900 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC900 -> 0x001DC910 +*/ +// Range: 0x1DC900 -> 0x1DC910 +static void reset_tag_xjustify(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC900 -> 0x1DC910 + class callback cb; // @ 0x004F8998 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DC910 -> 0x001DCAA8 +*/ +// Range: 0x1DC910 -> 0x1DCAA8 +static void parse_tag_xjustify(class jot & a /* r18 */, class split_tag & ti /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DC910 -> 0x1DCAA8 + unsigned int & flags; // r16 + class callback cb; // @ 0x004F8988 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCAB0 -> 0x001DCAD0 +*/ +// Range: 0x1DCAB0 -> 0x1DCAD0 +static void update_tag_reset_xjustify(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCAB0 -> 0x1DCAD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCAD0 -> 0x001DCAF0 +*/ +// Range: 0x1DCAD0 -> 0x1DCAF0 +static void update_tag_xjustify(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCAD0 -> 0x1DCAF0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCAF0 -> 0x001DCB00 +*/ +// Range: 0x1DCAF0 -> 0x1DCB00 +static void reset_tag_wrap(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCAF0 -> 0x1DCB00 + class callback cb; // @ 0x004F8978 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCB00 -> 0x001DCBF8 +*/ +// Range: 0x1DCB00 -> 0x1DCBF8 +static void parse_tag_wrap(class jot & a /* r17 */, class split_tag & ti /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCB00 -> 0x1DCBF8 + unsigned int & flags; // r18 + class callback cb; // @ 0x004F8968 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCC00 -> 0x001DCC20 +*/ +// Range: 0x1DCC00 -> 0x1DCC20 +static void update_tag_reset_wrap(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCC00 -> 0x1DCC20 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCC20 -> 0x001DCC40 +*/ +// Range: 0x1DCC20 -> 0x1DCC40 +static void update_tag_wrap(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCC20 -> 0x1DCC40 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCC40 -> 0x001DCC50 +*/ +// Range: 0x1DCC40 -> 0x1DCC50 +static void reset_tag_font(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCC40 -> 0x1DCC50 + class callback cb; // @ 0x004F8958 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCC50 -> 0x001DCCDC +*/ +// Range: 0x1DCC50 -> 0x1DCCDC +static void parse_tag_font(class jot & a /* r16 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCC50 -> 0x1DCCDC + unsigned int & id; // r17 + class callback cb; // @ 0x004F8948 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCCE0 -> 0x001DCCEC +*/ +// Range: 0x1DCCE0 -> 0x1DCCEC +static void update_tag_reset_font(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCCE0 -> 0x1DCCEC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCCF0 -> 0x001DCCFC +*/ +// Range: 0x1DCCF0 -> 0x1DCCFC +static void update_tag_font(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCCF0 -> 0x1DCCFC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCD00 -> 0x001DCD10 +*/ +// Range: 0x1DCD00 -> 0x1DCD10 +static void reset_tag_color(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCD00 -> 0x1DCD10 + class callback cb; // @ 0x004F8938 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCD10 -> 0x001DCF4C +*/ +// Range: 0x1DCD10 -> 0x1DCF4C +static void parse_tag_color(class jot & a /* r19 */, class xtextbox & tb /* r18 */, class split_tag & ti /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCD10 -> 0x1DCF4C + class iColor_tag & color; // r16 + unsigned int v; // r3 + unsigned int temp; // r4 + class callback cb; // @ 0x004F8928 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCF50 -> 0x001DCF74 +*/ +// Range: 0x1DCF50 -> 0x1DCF74 +static void update_tag_reset_color(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCF50 -> 0x1DCF74 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCF80 -> 0x001DCFA4 +*/ +// Range: 0x1DCF80 -> 0x1DCFA4 +static void update_tag_color(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCF80 -> 0x1DCFA4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCFB0 -> 0x001DCFC0 +*/ +// Range: 0x1DCFB0 -> 0x1DCFC0 +static void reset_tag_all(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCFB0 -> 0x1DCFC0 + class callback cb; // @ 0x004F8918 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DCFC0 -> 0x001DD094 +*/ +// Range: 0x1DCFC0 -> 0x1DD094 +static void update_tag_reset_all(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DCFC0 -> 0x1DD094 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD0A0 -> 0x001DD0B0 +*/ +// Range: 0x1DD0A0 -> 0x1DD0B0 +static void reset_tag_yspace(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD0A0 -> 0x1DD0B0 + class callback cb; // @ 0x004F8908 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD0B0 -> 0x001DD1E4 +*/ +// Range: 0x1DD0B0 -> 0x1DD1E4 +static void parse_tag_yspace(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD0B0 -> 0x1DD1E4 + float & v; // r16 + class callback cb; // @ 0x004F88F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD1F0 -> 0x001DD1FC +*/ +// Range: 0x1DD1F0 -> 0x1DD1FC +static void update_tag_reset_yspace(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD1F0 -> 0x1DD1FC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD200 -> 0x001DD20C +*/ +// Range: 0x1DD200 -> 0x1DD20C +static void update_tag_yspace(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD200 -> 0x1DD20C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD210 -> 0x001DD220 +*/ +// Range: 0x1DD210 -> 0x1DD220 +static void reset_tag_xspace(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD210 -> 0x1DD220 + class callback cb; // @ 0x004F88E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD220 -> 0x001DD354 +*/ +// Range: 0x1DD220 -> 0x1DD354 +static void parse_tag_xspace(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD220 -> 0x1DD354 + float & v; // r16 + class callback cb; // @ 0x004F88D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD360 -> 0x001DD36C +*/ +// Range: 0x1DD360 -> 0x1DD36C +static void update_tag_reset_xspace(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD360 -> 0x1DD36C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD370 -> 0x001DD37C +*/ +// Range: 0x1DD370 -> 0x1DD37C +static void update_tag_xspace(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD370 -> 0x1DD37C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD380 -> 0x001DD390 +*/ +// Range: 0x1DD380 -> 0x1DD390 +static void reset_tag_tab_stop(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD380 -> 0x1DD390 + class callback cb; // @ 0x004F88C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD390 -> 0x001DD4BC +*/ +// Range: 0x1DD390 -> 0x1DD4BC +static void parse_tag_tab_stop(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD390 -> 0x1DD4BC + float & v; // r16 + class callback cb; // @ 0x004F88B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD4C0 -> 0x001DD4CC +*/ +// Range: 0x1DD4C0 -> 0x1DD4CC +static void update_tag_reset_tab_stop(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD4C0 -> 0x1DD4CC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD4D0 -> 0x001DD4DC +*/ +// Range: 0x1DD4D0 -> 0x1DD4DC +static void update_tag_tab_stop(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD4D0 -> 0x1DD4DC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD4E0 -> 0x001DD4F0 +*/ +// Range: 0x1DD4E0 -> 0x1DD4F0 +static void reset_tag_right_indent(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD4E0 -> 0x1DD4F0 + class callback cb; // @ 0x004F88A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD4F0 -> 0x001DD624 +*/ +// Range: 0x1DD4F0 -> 0x1DD624 +static void parse_tag_right_indent(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD4F0 -> 0x1DD624 + float & v; // r16 + class callback cb; // @ 0x004F8898 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD630 -> 0x001DD63C +*/ +// Range: 0x1DD630 -> 0x1DD63C +static void update_tag_reset_right_indent(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD630 -> 0x1DD63C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD640 -> 0x001DD64C +*/ +// Range: 0x1DD640 -> 0x1DD64C +static void update_tag_right_indent(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD640 -> 0x1DD64C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD650 -> 0x001DD660 +*/ +// Range: 0x1DD650 -> 0x1DD660 +static void reset_tag_left_indent(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD650 -> 0x1DD660 + class callback cb; // @ 0x004F8888 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD660 -> 0x001DD794 +*/ +// Range: 0x1DD660 -> 0x1DD794 +static void parse_tag_left_indent(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD660 -> 0x1DD794 + float & v; // r16 + class callback cb; // @ 0x004F8878 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD7A0 -> 0x001DD7AC +*/ +// Range: 0x1DD7A0 -> 0x1DD7AC +static void update_tag_reset_left_indent(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD7A0 -> 0x1DD7AC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD7B0 -> 0x001DD7BC +*/ +// Range: 0x1DD7B0 -> 0x1DD7BC +static void update_tag_left_indent(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD7B0 -> 0x1DD7BC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD7C0 -> 0x001DD7D0 +*/ +// Range: 0x1DD7C0 -> 0x1DD7D0 +static void reset_tag_height(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD7C0 -> 0x1DD7D0 + class callback cb; // @ 0x004F8868 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD7D0 -> 0x001DD8FC +*/ +// Range: 0x1DD7D0 -> 0x1DD8FC +static void parse_tag_height(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD7D0 -> 0x1DD8FC + float & v; // r16 + class callback cb; // @ 0x004F8858 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD900 -> 0x001DD90C +*/ +// Range: 0x1DD900 -> 0x1DD90C +static void update_tag_reset_height(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD900 -> 0x1DD90C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD910 -> 0x001DD91C +*/ +// Range: 0x1DD910 -> 0x1DD91C +static void update_tag_height(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD910 -> 0x1DD91C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD920 -> 0x001DD930 +*/ +// Range: 0x1DD920 -> 0x1DD930 +static void reset_tag_width(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD920 -> 0x1DD930 + class callback cb; // @ 0x004F8848 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DD930 -> 0x001DDA5C +*/ +// Range: 0x1DD930 -> 0x1DDA5C +static void parse_tag_width(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DD930 -> 0x1DDA5C + float & v; // r16 + class callback cb; // @ 0x004F8838 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDA60 -> 0x001DDA6C +*/ +// Range: 0x1DDA60 -> 0x1DDA6C +static void update_tag_reset_width(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDA60 -> 0x1DDA6C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDA70 -> 0x001DDA7C +*/ +// Range: 0x1DDA70 -> 0x1DDA7C +static void update_tag_width(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDA70 -> 0x1DDA7C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDA80 -> 0x001DDA90 +*/ +// Range: 0x1DDA80 -> 0x1DDA90 +static void reset_tag_blue(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDA80 -> 0x1DDA90 + class callback cb; // @ 0x004F8828 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDA90 -> 0x001DDC2C +*/ +// Range: 0x1DDA90 -> 0x1DDC2C +static void parse_tag_blue(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDA90 -> 0x1DDC2C + float & v; // r16 + class callback cb; // @ 0x004F8818 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDC30 -> 0x001DDC3C +*/ +// Range: 0x1DDC30 -> 0x1DDC3C +static void update_tag_reset_blue(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDC30 -> 0x1DDC3C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDC40 -> 0x001DDCA8 +*/ +// Range: 0x1DDC40 -> 0x1DDCA8 +static void update_tag_blue(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDC40 -> 0x1DDCA8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDCB0 -> 0x001DDCC0 +*/ +// Range: 0x1DDCB0 -> 0x1DDCC0 +static void reset_tag_green(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDCB0 -> 0x1DDCC0 + class callback cb; // @ 0x004F8808 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDCC0 -> 0x001DDE5C +*/ +// Range: 0x1DDCC0 -> 0x1DDE5C +static void parse_tag_green(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDCC0 -> 0x1DDE5C + float & v; // r16 + class callback cb; // @ 0x004F87F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDE60 -> 0x001DDE6C +*/ +// Range: 0x1DDE60 -> 0x1DDE6C +static void update_tag_reset_green(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDE60 -> 0x1DDE6C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDE70 -> 0x001DDED8 +*/ +// Range: 0x1DDE70 -> 0x1DDED8 +static void update_tag_green(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDE70 -> 0x1DDED8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDEE0 -> 0x001DDEF0 +*/ +// Range: 0x1DDEE0 -> 0x1DDEF0 +static void reset_tag_red(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDEE0 -> 0x1DDEF0 + class callback cb; // @ 0x004F87E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DDEF0 -> 0x001DE08C +*/ +// Range: 0x1DDEF0 -> 0x1DE08C +static void parse_tag_red(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DDEF0 -> 0x1DE08C + float & v; // r16 + class callback cb; // @ 0x004F87D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE090 -> 0x001DE09C +*/ +// Range: 0x1DE090 -> 0x1DE09C +static void update_tag_reset_red(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE090 -> 0x1DE09C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE0A0 -> 0x001DE108 +*/ +// Range: 0x1DE0A0 -> 0x1DE108 +static void update_tag_red(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE0A0 -> 0x1DE108 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE110 -> 0x001DE120 +*/ +// Range: 0x1DE110 -> 0x1DE120 +static void reset_tag_alpha(class jot & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE110 -> 0x1DE120 + class callback cb; // @ 0x004F87C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE120 -> 0x001DE2BC +*/ +// Range: 0x1DE120 -> 0x1DE2BC +static void parse_tag_alpha(class jot & a /* r18 */, class xtextbox & tb /* r17 */, class split_tag & ti /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE120 -> 0x1DE2BC + float & v; // r16 + class callback cb; // @ 0x004F87B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE2C0 -> 0x001DE2CC +*/ +// Range: 0x1DE2C0 -> 0x1DE2CC +static void update_tag_reset_alpha(class xtextbox & tb /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE2C0 -> 0x1DE2CC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE2D0 -> 0x001DE338 +*/ +// Range: 0x1DE2D0 -> 0x1DE338 +static void update_tag_alpha(class jot & j /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE2D0 -> 0x1DE338 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE340 -> 0x001DE54C +*/ +// Range: 0x1DE340 -> 0x1DE54C +unsigned char changed(class layout * this /* r22 */, class xtextbox & ctb /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE340 -> 0x1DE54C + unsigned int flags1; // r5 + unsigned int flags2; // r4 + signed int i; // r20 + class jot & j; // r19 + unsigned int oldval; // r18 + unsigned int val; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE550 -> 0x001DE690 +*/ +// Range: 0x1DE550 -> 0x1DE690 +float yextent(class layout * this /* r2 */, float max /* r29 */, signed int & size /* r2 */, signed int begin_jot /* r2 */, signed int end_jot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE550 -> 0x1DE690 + signed int begin_line; // r11 + float top; // r2 + signed int i; // r10 + class jot_line & line; // r9 + class jot_line & line; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DE690 -> 0x001DEB98 +*/ +// Range: 0x1DE690 -> 0x1DEB98 +void render(class layout * this /* r21 */, class xtextbox & ctb /* r20 */, signed int begin_jot /* r19 */, signed int end_jot /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DE690 -> 0x1DEB98 + signed int begin_line; // r17 + signed int i; // r16 + class jot & j; // r2 + float top; // r22 + unsigned int li; // r3 + signed int line_last; // r23 + float x; // r21 + float y; // r20 + signed int i; // r2 + class jot_line & line; // r4 + unsigned int xj; // r3 + class jot & j; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DEBA0 -> 0x001DF1B0 +*/ +// Range: 0x1DEBA0 -> 0x1DF1B0 +void calc(class layout * this /* r21 */, class xtextbox & ctb /* r30 */, unsigned int start_text /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DEBA0 -> 0x1DF1B0 + class jot_line & first_line; // r2 + class /* @class */ { + // total size: 0x8 + public: + char * s; // offset 0x0, size 0x4 + char * end; // offset 0x4, size 0x4 + } text_stack[16]; // r29+0xB0 + unsigned int text_stack_size; // r20 + unsigned int text_index; // r2 + char * s; // r19 + char * end; // r18 + class jot & a; // r17 + class jot_line & line; // r16 + class jot_line & last_line; // r5 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DF1B0 -> 0x001DF324 +*/ +// Range: 0x1DF1B0 -> 0x1DF324 +unsigned char fit_line(class layout * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DF1B0 -> 0x1DF324 + class jot_line & line; // r16 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DF330 -> 0x001DF454 +*/ +// Range: 0x1DF330 -> 0x1DF454 +void bound_line(class layout * this /* r2 */, class jot_line & line /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DF330 -> 0x1DF454 + unsigned int i; // r8 + class jot & a; // r6 + unsigned int i; // r8 + class jot & a; // r6 + float total_height; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DF460 -> 0x001DF72C +*/ +// Range: 0x1DF460 -> 0x1DF72C +void merge_line(class layout * this /* r2 */, class jot_line & line /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DF460 -> 0x1DF72C + unsigned int d; // r10 + unsigned int i; // r9 + class jot & a1; // r8 + class jot & a2; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DF730 -> 0x001DF9B0 +*/ +// Range: 0x1DF730 -> 0x1DF9B0 +void trim_line(class layout * this /* r2 */, class jot_line & line /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DF730 -> 0x1DF9B0 + signed int i; // r3 + class jot & a; // r2 + unsigned int i; // r3 + class jot & a; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DF9B0 -> 0x001DFB04 +*/ +// Range: 0x1DF9B0 -> 0x1DFB04 +void clear(class layout * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DF9B0 -> 0x1DFB04 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DFCD0 -> 0x001DFDCC +*/ +// Range: 0x1DFCD0 -> 0x1DFDCC +void refresh_end(class layout * this /* r2 */, class xtextbox & tb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DFCD0 -> 0x1DFDCC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DFDD0 -> 0x001DFEF4 +*/ +// Range: 0x1DFDD0 -> 0x1DFEF4 +void refresh(class layout * this /* r17 */, class xtextbox & tb /* r16 */, unsigned char force /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DFDD0 -> 0x1DFEF4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DFF00 -> 0x001DFF54 +*/ +// Range: 0x1DFF00 -> 0x1DFF54 +void clear_layout_cache() { + // Blocks + /* anonymous block */ { + // Range: 0x1DFF00 -> 0x1DFF54 + unsigned int index; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DFF60 -> 0x001DFFF4 +*/ +// Range: 0x1DFF60 -> 0x1DFFF4 +unsigned int read_list(class tag_entry & e /* r17 */, signed int * v /* r2 */, unsigned int vsize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DFF60 -> 0x1DFFF4 + unsigned int total; // r16 + unsigned int i; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0000 -> 0x001E0094 +*/ +// Range: 0x1E0000 -> 0x1E0094 +unsigned int read_list(class tag_entry & e /* r17 */, float * v /* r2 */, unsigned int vsize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0000 -> 0x1E0094 + unsigned int total; // r16 + unsigned int i; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E00A0 -> 0x001E0140 +*/ +// Range: 0x1E00A0 -> 0x1E0140 +class tag_entry * find_entry(class tag_entry_list & el /* r18 */, class substr & name /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E00A0 -> 0x1E0140 + unsigned int i; // r16 + class tag_entry & e; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0140 -> 0x001E05DC +*/ +// Range: 0x1E0140 -> 0x1E05DC +class tag_entry_list read_tag(class substr & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0140 -> 0x1E05DC + unsigned int entries_used; // r20 + class substr it; // r29+0x88 + class substr delims; // r29+0x80 + class substr sub_delims; // r29+0x78 + class tag_entry & entry; // r19 + char * d; // r2 + class substr & arg; // r18 + char * d; // r2 + class tag_entry_list ret; // r29+0x70 + class substr arg_buffer[32]; // @ 0x00561180 + class tag_entry entry_buffer[16]; // @ 0x00561280 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E05E0 -> 0x001E05F0 +*/ +// Range: 0x1E05E0 -> 0x1E05F0 +float yextent(float max /* r29 */, signed int & size /* r2 */, class layout & l /* r2 */, signed int begin_jot /* r2 */, signed int end_jot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E05E0 -> 0x1E05F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E05F0 -> 0x001E0600 +*/ +// Range: 0x1E05F0 -> 0x1E0600 +void render(class xtextbox * this /* r2 */, class layout & l /* r2 */, signed int begin_jot /* r2 */, signed int end_jot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E05F0 -> 0x1E0600 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0600 -> 0x001E0958 +*/ +// Range: 0x1E0600 -> 0x1E0958 +class layout & temp_layout(class xtextbox * this /* r20 */, unsigned char cache /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0600 -> 0x1E0958 + signed long cur_time; // r18 + unsigned char refresh; // r17 + unsigned int index; // r16 + signed int min_used; // r6 + unsigned int i; // r5 + signed int used; // r4 + class tl_cache_entry & e; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0960 -> 0x001E0A68 +*/ +// Range: 0x1E0960 -> 0x1E0A68 +void set_text(class xtextbox * this /* r20 */, char * * texts /* r2 */, unsigned int * text_sizes /* r2 */, unsigned int size /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0960 -> 0x1E0A68 + unsigned int i; // r17 + unsigned int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0A70 -> 0x001E0A7C +*/ +// Range: 0x1E0A70 -> 0x1E0A7C +void set_text(class xtextbox * this /* r2 */, char * * texts /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0A70 -> 0x1E0A7C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0A80 -> 0x001E0AC4 +*/ +// Range: 0x1E0A80 -> 0x1E0AC4 +void set_text(class xtextbox * this /* r2 */, char * text /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0A80 -> 0x1E0AC4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0AD0 -> 0x001E0AE4 +*/ +// Range: 0x1E0AD0 -> 0x1E0AE4 +void text_render(class jot & j /* r2 */, class xtextbox & tb /* r2 */, float x /* r29 */, float y /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0AD0 -> 0x1E0AE4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0AF0 -> 0x001E0C08 +*/ +// Range: 0x1E0AF0 -> 0x1E0C08 +static void start_layout() { + // Blocks + /* anonymous block */ { + // Range: 0x1E0AF0 -> 0x1E0C08 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E0C10 -> 0x001E1174 +*/ +// Range: 0x1E0C10 -> 0x1E1174 +static void load_model_args(class model_args & ma /* r16 */, class substr & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E0C10 -> 0x1E1174 + class tag_entry_list el; // r29+0xE8 + class tag_entry * e; // r21 + class substr & name; // r2 + unsigned int id; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E1180 -> 0x001E1B1C +*/ +// Range: 0x1E1180 -> 0x1E1B1C +static void load_tex_args(class tex_args & ta /* r16 */, class substr & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E1180 -> 0x1E1B1C + class tag_entry_list el; // r29+0x170 + class tag_entry * e; // r21 + class substr & name; // r17 + unsigned int id; // r2 + class RwTexture * texture; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E1B20 -> 0x001E1D38 +*/ +// Range: 0x1E1B20 -> 0x1E1D38 +static char * parse_next_text_jot(class jot & a /* r2 */, class xtextbox & tb /* r2 */, char * text /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E1B20 -> 0x1E1D38 + char c; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E1D40 -> 0x001E1F4C +*/ +// Range: 0x1E1D40 -> 0x1E1F4C +static char * parse_next_tag_jot(class jot & a /* r21 */, class xtextbox & tb /* r20 */, class xtextbox & ctb /* r19 */, char * text /* r18 */, unsigned int text_size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E1D40 -> 0x1E1F4C + class split_tag ti; // r29+0x70 + unsigned int size; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E1F50 -> 0x001E233C +*/ +// Range: 0x1E1F50 -> 0x1E233C +static unsigned int parse_split_tag(class split_tag & ti /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E1F50 -> 0x1E233C + class substr s; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2340 -> 0x001E2600 +*/ +// Range: 0x1E2340 -> 0x1E2600 +void irender(class xfont * this /* r17 */, char * text /* r23 */, unsigned int text_size /* r30 */, float x /* r21 */, float y /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E2340 -> 0x1E2600 + class font_data & fd; // r16 + class basic_rect bounds; // r29+0xC0 + unsigned int i; // r21 + unsigned int charIndex; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2600 -> 0x001E2608 +*/ +// Range: 0x1E2600 -> 0x1E2608 +void irender(class xfont * this /* r2 */, char * text /* r2 */, float x /* r29 */, float y /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E2600 -> 0x1E2608 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2610 -> 0x001E26D4 +*/ +// Range: 0x1E2610 -> 0x1E26D4 +void stop_render() { + // Blocks + /* anonymous block */ { + // Range: 0x1E2610 -> 0x1E26D4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E26E0 -> 0x001E2748 +*/ +// Range: 0x1E26E0 -> 0x1E2748 +void start_render(class xfont * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E26E0 -> 0x1E2748 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2750 -> 0x001E28B8 +*/ +// Range: 0x1E2750 -> 0x1E28B8 +class basic_rect bounds(class xfont * this /* r2 */, char * text /* r2 */, unsigned int text_size /* r2 */, float max_width /* r29+0x10 */, unsigned int & size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E2750 -> 0x1E28B8 + class font_data & fd; // r13 + class basic_rect r; // r29 + char * s; // r12 + unsigned int i; // r10 + unsigned int charIndex; // r2 + float dx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E28C0 -> 0x001E28EC +*/ +// Range: 0x1E28C0 -> 0x1E28EC +class basic_rect bounds(class xfont * this /* r2 */, char * text /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E28C0 -> 0x1E28EC + unsigned int size; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E28F0 -> 0x001E2994 +*/ +// Range: 0x1E28F0 -> 0x1E2994 +void restore_render_state() { + // Blocks + /* anonymous block */ { + // Range: 0x1E28F0 -> 0x1E2994 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E29A0 -> 0x001E2ABC +*/ +// Range: 0x1E29A0 -> 0x1E2ABC +void set_render_state(class RwRaster * raster /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E29A0 -> 0x1E2ABC + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2AC0 -> 0x001E2B84 +*/ +// Range: 0x1E2AC0 -> 0x1E2B84 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x1E2AC0 -> 0x1E2B84 + unsigned int i; // r17 + class font_data & fd; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2B90 -> 0x001E2CD0 +*/ +// Range: 0x1E2B90 -> 0x1E2CD0 +static class xModelInstance * load_model(unsigned int id /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E2B90 -> 0x1E2CD0 + unsigned int oldest; // r17 + unsigned int i; // r6 + class RpAtomic * mf; // r16 + class model_cache_entry & e; // r3 + class xModelInstance & model; // r17 + unsigned int next_order; // @ 0x0050F9B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2CD0 -> 0x001E2E84 +*/ +// Range: 0x1E2CD0 -> 0x1E2E84 +static void init_model_cache() { + // Blocks + /* anonymous block */ { + // Range: 0x1E2CD0 -> 0x1E2E84 + void * data; // r2 + class model_pool & pool; // r16 + class xModelInstance & model; // r3 + class model_cache_entry & e; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E2E90 -> 0x001E35A0 +*/ +// Range: 0x1E2E90 -> 0x1E35A0 +static void tex_render(class basic_rect & src /* r2 */, class basic_rect & dst /* r2 */, class basic_rect & clip /* r2 */, class iColor_tag color /* r29+0x6C */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E2E90 -> 0x1E35A0 + class basic_rect r; // r29+0x80 + class basic_rect rt; // r29+0x70 + class RwSky2DVertex * vert; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E35A0 -> 0x001E3CD8 +*/ +// Range: 0x1E35A0 -> 0x1E3CD8 +static unsigned char init_font_data(class font_data & fd /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E35A0 -> 0x1E3CD8 + class font_asset & a; // r16 + signed int height; // r2 + unsigned char i; // r22 + unsigned char c; // r7 + unsigned int tail_index; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E3CE0 -> 0x001E3FB0 +*/ +// Range: 0x1E3CE0 -> 0x1E3FB0 +static unsigned char reset_font_spacing(class font_asset & a /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E3CE0 -> 0x1E3FB0 + class RwTexture * tex; // r16 + class basic_rect char_bounds; // r29+0x1C0 + unsigned char baseline_count[256]; // r29+0xC0 + signed int width; // r20 + class RwImage * image; // r19 + class iColor_tag * bits; // r23 + signed int i; // r18 + class basic_rect r; // r29+0xB0 + signed int baseline; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001E3FB0 -> 0x001E412C +*/ +// Range: 0x1E3FB0 -> 0x1E412C +static class basic_rect find_bounds(class iColor_tag * bits /* r2 */, class basic_rect & r /* r2 */, signed int pitch /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1E3FB0 -> 0x1E412C + signed int diff; // r8 + class iColor_tag * endp; // r3 + class iColor_tag * p; // r2 + signed int pmode; // r25 + signed int minx; // r24 + signed int maxx; // r15 + signed int miny; // r14 + signed int maxy; // r13 + signed int y; // r12 + class iColor_tag * endline; // r11 + signed int x; // r10 + class basic_rect b; // r29 + } +} + diff --git a/dwarf/SB/Core/x/xFont.h b/dwarf/SB/Core/x/xFont.h new file mode 100644 index 000000000..878410d08 --- /dev/null +++ b/dwarf/SB/Core/x/xFont.h @@ -0,0 +1,29 @@ +/* + Compile unit: C:\SB\Core\x\xFont.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DFB10 -> 0x001DFBF8 +*/ +// Range: 0x1DFB10 -> 0x1DFBF8 +class xtextbox create(class xfont & font /* r2 */, class basic_rect & bounds /* r2 */, unsigned int flags /* r2 */, float line_space /* r29+0x70 */, float tab_stop /* r29+0x70 */, float left_indent /* r29+0x70 */, float right_indent /* r29+0x70 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1DFB10 -> 0x1DFBF8 + class xtextbox r; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xFont.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001DFC00 -> 0x001DFCCC +*/ +// Range: 0x1DFC00 -> 0x1DFCCC +class xfont create() { + // Blocks + /* anonymous block */ { + // Range: 0x1DFC00 -> 0x1DFCCC + } +} + diff --git a/dwarf/SB/Core/x/xGrid.cpp b/dwarf/SB/Core/x/xGrid.cpp new file mode 100644 index 000000000..ddae96efe --- /dev/null +++ b/dwarf/SB/Core/x/xGrid.cpp @@ -0,0 +1,1240 @@ +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int gGridIterActive; // size: 0x4, address: 0x50FFC8 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xGridIterator { + // total size: 0xC +public: + class xGridBound * * listhead; // offset 0x0, size 0x4 + class xGridBound * curcell; // offset 0x4, size 0x4 + unsigned int delfound; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304480 -> 0x00304C40 +*/ +// Range: 0x304480 -> 0x304C40 +void xGridCheckPosition(class xGrid * grid /* r23 */, class xVec3 * pos /* r19 */, class xQCData * qcd /* r30 */, signed int (* hitCB)(class xEnt *, void *) /* r21 */, void * cbdata /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304480 -> 0x304C40 + class xGridIterator it; // r29+0xA8 + signed int px; // r29+0xBC + signed int pz; // r29+0xB8 + class xGridBound * cell; // r17 + float clcenterx; // r8 + float clcenterz; // r1 + signed int i; // r20 + signed int _x; // r7 + signed int _z; // r6 + signed int offs[4][3][2]; // @ 0x004DFA30 + signed int k; // @ 0x0050FFCC + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304C40 -> 0x00304DA0 +*/ +// Range: 0x304C40 -> 0x304DA0 +signed int xGridEntIsTooBig(class xGrid * grid /* r2 */, class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304C40 -> 0x304DA0 + class xBound * bound; // r6 + float maxr; // r29 + class xBBox * bbox; // r2 + float rx; // r15 + float ry; // r14 + float rz; // r13 + class xBBox * bbox; // r2 + float rx; // r4 + float rz; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304DA0 -> 0x00304F30 +*/ +// Range: 0x304DA0 -> 0x304F30 +class xGridBound * xGridIterFirstCell(class xGrid * grid /* r2 */, float posx /* r29 */, float posz /* r29 */, signed int & grx /* r2 */, signed int & grz /* r2 */, class xGridIterator & it /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304DA0 -> 0x304F30 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00304F30 -> 0x00305028 +*/ +// Range: 0x304F30 -> 0x305028 +void xGridGetCell(class xGrid * grid /* r2 */, float posx /* r29 */, float posz /* r29 */, signed int & grx /* r2 */, signed int & grz /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x304F30 -> 0x305028 + float pgridx; // r3 + float pgridz; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305030 -> 0x003051B0 +*/ +// Range: 0x305030 -> 0x3051B0 +static class xGridBound * * xGridGetCell(class xGrid * grid /* r2 */, class xEnt * ent /* r2 */, signed int & grx /* r2 */, signed int & grz /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305030 -> 0x3051B0 + class xBound * bound; // r8 + class xVec3 * center; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003051B0 -> 0x0030527C +*/ +// Range: 0x3051B0 -> 0x30527C +void xGridUpdate(class xGrid * grid /* r17 */, class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3051B0 -> 0x30527C + signed int dx; // r29+0x3C + signed int dz; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305280 -> 0x00305308 +*/ +// Range: 0x305280 -> 0x305308 +signed int xGridRemove(class xGridBound * gridb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305280 -> 0x305308 + class xGridBound * cur; // r6 + class xGridBound * * prev; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305310 -> 0x00305760 +*/ +// Range: 0x305310 -> 0x305760 +signed int xGridAdd(class xGrid * grid /* r20 */, class xEnt * ent /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305310 -> 0x305760 + class xBound * bound; // r4 + class xVec3 * center; // r3 + float maxr; // r29+0x60 + class xSphere * sph; // r2 + class xBBox * bbox; // r2 + float rx; // r15 + float ry; // r14 + float rz; // r13 + class xBBox * bbox; // r2 + float rx; // r4 + float rz; // r2 + float cgridx; // r4 + float cgridz; // r2 + signed int x; // r18 + signed int z; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305760 -> 0x00305858 +*/ +// Range: 0x305760 -> 0x305858 +void xGridEmpty(class xGrid * grid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305760 -> 0x305858 + class xGridBound * * head; // r11 + class xGridBound * curr; // r7 + signed int x; // r10 + signed int z; // r9 + class xGridBound * currnext; // r3 + class xGridBound * currnext; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305860 -> 0x00305888 +*/ +// Range: 0x305860 -> 0x305888 +void xGridKill(class xGrid * grid /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305860 -> 0x305888 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305890 -> 0x00305ADC +*/ +// Range: 0x305890 -> 0x305ADC +void xGridInit(class xGrid * grid /* r18 */, class xBox * bounds /* r2 */, unsigned short nx /* r17 */, unsigned short nz /* r16 */, unsigned char ingrid_id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305890 -> 0x305ADC + float gsizex; // r3 + float gsizez; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305AE0 -> 0x00305B0C +*/ +// Range: 0x305AE0 -> 0x305B0C +void xGridBoundInit(class xGridBound * gridb /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305AE0 -> 0x305B0C + } +} + diff --git a/dwarf/SB/Core/x/xGrid.h b/dwarf/SB/Core/x/xGrid.h new file mode 100644 index 000000000..5327d3b0b --- /dev/null +++ b/dwarf/SB/Core/x/xGrid.h @@ -0,0 +1,86 @@ +/* + Compile unit: C:\SB\Core\x\xGrid.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00200690 -> 0x0020107C +*/ +// Range: 0x200690 -> 0x20107C +void xGridCheckBound(class xGrid & grid /* r29+0x14C */, class xBound & bound /* r2 */, class xQCData & qcd /* r29+0x148 */) { + // Blocks + /* anonymous block */ { + // Range: 0x200690 -> 0x20107C + class cb_ray_hits_ent cb; // r29+0x210 + class xBox box; // r29+0x1F0 + float ex; // r2 + float ez; // r1 + class xGridBound * cell; // r19 + unsigned short gx; // r29+0x130 + unsigned short gz; // r16 + class xGridBound * cell; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AC450 -> 0x002ACF58 +*/ +// Range: 0x2AC450 -> 0x2ACF58 +void xGridCheckBound(class xGrid & grid /* r23 */, class xBound & bound /* r2 */, class xQCData & qcd /* r29+0xF8 */, class cb_damage_ent cb /* r29+0xFC */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AC450 -> 0x2ACF58 + class xBox box; // r29+0x1C0 + float ex; // r2 + float ez; // r1 + class xGridBound * cell; // r16 + unsigned short gx; // r30 + unsigned short gz; // r16 + class xGridBound * cell; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ACF60 -> 0x002AD7DC +*/ +// Range: 0x2ACF60 -> 0x2AD7DC +void xGridCheckBound(class xGrid & grid /* r22 */, class xBound & bound /* r2 */, class xQCData & qcd /* r29+0xE8 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ACF60 -> 0x2AD7DC + class xBox box; // r29+0xF0 + float ex; // r2 + float ez; // r1 + class xGridBound * cell; // r16 + unsigned short gx; // r23 + unsigned short gz; // r16 + class xGridBound * cell; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xGrid.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FB130 -> 0x002FBA0C +*/ +// Range: 0x2FB130 -> 0x2FBA0C +void xGridCheckBound(class xGrid & grid /* r30 */, class xBound & bound /* r2 */, class xQCData & qcd /* r29+0x10C */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FB130 -> 0x2FBA0C + class cb_cache_collisions cb; // r29+0x1D0 + class xBox box; // r29+0x1B0 + float ex; // r2 + float ez; // r1 + class xGridBound * cell; // r16 + unsigned short gx; // r29+0xF0 + unsigned short gz; // r21 + class xGridBound * cell; // r19 + } +} + diff --git a/dwarf/SB/Core/x/xGroup.cpp b/dwarf/SB/Core/x/xGroup.cpp new file mode 100644 index 000000000..154144b5d --- /dev/null +++ b/dwarf/SB/Core/x/xGroup.cpp @@ -0,0 +1,190 @@ +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int xGroupEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x29FC30 +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FAF0 -> 0x0029FB30 +*/ +// Range: 0x29FAF0 -> 0x29FB30 +unsigned int get_any(class xGroup * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FAF0 -> 0x29FB30 + unsigned int id; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FB30 -> 0x0029FB44 +*/ +// Range: 0x29FB30 -> 0x29FB44 +unsigned int xGroupGetItem(class xGroup * g /* r2 */, unsigned int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FB30 -> 0x29FB44 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FB50 -> 0x0029FC18 +*/ +// Range: 0x29FB50 -> 0x29FC18 +class xBase * xGroupGetItemPtr(class xGroup * g /* r20 */, unsigned int index /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FB50 -> 0x29FC18 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FC20 -> 0x0029FC2C +*/ +// Range: 0x29FC20 -> 0x29FC2C +unsigned int xGroupGetCount(class xGroup * g /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FC20 -> 0x29FC2C + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FC30 -> 0x0029FEF8 +*/ +// Range: 0x29FC30 -> 0x29FEF8 +signed int xGroupEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r20 */, float * toParam /* r19 */, class xBase * toParamWidget /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FC30 -> 0x29FEF8 + class xGroup * g; // r17 + signed int rand; // r16 + signed int i; // r22 + class xBase * b; // r2 + signed int i; // r22 + class xBase * b; // r2 + signed int i; // r22 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FF00 -> 0x0029FF08 +*/ +// Range: 0x29FF00 -> 0x29FF08 +void xGroupLoad(class xGroup * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FF00 -> 0x29FF08 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FF10 -> 0x0029FF18 +*/ +// Range: 0x29FF10 -> 0x29FF18 +void xGroupSave(class xGroup * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FF10 -> 0x29FF18 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FF20 -> 0x0029FFBC +*/ +// Range: 0x29FF20 -> 0x29FFBC +void xGroupSetup(class xGroup * g /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FF20 -> 0x29FFBC + unsigned int count; // r18 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FFC0 -> 0x002A006C +*/ +// Range: 0x29FFC0 -> 0x2A006C +void xGroupInit(void * b /* r2 */, void * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29FFC0 -> 0x2A006C + } +} + diff --git a/dwarf/SB/Core/x/xHud.cpp b/dwarf/SB/Core/x/xHud.cpp new file mode 100644 index 000000000..6ad187f21 --- /dev/null +++ b/dwarf/SB/Core/x/xHud.cpp @@ -0,0 +1,2739 @@ +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class /* @class */ { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned int size; // offset 0x4, size 0x4 +} known_types[4]; // size: 0x20, address: 0x4FBB30 +class block_allocator * _head_alloc; // size: 0x4, address: 0x50FDBC +static unsigned char inited; // size: 0x1, address: 0x50FDC0 +struct /* @anon0 */ { + // total size: 0x28 +} __vt__Q24xhud6widget; // size: 0x28, address: 0x508D70 +signed long skyTest_1; // size: 0x4, address: 0x50EB58 +class callback text_cb; // size: 0xC, address: 0x4F87A8 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +void fp_hide(class widget &); // size: 0x0, address: 0x0 +void fp_show(class widget &); // size: 0x0, address: 0x0 +void fp_render(class widget &); // size: 0x0, address: 0x298A40 +void fp_setup(class widget &); // size: 0x0, address: 0x298A90 +unsigned char linear_motive_update(class widget &, class motive &, float); // size: 0x0, address: 0x2983B0 +unsigned char accelerate_motive_update(class widget &, class motive &, float); // size: 0x0, address: 0x2982F0 +signed int cb_dispatch(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x2987B0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class block_allocator { + // total size: 0x10 +public: + unsigned int _block_size; // offset 0x0, size 0x4 + unsigned int _alloc_size; // offset 0x4, size 0x4 + class holder * _top; // offset 0x8, size 0x4 + class block_allocator * _next_alloc; // offset 0xC, size 0x4 +}; +class color32u { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class font_context { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + signed int justify; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 + float space; // offset 0x10, size 0x4 + float drop_x; // offset 0x14, size 0x4 + float drop_y; // offset 0x18, size 0x4 + class color32u c; // offset 0x1C, size 0x4 + class color32u drop_c; // offset 0x20, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class functor_update { + // total size: 0x4 +public: + float dt; // offset 0x0, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class holder { + // total size: 0x8 +public: + class header h; // offset 0x0, size 0x4 + unsigned char data[1]; // offset 0x4, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xModelAssetInfo { + // total size: 0x14 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int NumModelInst; // offset 0x4, size 0x4 + unsigned int AnimTableID; // offset 0x8, size 0x4 + unsigned int CombatID; // offset 0xC, size 0x4 + unsigned int BrainID; // offset 0x10, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class widget_chunk : public xBase { + // total size: 0x94 +public: + class widget w; // offset 0x10, size 0x84 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class header { + // total size: 0x4 +public: + class holder * next; // offset 0x0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned int size; // offset 0x4, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class functor_disable { + // total size: 0x1 +public: + unsigned char destroy_widgets; // offset 0x0, size 0x1 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +struct /* @anon0 */ { + // total size: 0x28 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; +class xFFX { + // total size: 0x0 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002981F0 -> 0x0029824C +*/ +// Range: 0x2981F0 -> 0x29824C +unsigned char delay_motive_update(class widget & w /* r2 */, class motive & m /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2981F0 -> 0x29824C + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298250 -> 0x002982E8 +*/ +// Range: 0x298250 -> 0x2982E8 +unsigned char shake_motive_update(class motive & m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298250 -> 0x2982E8 + unsigned int & iter; // r3 + unsigned int i; // r4 + float diff; // r2 + float mult[4]; // @ 0x004FBB50 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002982F0 -> 0x002983B0 +*/ +// Range: 0x2982F0 -> 0x2983B0 +unsigned char accelerate_motive_update(class motive & m /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2982F0 -> 0x2983B0 + float diff; // r3 + float remaining; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002983B0 -> 0x00298448 +*/ +// Range: 0x2983B0 -> 0x298448 +unsigned char linear_motive_update(class motive & m /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2983B0 -> 0x298448 + float diff; // r3 + float remaining; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298450 -> 0x00298700 +*/ +// Range: 0x298450 -> 0x298700 +void render_model(class xModelInstance & m /* r18 */, class render_context & rc /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298450 -> 0x298700 + class basic_rect r; // r29+0x80 + class xVec3 from; // r29+0xA0 + class xVec3 to; // r29+0x90 + class xMat4x3 frame; // r29+0x40 + class xModelInstance * model; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298700 -> 0x002987A8 +*/ +// Range: 0x298700 -> 0x2987A8 +class xModelInstance * load_model(unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298700 -> 0x2987A8 + unsigned int bufsize; // r29+0x2C + class xModelAssetInfo * minf; // r2 + class RpAtomic * imodel; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002987B0 -> 0x002987E0 +*/ +// Range: 0x2987B0 -> 0x2987E0 +signed int cb_dispatch(class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int event /* r2 */, float * argf /* r2 */, class xBase * argw /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2987B0 -> 0x2987E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002987E0 -> 0x002988B0 +*/ +// Range: 0x2987E0 -> 0x2988B0 +void clear_motives(class widget * this /* r2 */, unsigned char (* fp_update)(class widget &, class motive &, float) /* r2 */, void * context /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2987E0 -> 0x2988B0 + class motive_node * * itp; // r12 + class motive_node * it; // r11 + class block_allocator ba; // @ 0x005C6E20 + signed char @4476; // @ 0x0050FDC4 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002988B0 -> 0x00298A34 +*/ +// Range: 0x2988B0 -> 0x298A34 +void add_motive(class widget * this /* r18 */, class motive & m /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2988B0 -> 0x298A34 + class motive_node * n; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298A40 -> 0x00298A84 +*/ +// Range: 0x298A40 -> 0x298A84 +static void fp_render(class widget & w /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298A40 -> 0x298A84 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298A90 -> 0x00298AA0 +*/ +// Range: 0x298A90 -> 0x298AA0 +static void fp_setup(class widget & w /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298A90 -> 0x298AA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298AA0 -> 0x00298CF8 +*/ +// Range: 0x298AA0 -> 0x298CF8 +void hide(class widget * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298AA0 -> 0x298CF8 + float x; // r2 + float y; // r29+0xC0 + float sx; // r9 + float sy; // r8 + float cx; // r7 + float cy; // r6 + float tx; // r5 + float ty; // r4 + float tcx; // r5 + float tcy; // r4 + float acx; // r4 + float acy; // r3 + float dist; // r1 + float vx; // r29+0xC0 + float vy; // r21 + float ex; // r2 + float ey; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298D00 -> 0x00298F78 +*/ +// Range: 0x298D00 -> 0x298F78 +void show(class widget * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298D00 -> 0x298F78 + float dx; // r3 + float dy; // r20 + float d2; // r1 + float vx; // r2 + float vy; // r23 + float a; // r22 + float da; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298F80 -> 0x00298FCC +*/ +// Range: 0x298F80 -> 0x298FCC +unsigned char is(unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298F80 -> 0x298FCC + unsigned int myid; // @ 0x0050FDC8 + signed char @4606; // @ 0x0050FDCC + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298FD0 -> 0x00299008 +*/ +// Range: 0x298FD0 -> 0x299008 +unsigned int type() { + // Blocks + /* anonymous block */ { + // Range: 0x298FD0 -> 0x299008 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299010 -> 0x00299154 +*/ +// Range: 0x299010 -> 0x299154 +void updater(class widget * this /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299010 -> 0x299154 + class motive_node * * itp; // r17 + class motive_node * it; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299160 -> 0x00299168 +*/ +// Range: 0x299160 -> 0x299168 +void presetup(class widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299160 -> 0x299168 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299170 -> 0x00299178 +*/ +// Range: 0x299170 -> 0x299178 +void destruct(class widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299170 -> 0x299178 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299180 -> 0x002991D8 +*/ +// Range: 0x299180 -> 0x2991D8 +void init_base(class xBase & data /* r2 */, class xBaseAsset & asset /* r18 */, unsigned int chunk_size /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299180 -> 0x2991D8 + class widget_chunk & wc; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002991E0 -> 0x002992BC +*/ +// Range: 0x2991E0 -> 0x2992BC +void * __ct(class widget * this /* r2 */, class asset & a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2991E0 -> 0x2992BC + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002992C0 -> 0x00299324 +*/ +// Range: 0x2992C0 -> 0x299324 +void render() { + // Blocks + /* anonymous block */ { + // Range: 0x2992C0 -> 0x299324 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299330 -> 0x00299384 +*/ +// Range: 0x299330 -> 0x299384 +void update(float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299330 -> 0x299384 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299390 -> 0x00299414 +*/ +// Range: 0x299390 -> 0x299414 +void destroy() { + // Blocks + /* anonymous block */ { + // Range: 0x299390 -> 0x299414 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299420 -> 0x00299478 +*/ +// Range: 0x299420 -> 0x299478 +void setup() { + // Blocks + /* anonymous block */ { + // Range: 0x299420 -> 0x299478 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299480 -> 0x002994F4 +*/ +// Range: 0x299480 -> 0x2994F4 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x299480 -> 0x2994F4 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299500 -> 0x00299594 +*/ +// Range: 0x299500 -> 0x299594 +static void for_each(unsigned char type /* r2 */, unsigned int size /* r16 */, class functor_update f /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299500 -> 0x299594 + class zScene & s; // r4 + unsigned char * it; // r18 + unsigned char * end; // r17 + class widget_chunk * wc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002995A0 -> 0x0029961C +*/ +// Range: 0x2995A0 -> 0x29961C +static void for_each(unsigned char type /* r2 */, unsigned int size /* r17 */, void (* f)(class widget &) /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2995A0 -> 0x29961C + class zScene & s; // r4 + unsigned char * it; // r19 + unsigned char * end; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299620 -> 0x002996B4 +*/ +// Range: 0x299620 -> 0x2996B4 +static void for_each(unsigned char type /* r2 */, unsigned int size /* r16 */, class functor_disable f /* r29+0x5C */) { + // Blocks + /* anonymous block */ { + // Range: 0x299620 -> 0x2996B4 + class zScene & s; // r4 + unsigned char * it; // r19 + unsigned char * end; // r18 + class widget_chunk * wc; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xHud.h b/dwarf/SB/Core/x/xHud.h new file mode 100644 index 000000000..32e70b1fe --- /dev/null +++ b/dwarf/SB/Core/x/xHud.h @@ -0,0 +1,84 @@ +/* + Compile unit: C:\SB\Core\x\xHud.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002980F0 -> 0x002980F8 +*/ +// Range: 0x2980F0 -> 0x2980F8 +void destroy() { + // Blocks + /* anonymous block */ { + // Range: 0x2980F0 -> 0x2980F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298100 -> 0x00298108 +*/ +// Range: 0x298100 -> 0x298108 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x298100 -> 0x298108 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298110 -> 0x00298118 +*/ +// Range: 0x298110 -> 0x298118 +void setup(class widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298110 -> 0x298118 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298120 -> 0x00298128 +*/ +// Range: 0x298120 -> 0x298128 +void update(class widget * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298120 -> 0x298128 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298130 -> 0x00298138 +*/ +// Range: 0x298130 -> 0x298138 +void render() { + // Blocks + /* anonymous block */ { + // Range: 0x298130 -> 0x298138 + } +} + +/* + Compile unit: C:\SB\Core\x\xHud.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00298140 -> 0x002981EC +*/ +// Range: 0x298140 -> 0x2981EC +void dispatch(class widget * this /* r2 */, unsigned int event /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x298140 -> 0x2981EC + } +} + diff --git a/dwarf/SB/Core/x/xHudFontMeter.cpp b/dwarf/SB/Core/x/xHudFontMeter.cpp new file mode 100644 index 000000000..0f788f051 --- /dev/null +++ b/dwarf/SB/Core/x/xHudFontMeter.cpp @@ -0,0 +1,352 @@ +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x4FBB70 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon2 */ { + // total size: 0x28 +} __vt__Q24xhud17font_meter_widget; // size: 0x28, address: 0x508DA0 +struct /* @anon0 */ { + // total size: 0x28 +} __vt__Q24xhud6widget; // size: 0x28, address: 0x508D70 +struct /* @anon1 */ { + // total size: 0x28 +} __vt__Q24xhud12meter_widget; // size: 0x28, address: 0x508DD0 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x28 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class font_meter_asset : public meter_asset { + // total size: 0x74 +public: + class font_context font; // offset 0x4C, size 0x24 + unsigned char counter_mode; // offset 0x70, size 0x1 + unsigned char pad1; // offset 0x71, size 0x1 + unsigned char pad2; // offset 0x72, size 0x1 + unsigned char pad3; // offset 0x73, size 0x1 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class font_meter_widget : public meter_widget { + // total size: 0x14C +public: + class font_context font; // offset 0xC4, size 0x24 + class font_context start_font; // offset 0xE8, size 0x24 + signed int precision; // offset 0x10C, size 0x4 + class xVec2 offset; // offset 0x110, size 0x8 + char buffer[12]; // offset 0x118, size 0xC + signed int last_value; // offset 0x124, size 0x4 + class xfont xf; // offset 0x128, size 0x24 +}; +class color32u { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class font_context { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + signed int justify; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 + float space; // offset 0x10, size 0x4 + float drop_x; // offset 0x14, size 0x4 + float drop_y; // offset 0x18, size 0x4 + class color32u c; // offset 0x1C, size 0x4 + class color32u drop_c; // offset 0x20, size 0x4 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class meter_asset : public asset { + // total size: 0x4C +public: + float start_value; // offset 0x28, size 0x4 + float min_value; // offset 0x2C, size 0x4 + float max_value; // offset 0x30, size 0x4 + float increment_time; // offset 0x34, size 0x4 + float decrement_time; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 + } sound; // offset 0x3C, size 0x10 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x28 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x28 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class meter_widget : public widget { + // total size: 0xC4 +public: + class meter_asset & res; // offset 0x84, size 0x4 + float value; // offset 0x88, size 0x4 + float min_value; // offset 0x8C, size 0x4 + float max_value; // offset 0x90, size 0x4 + float end_value; // offset 0x94, size 0x4 + float value_vel; // offset 0x98, size 0x4 + float value_accel; // offset 0x9C, size 0x4 + float ping_delay; // offset 0xA0, size 0x4 + float pitch; // offset 0xA4, size 0x4 + class sound_queue pings; // offset 0xA8, size 0x1C +}; +class sound_queue { + // total size: 0x1C +public: + unsigned int _playing[5]; // offset 0x0, size 0x14 + signed int head; // offset 0x14, size 0x4 + signed int tail; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; + +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002996C0 -> 0x002997C8 +*/ +// Range: 0x2996C0 -> 0x2997C8 +void render(class font_meter_widget * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2996C0 -> 0x2997C8 + float x; // r23 + float y; // r22 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002997D0 -> 0x00299A68 +*/ +// Range: 0x2997D0 -> 0x299A68 +void update(class font_meter_widget * this /* r16 */, float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2997D0 -> 0x299A68 + float a; // r1 + signed int new_value; // r2 + class font_meter_asset & fma; // r2 + class basic_rect bounds; // r29+0x30 + char * format_text[3]; // @ 0x004DCD10 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299A70 -> 0x00299ADC +*/ +// Range: 0x299A70 -> 0x299ADC +unsigned char is(class font_meter_widget * this /* r17 */, unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299A70 -> 0x299ADC + unsigned int myid; // @ 0x0050FDD0 + signed char @3845; // @ 0x0050FDD4 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299AE0 -> 0x00299B18 +*/ +// Range: 0x299AE0 -> 0x299B18 +unsigned int type() { + // Blocks + /* anonymous block */ { + // Range: 0x299AE0 -> 0x299B18 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299B20 -> 0x00299B28 +*/ +// Range: 0x299B20 -> 0x299B28 +void destroy(class font_meter_widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299B20 -> 0x299B28 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudFontMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299B30 -> 0x00299C9C +*/ +// Range: 0x299B30 -> 0x299C9C +void load(class xBase & data /* r16 */, class xDynAsset & asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299B30 -> 0x299C9C + } +} + diff --git a/dwarf/SB/Core/x/xHudMeter.cpp b/dwarf/SB/Core/x/xHudMeter.cpp new file mode 100644 index 000000000..44b509ac0 --- /dev/null +++ b/dwarf/SB/Core/x/xHudMeter.cpp @@ -0,0 +1,295 @@ +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon0 */ { + // total size: 0x28 +} __vt__Q24xhud12meter_widget; // size: 0x28, address: 0x508DD0 +struct /* @anon1 */ { + // total size: 0x28 +} __vt__Q24xhud6widget; // size: 0x28, address: 0x508D70 +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class meter_asset : public asset { + // total size: 0x4C +public: + float start_value; // offset 0x28, size 0x4 + float min_value; // offset 0x2C, size 0x4 + float max_value; // offset 0x30, size 0x4 + float increment_time; // offset 0x34, size 0x4 + float decrement_time; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 + } sound; // offset 0x3C, size 0x10 +}; +class meter_widget : public widget { + // total size: 0xC4 +public: + class meter_asset & res; // offset 0x84, size 0x4 + float value; // offset 0x88, size 0x4 + float min_value; // offset 0x8C, size 0x4 + float max_value; // offset 0x90, size 0x4 + float end_value; // offset 0x94, size 0x4 + float value_vel; // offset 0x98, size 0x4 + float value_accel; // offset 0x9C, size 0x4 + float ping_delay; // offset 0xA0, size 0x4 + float pitch; // offset 0xA4, size 0x4 + class sound_queue pings; // offset 0xA8, size 0x1C +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x28 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +struct /* @anon1 */ { + // total size: 0x28 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; +class sound_queue { + // total size: 0x1C +public: + unsigned int _playing[5]; // offset 0x0, size 0x14 + signed int head; // offset 0x14, size 0x4 + signed int tail; // offset 0x18, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299CB0 -> 0x0029A050 +*/ +// Range: 0x299CB0 -> 0x29A050 +void updater(class meter_widget * this /* r17 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299CB0 -> 0x29A050 + float old_value; // r20 + float pitch; // r29+0x50 + float min_ping_time; // r3 + float pitch; // r29+0x50 + float min_ping_time; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A050 -> 0x0029A0BC +*/ +// Range: 0x29A050 -> 0x29A0BC +unsigned char is(class meter_widget * this /* r17 */, unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A050 -> 0x29A0BC + unsigned int myid; // @ 0x0050FDD8 + signed char @3750; // @ 0x0050FDDC + } +} + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A0C0 -> 0x0029A0F8 +*/ +// Range: 0x29A0C0 -> 0x29A0F8 +unsigned int type() { + // Blocks + /* anonymous block */ { + // Range: 0x29A0C0 -> 0x29A0F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A100 -> 0x0029A108 +*/ +// Range: 0x29A100 -> 0x29A108 +void destruct(class meter_widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A100 -> 0x29A108 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A110 -> 0x0029A188 +*/ +// Range: 0x29A110 -> 0x29A188 +void * __ct(class meter_widget * this /* r17 */, class meter_asset & a /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A110 -> 0x29A188 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A190 -> 0x0029A1A0 +*/ +// Range: 0x29A190 -> 0x29A1A0 +void set_value_immediate(class meter_widget * this /* r2 */, float v /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A190 -> 0x29A1A0 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A1A0 -> 0x0029A3CC +*/ +// Range: 0x29A1A0 -> 0x29A3CC +void set_value(class meter_widget * this /* r16 */, float v /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A1A0 -> 0x29A3CC + float dvalue; // r20 + float sign; // r21 + } +} + diff --git a/dwarf/SB/Core/x/xHudMeter.h b/dwarf/SB/Core/x/xHudMeter.h new file mode 100644 index 000000000..38757320e --- /dev/null +++ b/dwarf/SB/Core/x/xHudMeter.h @@ -0,0 +1,14 @@ +/* + Compile unit: C:\SB\Core\x\xHudMeter.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00299CA0 -> 0x00299CA8 +*/ +// Range: 0x299CA0 -> 0x299CA8 +void update(class meter_widget * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x299CA0 -> 0x299CA8 + } +} + diff --git a/dwarf/SB/Core/x/xHudModel.cpp b/dwarf/SB/Core/x/xHudModel.cpp new file mode 100644 index 000000000..e4074f3b5 --- /dev/null +++ b/dwarf/SB/Core/x/xHudModel.cpp @@ -0,0 +1,917 @@ +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon0 */ { + // total size: 0x28 +} __vt__Q24xhud12model_widget; // size: 0x28, address: 0x508E00 +struct /* @anon1 */ { + // total size: 0x28 +} __vt__Q24xhud6widget; // size: 0x28, address: 0x508D70 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class model_asset : public asset { + // total size: 0x2C +public: + unsigned int model; // offset 0x28, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class model_widget : public widget { + // total size: 0x8C +public: + unsigned int mid; // offset 0x84, size 0x4 + class xModelInstance * model; // offset 0x88, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x28 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xSurface { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x28 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A3D0 -> 0x0029A404 +*/ +// Range: 0x29A3D0 -> 0x29A404 +void render(class model_widget * this /* r3 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A3D0 -> 0x29A404 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A410 -> 0x0029A4A4 +*/ +// Range: 0x29A410 -> 0x29A4A4 +void update(class model_widget * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A410 -> 0x29A4A4 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A4B0 -> 0x0029A51C +*/ +// Range: 0x29A4B0 -> 0x29A51C +unsigned char is(class model_widget * this /* r17 */, unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A4B0 -> 0x29A51C + unsigned int myid; // @ 0x0050FDE0 + signed char @3734; // @ 0x0050FDE4 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A520 -> 0x0029A558 +*/ +// Range: 0x29A520 -> 0x29A558 +unsigned int type() { + // Blocks + /* anonymous block */ { + // Range: 0x29A520 -> 0x29A558 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A560 -> 0x0029A568 +*/ +// Range: 0x29A560 -> 0x29A568 +void destroy(class model_widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A560 -> 0x29A568 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A570 -> 0x0029A5DC +*/ +// Range: 0x29A570 -> 0x29A5DC +void load(class xBase & data /* r16 */, class xDynAsset & asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A570 -> 0x29A5DC + } +} + +/* + Compile unit: C:\SB\Core\x\xHudModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A5E0 -> 0x0029A660 +*/ +// Range: 0x29A5E0 -> 0x29A660 +class xAnimTable * XHUD_AnimTable_Idle() { + // Blocks + /* anonymous block */ { + // Range: 0x29A5E0 -> 0x29A660 + class xAnimTable * table; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xHudText.cpp b/dwarf/SB/Core/x/xHudText.cpp new file mode 100644 index 000000000..48b95d351 --- /dev/null +++ b/dwarf/SB/Core/x/xHudText.cpp @@ -0,0 +1,527 @@ +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x508A80 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon0 */ { + // total size: 0x28 +} __vt__Q24xhud11text_widget; // size: 0x28, address: 0x50E400 +class callback text_cb; // size: 0xC, address: 0x4F87A8 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +struct /* @anon1 */ { + // total size: 0x28 +} __vt__Q24xhud6widget; // size: 0x28, address: 0x508D70 +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class xTextAsset { + // total size: 0x4 +public: + unsigned int len; // offset 0x0, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, +}; +class ztextbox : public xBase { + // total size: 0xD0 +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class xtextbox tb; // offset 0x18, size 0x68 + char * segments[16]; // offset 0x80, size 0x40 + unsigned int segments_size; // offset 0xC0, size 0x4 + class ztextbox * next; // offset 0xC4, size 0x4 + class ztextbox * prev; // offset 0xC8, size 0x4 + class RwRaster * bgtex; // offset 0xCC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class text_widget : public widget { + // total size: 0x16C +public: + char text[128]; // offset 0x84, size 0x80 + class xtextbox tb; // offset 0x104, size 0x68 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 +}; +class asset_type : public xDynAsset { + // total size: 0x64 +public: + unsigned int text; // offset 0x10, size 0x4 + class basic_rect bounds; // offset 0x14, size 0x10 + unsigned int font; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } size; // offset 0x28, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + } space; // offset 0x30, size 0x8 + class color_type color; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 + } inset; // offset 0x3C, size 0x10 + enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, + } xjustify; // offset 0x4C, size 0x4 + enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, + } expand; // offset 0x50, size 0x4 + float max_height; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 + } backdrop; // offset 0x58, size 0xC +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class color_type { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class text_asset : public asset { + // total size: 0x30 +public: + unsigned int text_box; // offset 0x28, size 0x4 + unsigned int text; // offset 0x2C, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class /* @class */ { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x28 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +struct /* @anon1 */ { + // total size: 0x28 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5490 -> 0x003D565C +*/ +// Range: 0x3D5490 -> 0x3D565C +void render(class text_widget * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5490 -> 0x3D565C + float x; // r21 + float y; // r20 + unsigned char r; // r19 + unsigned char g; // r18 + unsigned char b; // r17 + unsigned char a; // r16 + float floatA; // r1 + unsigned char newA; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5660 -> 0x003D5840 +*/ +// Range: 0x3D5660 -> 0x3D5840 +void update(class text_widget * this /* r16 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5660 -> 0x3D5840 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5840 -> 0x003D58AC +*/ +// Range: 0x3D5840 -> 0x3D58AC +unsigned char is(class text_widget * this /* r17 */, unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5840 -> 0x3D58AC + unsigned int myid; // @ 0x00510324 + signed char @3835; // @ 0x00510328 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D58B0 -> 0x003D58E8 +*/ +// Range: 0x3D58B0 -> 0x3D58E8 +unsigned int type() { + // Blocks + /* anonymous block */ { + // Range: 0x3D58B0 -> 0x3D58E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D58F0 -> 0x003D58F8 +*/ +// Range: 0x3D58F0 -> 0x3D58F8 +void destroy(class text_widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D58F0 -> 0x3D58F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5900 -> 0x003D5C70 +*/ +// Range: 0x3D5900 -> 0x3D5C70 +void setup(class text_widget * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5900 -> 0x3D5C70 + class text_asset & ta; // r17 + class ztextbox * ztb; // r16 + class xTextAsset * t; // r2 + char * s; // r17 + unsigned int len; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudText.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5C70 -> 0x003D5CCC +*/ +// Range: 0x3D5C70 -> 0x3D5CCC +void load(class xBase & data /* r16 */, class xDynAsset & asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5C70 -> 0x3D5CCC + } +} + diff --git a/dwarf/SB/Core/x/xHudUnitMeter.cpp b/dwarf/SB/Core/x/xHudUnitMeter.cpp new file mode 100644 index 000000000..52e5e5b1b --- /dev/null +++ b/dwarf/SB/Core/x/xHudUnitMeter.cpp @@ -0,0 +1,1005 @@ +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static float tweak_anim_time_delta; // size: 0x4, address: 0x50EF30 +struct /* @anon2 */ { + // total size: 0x28 +} __vt__Q24xhud17unit_meter_widget; // size: 0x28, address: 0x508E30 +struct /* @anon0 */ { + // total size: 0x28 +} __vt__Q24xhud6widget; // size: 0x28, address: 0x508D70 +struct /* @anon1 */ { + // total size: 0x28 +} __vt__Q24xhud12meter_widget; // size: 0x28, address: 0x508DD0 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class unit_meter_widget : public meter_widget { + // total size: 0x18C +public: + class unit_meter_asset res; // offset 0xC4, size 0x94 + class xModelInstance * model[6][2]; // offset 0x158, size 0x30 + float anim_time; // offset 0x188, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x28 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class meter_asset : public asset { + // total size: 0x4C +public: + float start_value; // offset 0x28, size 0x4 + float min_value; // offset 0x2C, size 0x4 + float max_value; // offset 0x30, size 0x4 + float increment_time; // offset 0x34, size 0x4 + float decrement_time; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 + } sound; // offset 0x3C, size 0x10 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x28 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class meter_widget : public widget { + // total size: 0xC4 +public: + class meter_asset & res; // offset 0x84, size 0x4 + float value; // offset 0x88, size 0x4 + float min_value; // offset 0x8C, size 0x4 + float max_value; // offset 0x90, size 0x4 + float end_value; // offset 0x94, size 0x4 + float value_vel; // offset 0x98, size 0x4 + float value_accel; // offset 0x9C, size 0x4 + float ping_delay; // offset 0xA0, size 0x4 + float pitch; // offset 0xA4, size 0x4 + class sound_queue pings; // offset 0xA8, size 0x1C +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class model_info { + // total size: 0x1C +public: + unsigned int id; // offset 0x0, size 0x4 + class xVec3 loc; // offset 0x4, size 0xC + class xVec3 size; // offset 0x10, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class unit_meter_asset : public meter_asset { + // total size: 0x94 +public: + class model_info model[2]; // offset 0x4C, size 0x38 + class xVec3 offset; // offset 0x84, size 0xC + unsigned int fill_forward; // offset 0x90, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class sound_queue { + // total size: 0x1C +public: + unsigned int _playing[5]; // offset 0x0, size 0x14 + signed int head; // offset 0x14, size 0x4 + signed int tail; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +struct /* @anon2 */ { + // total size: 0x28 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A660 -> 0x0029A858 +*/ +// Range: 0x29A660 -> 0x29A858 +void render(class unit_meter_widget * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A660 -> 0x29A858 + class render_context unitrc; // r29+0xA0 + signed int units; // r20 + signed int i; // r19 + signed int which; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029A860 -> 0x0029AA34 +*/ +// Range: 0x29A860 -> 0x29AA34 +void update(class unit_meter_widget * this /* r20 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29A860 -> 0x29AA34 + signed int units; // r19 + signed int i; // r18 + signed int which; // r5 + class xModelInstance * m; // r17 + float duration; // r29+0x70 + float time; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AA40 -> 0x0029AA48 +*/ +// Range: 0x29AA40 -> 0x29AA48 +void setup(class unit_meter_widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AA40 -> 0x29AA48 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AA50 -> 0x0029AABC +*/ +// Range: 0x29AA50 -> 0x29AABC +unsigned char is(class unit_meter_widget * this /* r17 */, unsigned int id /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AA50 -> 0x29AABC + unsigned int myid; // @ 0x0050FDEC + signed char @3861; // @ 0x0050FDF0 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AAC0 -> 0x0029AAF8 +*/ +// Range: 0x29AAC0 -> 0x29AAF8 +unsigned int type() { + // Blocks + /* anonymous block */ { + // Range: 0x29AAC0 -> 0x29AAF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AB00 -> 0x0029AB08 +*/ +// Range: 0x29AB00 -> 0x29AB08 +void destroy(class unit_meter_widget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AB00 -> 0x29AB08 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AB10 -> 0x0029ABF8 +*/ +// Range: 0x29AB10 -> 0x29ABF8 +void * __ct(class unit_meter_widget * this /* r21 */, class unit_meter_asset & a /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AB10 -> 0x29ABF8 + signed int i; // r20 + signed int j; // r19 + unsigned char registered; // @ 0x0050FDE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xHudUnitMeter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AC00 -> 0x0029AC4C +*/ +// Range: 0x29AC00 -> 0x29AC4C +void load(class xBase & data /* r17 */, class xDynAsset & asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AC00 -> 0x29AC4C + } +} + diff --git a/dwarf/SB/Core/x/xIni.cpp b/dwarf/SB/Core/x/xIni.cpp new file mode 100644 index 000000000..5b0c739cd --- /dev/null +++ b/dwarf/SB/Core/x/xIni.cpp @@ -0,0 +1,111 @@ +/* + Compile unit: C:\SB\Core\x\xIni.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xIniSection { + // total size: 0xC +public: + char * sec; // offset 0x0, size 0x4 + signed int first; // offset 0x4, size 0x4 + signed int count; // offset 0x8, size 0x4 +}; +class xIniFile { + // total size: 0x214 +public: + signed int NumValues; // offset 0x0, size 0x4 + signed int NumSections; // offset 0x4, size 0x4 + class xIniValue * Values; // offset 0x8, size 0x4 + class xIniSection * Sections; // offset 0xC, size 0x4 + void * mem; // offset 0x10, size 0x4 + char name[256]; // offset 0x14, size 0x100 + char pathname[256]; // offset 0x114, size 0x100 +}; +class xIniValue { + // total size: 0x8 +public: + char * tok; // offset 0x0, size 0x4 + char * val; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xIni.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC930 -> 0x001ECA00 +*/ +// Range: 0x1EC930 -> 0x1ECA00 +char * xIniGetString(class xIniFile * ini /* r20 */, char * tok /* r19 */, char * def /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC930 -> 0x1ECA00 + } +} + +/* + Compile unit: C:\SB\Core\x\xIni.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ECA00 -> 0x001ECAE0 +*/ +// Range: 0x1ECA00 -> 0x1ECAE0 +float xIniGetFloat(class xIniFile * ini /* r19 */, char * tok /* r18 */, float def /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ECA00 -> 0x1ECAE0 + } +} + +/* + Compile unit: C:\SB\Core\x\xIni.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ECAE0 -> 0x001ECBB8 +*/ +// Range: 0x1ECAE0 -> 0x1ECBB8 +signed int xIniGetInt(class xIniFile * ini /* r20 */, char * tok /* r19 */, signed int def /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ECAE0 -> 0x1ECBB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xIni.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ECBC0 -> 0x001ECC08 +*/ +// Range: 0x1ECBC0 -> 0x1ECC08 +void xIniDestroy(class xIniFile * ini /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ECBC0 -> 0x1ECC08 + } +} + +/* + Compile unit: C:\SB\Core\x\xIni.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ECC10 -> 0x001ED184 +*/ +// Range: 0x1ECC10 -> 0x1ED184 +class xIniFile * xIniParse(char * buf /* r18 */, signed int len /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ECC10 -> 0x1ED184 + signed int i; // r7 + signed int ccr; // r16 + signed int clf; // r6 + signed int copen; // r17 + signed int lastCRLF; // r20 + char * c; // r2 + char * lastLine; // r17 + char * line; // r18 + char * ltoken; // r29+0x6C + class xIniFile * ini; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xJSP.cpp b/dwarf/SB/Core/x/xJSP.cpp new file mode 100644 index 000000000..7cddc13e3 --- /dev/null +++ b/dwarf/SB/Core/x/xJSP.cpp @@ -0,0 +1,2120 @@ +/* + Compile unit: C:\SB\Core\x\xJSP.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RpAtomic * ListAtomicCB(class RpAtomic *, void *); // size: 0x0, address: 0x301C20 +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class __rwMark { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 + unsigned int libraryID; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwMemory { + // total size: 0x8 +public: + unsigned char * start; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; + +/* + Compile unit: C:\SB\Core\x\xJSP.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301920 -> 0x003019B4 +*/ +// Range: 0x301920 -> 0x3019B4 +void xJSP_Destroy(class xJSPHeader * jsp /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301920 -> 0x3019B4 + } +} + +/* + Compile unit: C:\SB\Core\x\xJSP.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003019C0 -> 0x00301C18 +*/ +// Range: 0x3019C0 -> 0x301C18 +void xJSP_MultiStreamRead(void * data /* r18 */, unsigned int size /* r17 */, class xJSPHeader * * jsp /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3019C0 -> 0x301C18 + unsigned int i; // r8 + class RpClump * clump; // r17 + class xClumpCollBSPTree * colltree; // r17 + class xJSPHeader * hdr; // r16 + class __rwMark mark; // r29+0x70 + class __rwMark * mp; // r2 + class xJSPHeader * tmphdr; // r18 + class RwMemory rwmem; // r29+0x68 + class RwStream * stream; // r17 + signed int i; // r20 + signed int atomCount; // r18 + class RpAtomic * * atomList; // r19 + class RpAtomic * * atomCurr; // r29+0x7C + } +} + +/* + Compile unit: C:\SB\Core\x\xJSP.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301C20 -> 0x00301C3C +*/ +// Range: 0x301C20 -> 0x301C3C +static class RpAtomic * ListAtomicCB(class RpAtomic * atomic /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301C20 -> 0x301C3C + class RpAtomic * * * aList; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xJaw.cpp b/dwarf/SB/Core/x/xJaw.cpp new file mode 100644 index 000000000..a8291d960 --- /dev/null +++ b/dwarf/SB/Core/x/xJaw.cpp @@ -0,0 +1,54 @@ +/* + Compile unit: C:\SB\Core\x\xJaw.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class xJawDataTable { + // total size: 0xC +public: + unsigned int soundHashID; // offset 0x0, size 0x4 + unsigned int dataStart; // offset 0x4, size 0x4 + unsigned int dataLength; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xJaw.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D2C0 -> 0x0035D3F4 +*/ +// Range: 0x35D2C0 -> 0x35D3F4 +float xJaw_EvalData(void * data /* r18 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D2C0 -> 0x35D3F4 + float lerp; // r2 + signed int idx; // r16 + signed int numdata; // r17 + unsigned char * jawdata; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xJaw.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D400 -> 0x0035D4E8 +*/ +// Range: 0x35D400 -> 0x35D4E8 +void * xJaw_FindData(unsigned int soundID /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D400 -> 0x35D4E8 + signed int i; // r17 + signed int numJawTables; // r16 + unsigned int j; // r7 + void * data; // r2 + unsigned int jawcount; // r6 + class xJawDataTable * tbl; // r5 + void * rawdata; // r4 + } +} + diff --git a/dwarf/SB/Core/x/xLaserBolt.cpp b/dwarf/SB/Core/x/xLaserBolt.cpp new file mode 100644 index 000000000..f1c2050b8 --- /dev/null +++ b/dwarf/SB/Core/x/xLaserBolt.cpp @@ -0,0 +1,2907 @@ +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class tagiRenderInput gRenderBuffer; // size: 0x80, address: 0x538BD0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class bolt * _buffer; // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class unit_data * _buffer; // offset 0x10, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xLaserBoltEmitter { + // total size: 0x94 +public: + class config cfg; // offset 0x0, size 0x3C + class static_queue bolts; // offset 0x3C, size 0x14 + float ialpha; // offset 0x50, size 0x4 + class RwRaster * bolt_raster; // offset 0x54, size 0x4 + signed int start_collide; // offset 0x58, size 0x4 + class effect_data * fx[7]; // offset 0x5C, size 0x1C + unsigned int fxsize[7]; // offset 0x78, size 0x1C +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class bolt { + // total size: 0x4C +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + class xVec3 loc; // offset 0x18, size 0xC + class xVec3 hit_norm; // offset 0x24, size 0xC + float dist; // offset 0x30, size 0x4 + float hit_dist; // offset 0x34, size 0x4 + float prev_dist; // offset 0x38, size 0x4 + float prev_check_dist; // offset 0x3C, size 0x4 + class xEnt * hit_ent; // offset 0x40, size 0x4 + float emitted; // offset 0x44, size 0x4 + void * context; // offset 0x48, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class effect_data { + // total size: 0x18 +public: + enum fx_type_enum type; // offset 0x0, size 0x4 + enum fx_orient_enum orient; // offset 0x4, size 0x4 + float rate; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + union { // inferred + class xParEmitter * par; // offset 0x0, size 0x4 + class xDecalEmitter * decal; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 + } callback; // offset 0x0, size 0x8 + }; + } data; // offset 0xC, size 0x8 + float irate; // offset 0x14, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class iterator { + // total size: 0x8 +public: + unsigned int _it; // offset 0x0, size 0x4 + class static_queue * _owner; // offset 0x4, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 +}; +class tagiRenderInput { + // total size: 0x80 +public: + unsigned short * m_index; // offset 0x0, size 0x4 + class RxObjSpace3DVertex * m_vertex; // offset 0x4, size 0x4 + float * m_vertexTZ; // offset 0x8, size 0x4 + unsigned int m_mode; // offset 0xC, size 0x4 + signed int m_vertexType; // offset 0x10, size 0x4 + signed int m_vertexTypeSize; // offset 0x14, size 0x4 + signed int m_indexCount; // offset 0x18, size 0x4 + signed int m_vertexCount; // offset 0x1C, size 0x4 + class xMat4x3 m_camViewMatrix; // offset 0x20, size 0x40 + class xVec4 m_camViewR; // offset 0x60, size 0x10 + class xVec4 m_camViewU; // offset 0x70, size 0x10 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum fx_when_enum { + FX_WHEN_LAUNCH = 0, + FX_WHEN_IMPACT = 1, + FX_WHEN_BIRTH = 2, + FX_WHEN_DEATH = 3, + FX_WHEN_HEAD = 4, + FX_WHEN_TAIL = 5, + FX_WHEN_KILL = 6, + MAX_FX_WHEN = 7, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum fx_type_enum { + FX_TYPE_PARTICLE = 0, + FX_TYPE_DECAL = 1, + FX_TYPE_DECAL_DIST = 2, + FX_TYPE_CALLBACK = 3, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class unit_data { + // total size: 0x50 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char curve_index; // offset 0x1, size 0x1 + unsigned char u; // offset 0x2, size 0x1 + unsigned char v; // offset 0x3, size 0x1 + float frac; // offset 0x4, size 0x4 + float age; // offset 0x8, size 0x4 + float cull_size; // offset 0xC, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 +}; +class xParGroup { + // total size: 0x0 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xPlatformAsset { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum fx_orient_enum { + FX_ORIENT_DEFAULT = 0, + FX_ORIENT_PATH = 1, + FX_ORIENT_IPATH = 2, + FX_ORIENT_HIT_NORM = 3, + FX_ORIENT_HIT_REFLECT = 4, + MAX_FX_ORIENT = 5, + FORCE_INT_FX_ORIENT = -1, +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xDecalEmitter { + // total size: 0x68 +public: + class config cfg; // offset 0x0, size 0x28 + class /* @class */ { + // total size: 0x1C + public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 + } texture; // offset 0x28, size 0x1C + class static_queue units; // offset 0x44, size 0x14 + class curve_node * curve; // offset 0x58, size 0x4 + unsigned int curve_size; // offset 0x5C, size 0x4 + unsigned int curve_index; // offset 0x60, size 0x4 + float ilife; // offset 0x64, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xParSys { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class config { + // total size: 0x3C +public: + float radius; // offset 0x0, size 0x4 + float length; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float fade_dist; // offset 0xC, size 0x4 + float kill_dist; // offset 0x10, size 0x4 + float safe_dist; // offset 0x14, size 0x4 + float hit_radius; // offset 0x18, size 0x4 + float rand_ang; // offset 0x1C, size 0x4 + float scar_life; // offset 0x20, size 0x4 + class xVec2 bolt_uv[2]; // offset 0x24, size 0x10 + signed int hit_interval; // offset 0x34, size 0x4 + float damage; // offset 0x38, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum texture_mode { + TM_DEFAULT = 0, + TM_RANDOM = 1, + TM_CYCLE = 2, + MAX_TM = 3, + FORCE_INT_TM = -1, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + union { // inferred + class xParEmitter * par; // offset 0x0, size 0x4 + class xDecalEmitter * decal; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 + } callback; // offset 0x0, size 0x8 + }; +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class config { + // total size: 0x28 +public: + unsigned int flags; // offset 0x0, size 0x4 + float life_time; // offset 0x4, size 0x4 + unsigned int blend_src; // offset 0x8, size 0x4 + unsigned int blend_dst; // offset 0xC, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 + } texture; // offset 0x10, size 0x18 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B08D0 -> 0x003B0E34 +*/ +// Range: 0x3B08D0 -> 0x3B0E34 +void emit_decal_dist(class effect_data & effect /* r22 */, class bolt & b /* r21 */, float from_dist /* r29+0x160 */, float to_dist /* r29+0x160 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B08D0 -> 0x3B0E34 + float start_dist; // r20 + signed int total; // r20 + class xMat4x3 mat; // r29+0x90 + class xVec3 dloc; // r29+0x150 + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B0E40 -> 0x003B1280 +*/ +// Range: 0x3B0E40 -> 0x3B1280 +void emit_decal(class effect_data & effect /* r17 */, class bolt & b /* r16 */, float to_dist /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B0E40 -> 0x3B1280 + class xMat4x3 mat; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B1280 -> 0x003B1728 +*/ +// Range: 0x3B1280 -> 0x3B1728 +void emit_particle(class effect_data & effect /* r2 */, class bolt & b /* r2 */, float from_dist /* r29+0x160 */, float to_dist /* r29+0x160 */, float dt /* r29+0x160 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B1280 -> 0x3B1728 + class xParEmitter & pe; // r2 + class xParEmitterAsset & pea; // r16 + float velmag; // r20 + class xVec3 oldloc; // r29+0x150 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B1730 -> 0x003B1B94 +*/ +// Range: 0x3B1730 -> 0x3B1B94 +void update_fx(class xLaserBoltEmitter * this /* r17 */, class bolt & b /* r16 */, float prev_dist /* r23 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B1730 -> 0x3B1B94 + float tail_dist; // r21 + class effect_data * itfx; // r19 + class effect_data * endfx; // r18 + class effect_data * itfx; // r19 + class effect_data * endfx; // r18 + float from_dist; // r20 + float to_dist; // r29+0x60 + class effect_data * itfx; // r19 + class effect_data * endfx; // r18 + class effect_data * itfx; // r19 + class effect_data * endfx; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B1BA0 -> 0x003B2148 +*/ +// Range: 0x3B1BA0 -> 0x3B2148 +class RxObjSpace3DVertex * render(class xLaserBoltEmitter * this /* r17 */, class bolt & b /* r2 */, class RxObjSpace3DVertex * vert /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B1BA0 -> 0x3B2148 + float dist0; // r5 + class xVec3 loc0; // r29+0x170 + class xVec3 loc1; // r29+0x160 + class xMat4x3 & cam_mat; // r2 + class xVec3 dir; // r29+0x150 + class xVec3 right; // r29+0x140 + class xVec3 half_right; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B2200 -> 0x003B2388 +*/ +// Range: 0x3B2200 -> 0x3B2388 +void collide_update(class xLaserBoltEmitter * this /* r2 */, class bolt & b /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B2200 -> 0x3B2388 + class xScene & scene; // r17 + class xRay3 ray; // r29+0xE0 + class xCollis player_coll; // r29+0x90 + class xCollis scene_coll; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B2390 -> 0x003B2410 +*/ +// Range: 0x3B2390 -> 0x3B2410 +void attach_effects(class xLaserBoltEmitter * this /* r2 */, enum fx_when_enum when /* r2 */, class effect_data * fx /* r2 */, unsigned int fxsize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B2390 -> 0x3B2410 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B2410 -> 0x003B25F0 +*/ +// Range: 0x3B2410 -> 0x3B25F0 +void render(class xLaserBoltEmitter * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B2410 -> 0x3B25F0 + class RxObjSpace3DVertex * verts; // r19 + class RxObjSpace3DVertex * v; // r18 + class iterator it; // r29+0x88 + signed int used; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B25F0 -> 0x003B2C10 +*/ +// Range: 0x3B25F0 -> 0x3B2C10 +void update(class xLaserBoltEmitter * this /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B25F0 -> 0x3B2C10 + signed int ci; // r20 + class iterator it; // r29+0x128 + class bolt & b; // r19 + unsigned char collided; // r17 + float prev_dist; // r29+0x130 + class effect_data * itfx; // r17 + class effect_data * endfx; // r16 + class effect_data * itfx; // r18 + class effect_data * endfx; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B2C10 -> 0x003B2FA8 +*/ +// Range: 0x3B2C10 -> 0x3B2FA8 +void emit(class xLaserBoltEmitter * this /* r19 */, class xVec3 & loc /* r2 */, class xVec3 & dir /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B2C10 -> 0x3B2FA8 + class bolt & b; // r18 + class effect_data * itfx; // r17 + class effect_data * endfx; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B2FB0 -> 0x003B2FF0 +*/ +// Range: 0x3B2FB0 -> 0x3B2FF0 +void refresh_config(class xLaserBoltEmitter * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B2FB0 -> 0x3B2FF0 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B2FF0 -> 0x003B3294 +*/ +// Range: 0x3B2FF0 -> 0x3B3294 +void reset(class xLaserBoltEmitter * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B2FF0 -> 0x3B3294 + class iterator it; // r29+0x98 + class bolt & b; // r20 + class effect_data * itfx; // r19 + class effect_data * endfx; // r18 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B32A0 -> 0x003B32F0 +*/ +// Range: 0x3B32A0 -> 0x3B32F0 +void set_texture(class xLaserBoltEmitter * this /* r16 */, char * name /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B32A0 -> 0x3B32F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xLaserBolt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B32F0 -> 0x003B33A4 +*/ +// Range: 0x3B32F0 -> 0x3B33A4 +void init(class xLaserBoltEmitter * this /* r16 */, unsigned int max_bolts /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B32F0 -> 0x3B33A4 + } +} + diff --git a/dwarf/SB/Core/x/xLaserBolt.h b/dwarf/SB/Core/x/xLaserBolt.h new file mode 100644 index 000000000..25be16805 --- /dev/null +++ b/dwarf/SB/Core/x/xLaserBolt.h @@ -0,0 +1,15 @@ +/* + Compile unit: C:\SB\Core\x\xLaserBolt.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B21C0 -> 0x003B21F8 +*/ +// Range: 0x3B21C0 -> 0x3B21F8 +void set_vert(class RxObjSpace3DVertex & vert /* r2 */, class xVec3 & loc /* r2 */, float u /* r29 */, float v /* r29 */, unsigned char alpha /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B21C0 -> 0x3B21F8 + class RwRGBA * _col; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xLightKit.cpp b/dwarf/SB/Core/x/xLightKit.cpp new file mode 100644 index 000000000..436b6284c --- /dev/null +++ b/dwarf/SB/Core/x/xLightKit.cpp @@ -0,0 +1,535 @@ +/* + Compile unit: C:\SB\Core\x\xLightKit.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int iModelHack_DisablePrelight; // size: 0x4, address: 0x50FFD0 +class xLightKit * gLastLightKit; // size: 0x4, address: 0x50FFD4 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xLightKit.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305B10 -> 0x00305BC4 +*/ +// Range: 0x305B10 -> 0x305BC4 +void xLightKit_Destroy(class xLightKit * lkit /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305B10 -> 0x305BC4 + unsigned int i; // r17 + class xLightKitLight * currLight; // r16 + class RwFrame * tframe; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xLightKit.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305BD0 -> 0x00305BD8 +*/ +// Range: 0x305BD0 -> 0x305BD8 +class xLightKit * xLightKit_GetCurrent() { + // Blocks + /* anonymous block */ { + // Range: 0x305BD0 -> 0x305BD8 + } +} + +/* + Compile unit: C:\SB\Core\x\xLightKit.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305BE0 -> 0x00305CDC +*/ +// Range: 0x305BE0 -> 0x305CDC +void xLightKit_Enable(class xLightKit * lkit /* r19 */, class RpWorld * world /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305BE0 -> 0x305CDC + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xLightKit.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00305CE0 -> 0x00306048 +*/ +// Range: 0x305CE0 -> 0x306048 +class xLightKit * xLightKit_Prepare(void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x305CE0 -> 0x306048 + class xLightKit * lkit; // r21 + class xLightKitLight * currlight; // r20 + unsigned int i; // r19 + float s; // r1 + class RwFrame * frame; // r18 + class RwMatrixTag tmpmat; // r29+0xA0 + } +} + diff --git a/dwarf/SB/Core/x/xListItem.cpp b/dwarf/SB/Core/x/xListItem.cpp new file mode 100644 index 000000000..00e488867 --- /dev/null +++ b/dwarf/SB/Core/x/xListItem.cpp @@ -0,0 +1,74 @@ +/* + Compile unit: C:\SB\Core\x\xListItem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5CA0 -> 0x002C5CDC +*/ +// Range: 0x2C5CA0 -> 0x2C5CDC +void Remove(class xListItem * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5CA0 -> 0x2C5CDC + } +} + +/* + Compile unit: C:\SB\Core\x\xListItem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5E50 -> 0x002D5E78 +*/ +// Range: 0x2D5E50 -> 0x2D5E78 +void Insert(class xListItem * this /* r2 */, class NPCConfig * list /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5E50 -> 0x2D5E78 + class NPCConfig * node; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xListItem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1BE0 -> 0x002F1C08 +*/ +// Range: 0x2F1BE0 -> 0x2F1C08 +void Insert(class xListItem * this /* r2 */, class xGoal * list /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1BE0 -> 0x2F1C08 + class xGoal * node; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xListItem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1C10 -> 0x002F1C84 +*/ +// Range: 0x2F1C10 -> 0x2F1C84 +class xGoal * RemHead(class xGoal * * listhead /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1C10 -> 0x2F1C84 + class xGoal * oldhead; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xListItem.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F1C90 -> 0x002F1CD0 +*/ +// Range: 0x2F1C90 -> 0x2F1CD0 +class xGoal * Head(class xListItem * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F1C90 -> 0x2F1CD0 + class xGoal * node; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xMath.cpp b/dwarf/SB/Core/x/xMath.cpp new file mode 100644 index 000000000..e54bc7114 --- /dev/null +++ b/dwarf/SB/Core/x/xMath.cpp @@ -0,0 +1,314 @@ +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int xmath_inited; // size: 0x4, address: 0x50FA38 +static signed int xmath_exited; // size: 0x4, address: 0x50FA3C +static unsigned int rndseed; // size: 0x4, address: 0x50FA40 +float cosSinPolynomial[]; // size: 0x0, address: 0x416DE0 +class xFuncPiece { + // total size: 0x20 +public: + float coef[5]; // offset 0x0, size 0x14 + float end; // offset 0x14, size 0x4 + signed int order; // offset 0x18, size 0x4 + class xFuncPiece * next; // offset 0x1C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED190 -> 0x001ED2AC +*/ +// Range: 0x1ED190 -> 0x1ED2AC +void xFuncPiece_ShiftPiece(class xFuncPiece * shift /* r2 */, class xFuncPiece * func /* r2 */, float newZero /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED190 -> 0x1ED2AC + signed int i; // r8 + signed int j; // r10 + class xFuncPiece temp; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED2B0 -> 0x001ED2EC +*/ +// Range: 0x1ED2B0 -> 0x1ED2EC +void xFuncPiece_EndPoints(class xFuncPiece * func /* r2 */, float pi /* r29 */, float pf /* r29 */, float fi /* r29 */, float ff /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED2B0 -> 0x1ED2EC + float xfinv; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED2F0 -> 0x001ED398 +*/ +// Range: 0x1ED2F0 -> 0x1ED398 +float xFuncPiece_Eval(class xFuncPiece * func /* r2 */, float param /* r29 */, class xFuncPiece * * iterator /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED2F0 -> 0x1ED398 + float result; // r29 + signed int i; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED3A0 -> 0x001ED4F0 +*/ +// Range: 0x1ED3A0 -> 0x1ED4F0 +void xAccelStop(float & x /* r2 */, float & v /* r2 */, float a /* r29+0x4 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED3A0 -> 0x1ED4F0 + unsigned int aa; // r29+0xC + float oldv; // r29+0x8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED4F0 -> 0x001ED628 +*/ +// Range: 0x1ED4F0 -> 0x1ED628 +void xAccelMove(float & x /* r2 */, float & v /* r2 */, float a /* r29 */, float dt /* r29+0x10 */, float maxv /* r29+0x4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED4F0 -> 0x1ED628 + unsigned int bn; // r10 + unsigned int bp; // r7 + unsigned int aa; // r29+0xC + unsigned int bn; // r8 + unsigned int bp; // r6 + unsigned int aa; // r29+0x8 + float diff; // r5 + float dv; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED630 -> 0x001ED6A8 +*/ +// Range: 0x1ED630 -> 0x1ED6A8 +float xAccelMoveTime(float dx /* r29 */, float a /* r29 */, float maxv /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED630 -> 0x1ED6A8 + float time; // r1 + float atime; // r1 + float adist; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED6B0 -> 0x001ED998 +*/ +// Range: 0x1ED6B0 -> 0x1ED998 +void xAccelMove(float & x /* r17 */, float & v /* r16 */, float a /* r24 */, float dt /* r23 */, float endx /* r29+0x60 */, float maxv /* r29+0x60 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED6B0 -> 0x1ED998 + float offset; // r29+0x5C + float t1; // r22 + float t2; // r21 + float oldv; // r20 + float dv; // r29+0x58 + float newv; // r29+0x54 + float adx; // r1 + float diff; // r1 + float dx; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001ED9A0 -> 0x001EDA24 +*/ +// Range: 0x1ED9A0 -> 0x1EDA24 +float xDangleClamp(float a /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1ED9A0 -> 0x1EDA24 + float b; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EDA30 -> 0x001EDA80 +*/ +// Range: 0x1EDA30 -> 0x1EDA80 +float xAngleClampFast(float a /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EDA30 -> 0x1EDA80 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EDA80 -> 0x001EDACC +*/ +// Range: 0x1EDA80 -> 0x1EDACC +float xAngleClamp(float a /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EDA80 -> 0x1EDACC + float b; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EDAD0 -> 0x001EDE74 +*/ +// Range: 0x1EDAD0 -> 0x1EDE74 +unsigned int xMathSolveCubic(float a /* r29+0x50 */, float b /* r29+0x50 */, float c /* r29+0x50 */, float d /* r29+0x50 */, float * x1 /* r18 */, float * x2 /* r17 */, float * x3 /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EDAD0 -> 0x1EDE74 + float arecip; // r29+0x50 + float fA; // r4 + float fB; // r3 + float fOffset; // r22 + float fDiscr; // r20 + float fHalfB; // r21 + float fTemp; // r29+0x50 + float fDist; // r20 + float fAngle; // r21 + float fCos; // r21 + float fSin; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EDE80 -> 0x001EDF88 +*/ +// Range: 0x1EDE80 -> 0x1EDF88 +unsigned int xMathSolveQuadratic(float a /* r29 */, float b /* r29 */, float c /* r29 */, float * x1 /* r2 */, float * x2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EDE80 -> 0x1EDF88 + float d; // r4 + float dx; // r1 + float p; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EDF90 -> 0x001EDFE8 +*/ +// Range: 0x1EDF90 -> 0x1EDFE8 +float xurand() { + // Blocks + /* anonymous block */ { + // Range: 0x1EDF90 -> 0x1EDFE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EDFF0 -> 0x001EE010 +*/ +// Range: 0x1EDFF0 -> 0x1EE010 +unsigned int xrand() { + // Blocks + /* anonymous block */ { + // Range: 0x1EDFF0 -> 0x1EE010 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE010 -> 0x001EE018 +*/ +// Range: 0x1EE010 -> 0x1EE018 +void xsrand(unsigned int seed /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE010 -> 0x1EE018 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE020 -> 0x001EE028 +*/ +// Range: 0x1EE020 -> 0x1EE028 +float xatof(char * x /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE020 -> 0x1EE028 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE030 -> 0x001EE048 +*/ +// Range: 0x1EE030 -> 0x1EE048 +void xMathExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1EE030 -> 0x1EE048 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE050 -> 0x001EE070 +*/ +// Range: 0x1EE050 -> 0x1EE070 +void xMathInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1EE050 -> 0x1EE070 + } +} + diff --git a/dwarf/SB/Core/x/xMath.h b/dwarf/SB/Core/x/xMath.h new file mode 100644 index 000000000..32b4e61ca --- /dev/null +++ b/dwarf/SB/Core/x/xMath.h @@ -0,0 +1,100 @@ +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C4EE0 -> 0x001C4F1C +*/ +// Range: 0x1C4EE0 -> 0x1C4F1C +float range_limit(float v /* r29 */, float minv /* r29 */, float maxv /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C4EE0 -> 0x1C4F1C + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C57E0 -> 0x001C57EC +*/ +// Range: 0x1C57E0 -> 0x1C57EC +float xabs(float v /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C57E0 -> 0x1C57EC + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00201080 -> 0x002010B8 +*/ +// Range: 0x201080 -> 0x2010B8 +unsigned short range_limit(unsigned short v /* r2 */, unsigned short minv /* r2 */, unsigned short maxv /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x201080 -> 0x2010B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A81B0 -> 0x002A8248 +*/ +// Range: 0x2A81B0 -> 0x2A8248 +float xSCurve(float t /* r29 */, float softness /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A81B0 -> 0x2A8248 + float T2; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB4F0 -> 0x002AB5A0 +*/ +// Range: 0x2AB4F0 -> 0x2AB5A0 +float xrmod(float ang /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB4F0 -> 0x2AB5A0 + float frac; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033B130 -> 0x0033B15C +*/ +// Range: 0x33B130 -> 0x33B15C +unsigned int range_limit(unsigned int v /* r2 */, unsigned int minv /* r2 */, unsigned int maxv /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33B130 -> 0x33B15C + } +} + +/* + Compile unit: C:\SB\Core\x\xMath.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033B160 -> 0x0033B18C +*/ +// Range: 0x33B160 -> 0x33B18C +signed int range_limit(signed int v /* r2 */, signed int minv /* r2 */, signed int maxv /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33B160 -> 0x33B18C + } +} + diff --git a/dwarf/SB/Core/x/xMath2.cpp b/dwarf/SB/Core/x/xMath2.cpp new file mode 100644 index 000000000..1e2036324 --- /dev/null +++ b/dwarf/SB/Core/x/xMath2.cpp @@ -0,0 +1,33 @@ +/* + Compile unit: C:\SB\Core\x\xMath2.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xVec2 g_O2; // size: 0x8, address: 0x0 +class xVec2 g_X2; // size: 0x8, address: 0x0 +class xVec2 g_Y2; // size: 0x8, address: 0x0 +class _xMat3x2 g_I2; // size: 0x18, address: 0x0 +class basic_rect m_Null; // size: 0x10, address: 0x4F8D50 +class basic_rect m_Unit; // size: 0x10, address: 0x4F8D60 +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class _xMat3x2 { + // total size: 0x18 +public: + class xVec2 right; // offset 0x0, size 0x8 + class xVec2 up; // offset 0x8, size 0x8 + class xVec2 pos; // offset 0x10, size 0x8 +}; + diff --git a/dwarf/SB/Core/x/xMath2.h b/dwarf/SB/Core/x/xMath2.h new file mode 100644 index 000000000..a0fefecde --- /dev/null +++ b/dwarf/SB/Core/x/xMath2.h @@ -0,0 +1,73 @@ +/* + Compile unit: C:\SB\Core\x\xMath2.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BCC0 -> 0x0030BCDC +*/ +// Range: 0x30BCC0 -> 0x30BCDC +float dot(class xVec2 * this /* r2 */, class xVec2 & c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BCC0 -> 0x30BCDC + } +} + +/* + Compile unit: C:\SB\Core\x\xMath2.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BCE0 -> 0x0030BD48 +*/ +// Range: 0x30BCE0 -> 0x30BD48 +class xVec2 normal(class xVec2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BCE0 -> 0x30BD48 + class xVec2 v; // r29+0x8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath2.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BD50 -> 0x0030BDA0 +*/ +// Range: 0x30BD50 -> 0x30BDA0 +class xVec2 __mi(class xVec2 * this /* r2 */, class xVec2 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BD50 -> 0x30BDA0 + class xVec2 temp; // r29+0x8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath2.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367670 -> 0x003676C4 +*/ +// Range: 0x367670 -> 0x3676C4 +class xVec2 __dv(class xVec2 * this /* r2 */, float f /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367670 -> 0x3676C4 + class xVec2 temp; // r29+0x8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath2.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003676D0 -> 0x003676F4 +*/ +// Range: 0x3676D0 -> 0x3676F4 +float length(class xVec2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3676D0 -> 0x3676F4 + } +} + diff --git a/dwarf/SB/Core/x/xMath3.cpp b/dwarf/SB/Core/x/xMath3.cpp new file mode 100644 index 000000000..20a63d33e --- /dev/null +++ b/dwarf/SB/Core/x/xMath3.cpp @@ -0,0 +1,621 @@ +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xVec3 g_X3; // size: 0xC, address: 0x4F8D80 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class xVec3 g_Z3; // size: 0xC, address: 0x4F8DA0 +class xVec3 g_NX3; // size: 0xC, address: 0x4F8DB0 +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +class xVec3 g_NZ3; // size: 0xC, address: 0x4F8DD0 +class xVec3 g_Onez; // size: 0xC, address: 0x4F8DE0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class xQuat g_IQ; // size: 0x10, address: 0x4F8DF0 +static float gs_fTolerance; // size: 0x4, address: 0x0 +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCapsule { + // total size: 0x1C +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float r; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xConic { + // total size: 0xA0 +public: + class xMat4x3 basis; // offset 0x0, size 0x40 + class xMat4x3 invbasis; // offset 0x40, size 0x40 + float coef[5]; // offset 0x80, size 0x14 + class xVec3 coneBasisCenter; // offset 0x94, size 0xC +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE070 -> 0x001EE110 +*/ +// Range: 0x1EE070 -> 0x1EE110 +void xQuatDiff(class xQuat * o /* r16 */, class xQuat * a /* r2 */, class xQuat * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE070 -> 0x1EE110 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE110 -> 0x001EE198 +*/ +// Range: 0x1EE110 -> 0x1EE198 +void xQuatMul(class xQuat * o /* r2 */, class xQuat * a /* r2 */, class xQuat * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE110 -> 0x1EE198 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE1A0 -> 0x001EE344 +*/ +// Range: 0x1EE1A0 -> 0x1EE344 +void xQuatSlerp(class xQuat * o /* r18 */, class xQuat * a /* r17 */, class xQuat * b /* r16 */, float t /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE1A0 -> 0x1EE344 + float asph; // r20 + float bsph; // r29+0x60 + float one_sintheta; // r22 + float abdot; // r29+0x60 + class xQuat b2; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE350 -> 0x001EE458 +*/ +// Range: 0x1EE350 -> 0x1EE458 +float xQuatNormalize(class xQuat * o /* r2 */, class xQuat * q /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE350 -> 0x1EE458 + float one_len; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE460 -> 0x001EE4BC +*/ +// Range: 0x1EE460 -> 0x1EE4BC +void xQuatToAxisAngle(class xQuat * q /* r18 */, class xVec3 * a /* r17 */, float * t /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE460 -> 0x1EE4BC + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE4C0 -> 0x001EE56C +*/ +// Range: 0x1EE4C0 -> 0x1EE56C +void xQuatToMat(class xQuat * q /* r2 */, class xMat3x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE4C0 -> 0x1EE56C + float tx; // r6 + float ty; // r12 + float tz; // r29 + float tsx; // r11 + float tsy; // r10 + float tsz; // r9 + float txx; // r8 + float txy; // r7 + float txz; // r6 + float tyy; // r4 + float tyz; // r5 + float tzz; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE570 -> 0x001EE638 +*/ +// Range: 0x1EE570 -> 0x1EE638 +void xQuatFromAxisAngle(class xQuat * q /* r17 */, class xVec3 * a /* r16 */, float t /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE570 -> 0x1EE638 + float t_2; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE640 -> 0x001EE8C0 +*/ +// Range: 0x1EE640 -> 0x1EE8C0 +void xQuatFromMat(class xQuat * q /* r2 */, class xMat3x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE640 -> 0x1EE8C0 + float * mp; // r2 + float * qvp; // r2 + float tr; // r2 + float root; // r3 + signed int i; // r11 + signed int j; // r3 + signed int k; // r10 + signed int nxt[3]; // @ 0x00418BC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE8C0 -> 0x001EE980 +*/ +// Range: 0x1EE8C0 -> 0x1EE980 +void xMat4x3Mul(class xMat4x3 * o /* r16 */, class xMat4x3 * a /* r2 */, class xMat4x3 * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE8C0 -> 0x1EE980 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EE980 -> 0x001EEABC +*/ +// Range: 0x1EE980 -> 0x1EEABC +void xMat4x3Rot(class xMat4x3 * m /* r17 */, class xVec3 * a /* r2 */, float t /* r29+0x80 */, class xVec3 * p /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EE980 -> 0x1EEABC + class xMat4x3 temp; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EEAC0 -> 0x001EEB8C +*/ +// Range: 0x1EEAC0 -> 0x1EEB8C +void xMat3x3Tolocal(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EEAC0 -> 0x1EEB8C + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EEB90 -> 0x001EEC00 +*/ +// Range: 0x1EEB90 -> 0x1EEC00 +void xMat3x3LMulVec(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EEB90 -> 0x1EEC00 + float y; // r6 + float z; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EEC00 -> 0x001EEDDC +*/ +// Range: 0x1EEC00 -> 0x1EEDDC +void xMat3x3Mul(class xMat3x3 * o /* r2 */, class xMat3x3 * a /* r2 */, class xMat3x3 * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EEC00 -> 0x1EEDDC + class xMat3x3 temp; // r29+0x10 + class xMat3x3 * tp; // r7 + unsigned int usetemp; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EEDE0 -> 0x001EEE78 +*/ +// Range: 0x1EEDE0 -> 0x1EEE78 +void xMat3x3Transpose(class xMat3x3 * o /* r2 */, class xMat3x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EEDE0 -> 0x1EEE78 + float temp; // r1 + float temp; // r1 + float temp; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EEE80 -> 0x001EEFD0 +*/ +// Range: 0x1EEE80 -> 0x1EEFD0 +void xMat3x3RMulRotY(class xMat3x3 * o /* r17 */, class xMat3x3 * m /* r16 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EEE80 -> 0x1EEFD0 + float temp; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EEFD0 -> 0x001EEFFC +*/ +// Range: 0x1EEFD0 -> 0x1EEFFC +void xMat3x3ScaleC(class xMat3x3 * m /* r2 */, float x /* r29 */, float y /* r29 */, float z /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EEFD0 -> 0x1EEFFC + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF000 -> 0x001EF080 +*/ +// Range: 0x1EF000 -> 0x1EF080 +void xMat3x3RotZ(class xMat3x3 * m /* r16 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF000 -> 0x1EF080 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF080 -> 0x001EF100 +*/ +// Range: 0x1EF080 -> 0x1EF100 +void xMat3x3RotY(class xMat3x3 * m /* r16 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF080 -> 0x1EF100 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF100 -> 0x001EF180 +*/ +// Range: 0x1EF100 -> 0x1EF180 +void xMat3x3RotX(class xMat3x3 * m /* r16 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF100 -> 0x1EF180 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF180 -> 0x001EF2A8 +*/ +// Range: 0x1EF180 -> 0x1EF2A8 +void xMat3x3RotC(class xMat3x3 * m /* r16 */, float _x /* r23 */, float _y /* r22 */, float _z /* r21 */, float t /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF180 -> 0x1EF2A8 + float c; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF2B0 -> 0x001EF3B0 +*/ +// Range: 0x1EF2B0 -> 0x1EF3B0 +void xMat3x3Euler(class xMat3x3 * m /* r16 */, float yaw /* r22 */, float pitch /* r21 */, float roll /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF2B0 -> 0x1EF3B0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF3B0 -> 0x001EF3C0 +*/ +// Range: 0x1EF3B0 -> 0x1EF3C0 +void xMat3x3Euler(class xMat3x3 * m /* r2 */, class xVec3 * ypr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF3B0 -> 0x1EF3C0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF3C0 -> 0x001EF628 +*/ +// Range: 0x1EF3C0 -> 0x1EF628 +float xMat3x3LookVec(class xMat3x3 * m /* r17 */, class xVec3 * at /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF3C0 -> 0x1EF628 + float vec_len; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF630 -> 0x001EF670 +*/ +// Range: 0x1EF630 -> 0x1EF670 +void xMat4x3MoveLocalAt(class xMat4x3 * m /* r2 */, float mag /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF630 -> 0x1EF670 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF670 -> 0x001EF6B0 +*/ +// Range: 0x1EF670 -> 0x1EF6B0 +void xMat4x3MoveLocalUp(class xMat4x3 * m /* r2 */, float mag /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF670 -> 0x1EF6B0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF6B0 -> 0x001EF6F0 +*/ +// Range: 0x1EF6B0 -> 0x1EF6F0 +void xMat4x3MoveLocalRight(class xMat4x3 * m /* r2 */, float mag /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF6B0 -> 0x1EF6F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF6F0 -> 0x001EF7F8 +*/ +// Range: 0x1EF6F0 -> 0x1EF7F8 +void xMat3x3GetEuler(class xMat3x3 * m /* r17 */, class xVec3 * a /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF6F0 -> 0x1EF7F8 + float pitch; // r21 + float yaw; // r20 + float roll; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF800 -> 0x001EF848 +*/ +// Range: 0x1EF800 -> 0x1EF848 +void xMat3x3Normalize(class xMat3x3 * o /* r17 */, class xMat3x3 * m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF800 -> 0x1EF848 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF8C0 -> 0x001EFC38 +*/ +// Range: 0x1EF8C0 -> 0x1EFC38 +void xBoxFromCone(class xBox & box /* r18 */, class xVec3 & center /* r17 */, class xVec3 & dir /* r16 */, float dist /* r22 */, float r1 /* r21 */, float r2 /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF8C0 -> 0x1EFC38 + class xBox temp; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EFC40 -> 0x001EFD50 +*/ +// Range: 0x1EFC40 -> 0x1EFD50 +void xBoxInitBoundCapsule(class xBox * b /* r2 */, class xCapsule * c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EFC40 -> 0x1EFD50 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EFD50 -> 0x001F0018 +*/ +// Range: 0x1EFD50 -> 0x1F0018 +void xBoxInitBoundOBB(class xBox * o /* r2 */, class xBox * b /* r2 */, class xMat4x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EFD50 -> 0x1F0018 + class xVec3 boxcent; // r29+0x40 + float xmax; // r4 + float ymax; // r3 + float zmax; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0020 -> 0x001F00D8 +*/ +// Range: 0x1F0020 -> 0x1F00D8 +signed int xPointInBox(class xBox * b /* r2 */, class xVec3 * p /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0020 -> 0x1F00D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F00E0 -> 0x001F0210 +*/ +// Range: 0x1F00E0 -> 0x1F0210 +void xLine3VecDist2(class xVec3 * p1 /* r2 */, class xVec3 * p2 /* r2 */, class xVec3 * v /* r2 */, class xIsect * isx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F00E0 -> 0x1F0210 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0210 -> 0x001F0218 +*/ +// Range: 0x1F0210 -> 0x1F0218 +void xMath3Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F0210 -> 0x1F0218 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0220 -> 0x001F02FC +*/ +// Range: 0x1F0220 -> 0x1F02FC +void xMath3Init() { + // Blocks + /* anonymous block */ { + // Range: 0x1F0220 -> 0x1F02FC + } +} + diff --git a/dwarf/SB/Core/x/xMath3.h b/dwarf/SB/Core/x/xMath3.h new file mode 100644 index 000000000..b5a7b6af7 --- /dev/null +++ b/dwarf/SB/Core/x/xMath3.h @@ -0,0 +1,122 @@ +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001567F0 -> 0x00156860 +*/ +// Range: 0x1567F0 -> 0x156860 +static void xMat3x3RMulVec(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1567F0 -> 0x156860 + float y; // r6 + float z; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175D80 -> 0x00175DF0 +*/ +// Range: 0x175D80 -> 0x175DF0 +static void xMat3x3RMulVec(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175D80 -> 0x175DF0 + float y; // r6 + float z; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175DF0 -> 0x00175E90 +*/ +// Range: 0x175DF0 -> 0x175E90 +void xMat4x3Toworld(class xVec3 * o /* r2 */, class xMat4x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175DF0 -> 0x175E90 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FEC10 -> 0x001FECF0 +*/ +// Range: 0x1FEC10 -> 0x1FECF0 +void xBoxFromLine(class xBox & box /* r2 */, class xLine3 & line /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FEC10 -> 0x1FECF0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABA70 -> 0x002ABAE0 +*/ +// Range: 0x2ABA70 -> 0x2ABAE0 +static void xMat3x3RMulVec(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ABA70 -> 0x2ABAE0 + float y; // r6 + float z; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F92D0 -> 0x002F9340 +*/ +// Range: 0x2F92D0 -> 0x2F9340 +static void xMat3x3RMulVec(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F92D0 -> 0x2F9340 + float y; // r6 + float z; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9340 -> 0x002F9354 +*/ +// Range: 0x2F9340 -> 0x2F9354 +void xMat3x3Rot(class xMat3x3 * m /* r2 */, class xVec3 * a /* r2 */, float t /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9340 -> 0x2F9354 + } +} + +/* + Compile unit: C:\SB\Core\x\xMath3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FEDA0 -> 0x002FEE10 +*/ +// Range: 0x2FEDA0 -> 0x2FEE10 +static void xMat3x3RMulVec(class xVec3 * o /* r2 */, class xMat3x3 * m /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FEDA0 -> 0x2FEE10 + float y; // r6 + float z; // r3 + } +} + diff --git a/dwarf/SB/Core/x/xMathInlines.h b/dwarf/SB/Core/x/xMathInlines.h new file mode 100644 index 000000000..61f6aabe9 --- /dev/null +++ b/dwarf/SB/Core/x/xMathInlines.h @@ -0,0 +1,98 @@ +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156960 -> 0x0015697C +*/ +// Range: 0x156960 -> 0x15697C +float xsqrt(float x /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156960 -> 0x15697C + } +} + +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA130 -> 0x002AA138 +*/ +// Range: 0x2AA130 -> 0x2AA138 +float xsin(float x /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AA130 -> 0x2AA138 + } +} + +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA140 -> 0x002AA148 +*/ +// Range: 0x2AA140 -> 0x2AA148 +float xcos(float x /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AA140 -> 0x2AA148 + } +} + +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB5A0 -> 0x002AB5C4 +*/ +// Range: 0x2AB5A0 -> 0x2AB5C4 +float xatan2(float y /* r29+0x10 */, float x /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB5A0 -> 0x2AB5C4 + } +} + +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB5D0 -> 0x002AB5D8 +*/ +// Range: 0x2AB5D0 -> 0x2AB5D8 +float xasin(float x /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB5D0 -> 0x2AB5D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB990 -> 0x002AB998 +*/ +// Range: 0x2AB990 -> 0x2AB998 +float xpow(float x /* r29 */, float y /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB990 -> 0x2AB998 + } +} + +/* + Compile unit: C:\SB\Core\x\xMathInlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339380 -> 0x003393CC +*/ +// Range: 0x339380 -> 0x3393CC +void xmax3fast(float & o /* r2 */, float a /* r29 */, float b /* r29 */, float c /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x339380 -> 0x3393CC + } +} + diff --git a/dwarf/SB/Core/x/xMemMgr.cpp b/dwarf/SB/Core/x/xMemMgr.cpp new file mode 100644 index 000000000..fbde5719b --- /dev/null +++ b/dwarf/SB/Core/x/xMemMgr.cpp @@ -0,0 +1,435 @@ +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xMemInfo_tag gMemInfo; // size: 0x30, address: 0x568900 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xMemHeap_tag gxHeap[3]; // size: 0x294, address: 0x568930 +void (* sMemBaseNotifyFunc)(); // size: 0x4, address: 0x50FA48 +signed int gMemReporting; // size: 0x4, address: 0x0 +unsigned int gMemReportingThreshold; // size: 0x4, address: 0x0 +signed int gDumpTempLeaks; // size: 0x4, address: 0x0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class _tagxPad * gDebugPad; // size: 0x4, address: 0x50FA68 +char _stack_size; // size: 0x1, address: 0x10000 +char _end; // size: 0x1, address: 0x61DE80 +class xMemHeap_tag { + // total size: 0xDC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int hard_base; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + signed short opp_heap[2]; // offset 0xC, size 0x4 + class xHeapState_tag state[12]; // offset 0x10, size 0xC0 + unsigned short state_idx; // offset 0xD0, size 0x2 + unsigned short max_blks; // offset 0xD2, size 0x2 + class xMemBlock_tag * blk; // offset 0xD4, size 0x4 + class xMemBlock_tag * lastblk; // offset 0xD8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xMemBlkInfo_tag { + // total size: 0x1C +public: + class xMemBlock_tag * header; // offset 0x0, size 0x4 + unsigned int pre; // offset 0x4, size 0x4 + unsigned int block; // offset 0x8, size 0x4 + unsigned int post; // offset 0xC, size 0x4 + unsigned int curr; // offset 0x10, size 0x4 + unsigned int waste; // offset 0x14, size 0x4 + unsigned int total; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xMemBlock_tag { + // total size: 0xC +public: + unsigned int addr; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + signed int align; // offset 0x8, size 0x4 +}; +class xHeapState_tag { + // total size: 0x10 +public: + unsigned int curr; // offset 0x0, size 0x4 + unsigned short blk_ct; // offset 0x4, size 0x2 + unsigned short pad; // offset 0x6, size 0x2 + unsigned int used; // offset 0x8, size 0x4 + unsigned int wasted; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xMemArea_tag { + // total size: 0xC +public: + unsigned int addr; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + unsigned int flags; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xMemInfo_tag { + // total size: 0x30 +public: + class xMemArea_tag system; // offset 0x0, size 0xC + class xMemArea_tag stack; // offset 0xC, size 0xC + class xMemArea_tag DRAM; // offset 0x18, size 0xC + class xMemArea_tag SRAM; // offset 0x24, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0300 -> 0x001F0370 +*/ +// Range: 0x1F0300 -> 0x1F0370 +void xMemPoolFree(class xMemPool * pool /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0300 -> 0x1F0370 + void * freeList; // r9 + unsigned int next; // r8 + void * * prev; // r7 + void * curr; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0370 -> 0x001F0404 +*/ +// Range: 0x1F0370 -> 0x1F0404 +void * xMemPoolAlloc(class xMemPool * pool /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0370 -> 0x1F0404 + void * retval; // r2 + unsigned int next; // r19 + unsigned int flags; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0410 -> 0x001F043C +*/ +// Range: 0x1F0410 -> 0x1F043C +void xMemPoolSetup(class xMemPool * pool /* r2 */, void * buffer /* r2 */, unsigned int nextOffset /* r2 */, unsigned int flags /* r2 */, void (* initCB)(class xMemPool *, void *) /* r2 */, unsigned int size /* r2 */, unsigned int count /* r2 */, unsigned int numRealloc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0410 -> 0x1F043C + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0440 -> 0x001F0518 +*/ +// Range: 0x1F0440 -> 0x1F0518 +static void xMemPoolAddElements(class xMemPool * pool /* r22 */, void * buffer /* r23 */, unsigned int count /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0440 -> 0x1F0518 + signed int i; // r20 + void * curr; // r2 + void (* initCB)(class xMemPool *, void *); // r19 + unsigned int next; // r18 + unsigned int size; // r30 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0520 -> 0x001F054C +*/ +// Range: 0x1F0520 -> 0x1F054C +signed int xMemGetBase() { + // Blocks + /* anonymous block */ { + // Range: 0x1F0520 -> 0x1F054C + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0550 -> 0x001F0558 +*/ +// Range: 0x1F0550 -> 0x1F0558 +void xMemRegisterBaseNotifyFunc(void (* func)() /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0550 -> 0x1F0558 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0560 -> 0x001F05CC +*/ +// Range: 0x1F0560 -> 0x1F05CC +signed int xMemPopBase(signed int depth /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0560 -> 0x1F05CC + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F05D0 -> 0x001F0670 +*/ +// Range: 0x1F05D0 -> 0x1F0670 +signed int xMemPushBase() { + // Blocks + /* anonymous block */ { + // Range: 0x1F05D0 -> 0x1F0670 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0670 -> 0x001F0680 +*/ +// Range: 0x1F0670 -> 0x1F0680 +void xMemPopTemp(void * addr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0670 -> 0x1F0680 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0680 -> 0x001F0690 +*/ +// Range: 0x1F0680 -> 0x1F0690 +void * xMemPushTemp(unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0680 -> 0x1F0690 + void * addr; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0690 -> 0x001F07D8 +*/ +// Range: 0x1F0690 -> 0x1F07D8 +void * xMemAlloc(unsigned int heapID /* r2 */, unsigned int size /* r20 */, signed int align /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0690 -> 0x1F07D8 + class xMemHeap_tag * heap; // r19 + class xMemBlock_tag * hdr; // r18 + class xHeapState_tag * sp; // r17 + class xMemBlkInfo_tag info; // r29+0x60 + unsigned int total; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F07E0 -> 0x001F08D0 +*/ +// Range: 0x1F07E0 -> 0x1F08D0 +void * xMemGrowAlloc(unsigned int heapID /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F07E0 -> 0x1F08D0 + class xMemHeap_tag * heap; // r8 + class xMemBlock_tag * hdr; // r2 + class xHeapState_tag * sp; // r7 + void * memptr; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F08D0 -> 0x001F09F0 +*/ +// Range: 0x1F08D0 -> 0x1F09F0 +static unsigned int xMemGetBlockInfo(class xMemHeap_tag * heap /* r2 */, unsigned int size /* r2 */, signed int align /* r2 */, class xMemBlkInfo_tag * info /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F08D0 -> 0x1F09F0 + signed int total; // r2 + signed int hdr; // r13 + signed int pre; // r12 + signed int block; // r2 + signed int post; // r6 + class xHeapState_tag * sp; // r11 + signed int remainder; // r12 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F09F0 -> 0x001F0AFC +*/ +// Range: 0x1F09F0 -> 0x1F0AFC +void xMemInitHeap(class xMemHeap_tag * heap /* r16 */, unsigned int base /* r2 */, unsigned int size /* r2 */, unsigned int flags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F09F0 -> 0x1F0AFC + unsigned int old_base; // r9 + signed int align; // r8 + class xHeapState_tag * sp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0B00 -> 0x001F0B08 +*/ +// Range: 0x1F0B00 -> 0x1F0B08 +void xMemExit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F0B00 -> 0x1F0B08 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0B10 -> 0x001F0BD0 +*/ +// Range: 0x1F0B10 -> 0x1F0BD0 +void xMemInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F0B10 -> 0x1F0BD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMemMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0BD0 -> 0x001F0BD8 +*/ +// Range: 0x1F0BD0 -> 0x1F0BD8 +void xMemDebug_SoakLog() { + // Blocks + /* anonymous block */ { + // Range: 0x1F0BD0 -> 0x1F0BD8 + } +} + diff --git a/dwarf/SB/Core/x/xModel.cpp b/dwarf/SB/Core/x/xModel.cpp new file mode 100644 index 000000000..5cdc1f6a4 --- /dev/null +++ b/dwarf/SB/Core/x/xModel.cpp @@ -0,0 +1,1243 @@ +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class RpMorphTarget anim_coll_old_mt; // size: 0x1C, address: 0x568BD0 +static class xModelPool * sxModelPoolList; // size: 0x4, address: 0x50FA4C +static class RwCamera * subcamera; // size: 0x4, address: 0x50FA50 +signed int xModelPipeNumTables; // size: 0x4, address: 0x50FA54 +signed int xModelPipeCount[16]; // size: 0x40, address: 0x568BF0 +class xModelPipeInfo * xModelPipeData[16]; // size: 0x40, address: 0x568C30 +signed int xModelLookupCount; // size: 0x4, address: 0x50FA58 +class xModelPipeLookup * xModelLookupList; // size: 0x4, address: 0x50FA5C +signed int xModelInstStaticAlloc; // size: 0x4, address: 0x50FA60 +signed int xModelBucketEnabled; // size: 0x4, address: 0x50FA64 +static enum eHudID sHudItem; // size: 0x4, address: 0x0 +static signed int sHudItemVisible; // size: 0x4, address: 0x0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RwRaster * ShadowRenderRaster; // size: 0x4, address: 0x0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xModelPipeLookup { + // total size: 0x8 +public: + class RpAtomic * model; // offset 0x0, size 0x4 + unsigned int PipeFlags; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RwVideoModeFlag { + rwVIDEOMODEEXCLUSIVE = 1, + rwVIDEOMODEINTERLACE = 2, + rwVIDEOMODEFFINTERLACE = 4, + rwVIDEOMODE_PS2_FSAASHRINKBLIT = 256, + rwVIDEOMODE_PS2_FSAAREADCIRCUIT = 512, + rwVIDEOMODE_XBOX_WIDESCREEN = 256, + rwVIDEOMODE_XBOX_PROGRESSIVE = 512, + rwVIDEOMODE_XBOX_FIELD = 1024, + rwVIDEOMODE_XBOX_10X11PIXELASPECT = 2048, + rwVIDEOMODEFLAGFORCEENUMSIZEINT = 2147483647, +}; +enum eHudID { + eHudIDUnknown = 0, + eHudIDScoobyHead0 = 1, + eHudIDScoobyHead1 = 2, + eHudIDScoobyHead2 = 3, + eHudIDScoobyHead3 = 4, + eHudIDScoobyHead4 = 5, + eHudIDScoobyHead5 = 6, + eHudIDGumPack = 7, + eHudIDGumPiece = 8, + eHudIDSnack = 9, + eHudIDSnackPiece = 10, + eHudIDBarSoap = 11, + eHudIDSoapPiece = 12, + eHudIDBoxSoap = 13, + eHudIDHealthBar = 14, + eHudIDClue = 15, + eHudIDTotal = 16, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xModelPipeInfo { + // total size: 0xC +public: + unsigned int ModelHashID; // offset 0x0, size 0x4 + unsigned int SubObjectBits; // offset 0x4, size 0x4 + unsigned int PipeFlags; // offset 0x8, size 0x4 +}; +class RwVideoMode { + // total size: 0x18 +public: + signed int width; // offset 0x0, size 0x4 + signed int height; // offset 0x4, size 0x4 + signed int depth; // offset 0x8, size 0x4 + enum RwVideoModeFlag flags; // offset 0xC, size 0x4 + signed int refRate; // offset 0x10, size 0x4 + signed int format; // offset 0x14, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0BE0 -> 0x001F0C94 +*/ +// Range: 0x1F0BE0 -> 0x1F0C94 +void xModelGetBoneMat(class xMat4x3 & mat /* r2 */, class xModelInstance & model /* r2 */, unsigned int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0BE0 -> 0x1F0C94 + class xMat4x3 & root_mat; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0CA0 -> 0x001F0D98 +*/ +// Range: 0x1F0CA0 -> 0x1F0D98 +class xVec3 xModelGetBoneLocation(class xModelInstance & model /* r2 */, unsigned int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0CA0 -> 0x1F0D98 + class xMat4x3 & root_mat; // r7 + class xMat4x3 & anim_mat; // r3 + class xVec3 ret; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0DA0 -> 0x001F0F6C +*/ +// Range: 0x1F0DA0 -> 0x1F0F6C +void xModelAnimCollRefresh(class xModelInstance & cm /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0DA0 -> 0x1F0F6C + unsigned int size; // r2 + class xMat4x3 & mat; // r16 + class xMat4x3 old_mat; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0F70 -> 0x001F0FD8 +*/ +// Range: 0x1F0F70 -> 0x1F0FD8 +void xModelAnimCollStart(class xModelInstance & m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0F70 -> 0x1F0FD8 + unsigned int size; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0FE0 -> 0x001F0FE8 +*/ +// Range: 0x1F0FE0 -> 0x1F0FE8 +void xModel_SceneExit(class RpWorld * world /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0FE0 -> 0x1F0FE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F0FF0 -> 0x001F0FF8 +*/ +// Range: 0x1F0FF0 -> 0x1F0FF8 +void xModel_SceneEnter(class RpWorld * world /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F0FF0 -> 0x1F0FF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1000 -> 0x001F1008 +*/ +// Range: 0x1F1000 -> 0x1F1008 +void xModelSetMaterialAlpha(class xModelInstance * modelInst /* r2 */, unsigned char alpha /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1000 -> 0x1F1008 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1010 -> 0x001F109C +*/ +// Range: 0x1F1010 -> 0x1F109C +static void CameraDestroy(class RwCamera * camera /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1010 -> 0x1F109C + class RwRaster * raster; // r2 + class RwFrame * frame; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F10A0 -> 0x001F1494 +*/ +// Range: 0x1F10A0 -> 0x1F1494 +void xModelRender2D(class xModelInstance & model /* r21 */, class basic_rect & r /* r20 */, class xVec3 & from /* r19 */, class xVec3 & to /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F10A0 -> 0x1F1494 + class RwCamera * camera; // r17 + class RwMatrixTag * cammat; // r16 + class xMat4x3 objmat; // r29+0x130 + class xMat4x3 shearmat; // r29+0xF0 + class xMat4x3 temp1; // r29+0xB0 + class xMat4x3 temp2; // r29+0x70 + class RwV2d * camvw; // r2 + float viewscale; // r6 + float shearX; // r2 + float shearY; // r29+0x180 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F14A0 -> 0x001F1500 +*/ +// Range: 0x1F14A0 -> 0x1F1500 +void xModelRender(class xModelInstance * modelInst /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F14A0 -> 0x1F1500 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1500 -> 0x001F18CC +*/ +// Range: 0x1F1500 -> 0x1F18CC +void xModelRenderSingle(class xModelInstance * modelInst /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1500 -> 0x1F18CC + unsigned char reset; // r16 + class xMat3x3 tmpmat; // r29+0x30 + class xAnimPlay * a; // r3 + unsigned short i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F18D0 -> 0x001F1910 +*/ +// Range: 0x1F18D0 -> 0x1F1910 +void xModelEval(class xModelInstance * modelInst /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F18D0 -> 0x1F1910 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1910 -> 0x001F1AAC +*/ +// Range: 0x1F1910 -> 0x1F1AAC +void xModelEvalSingle(class xModelInstance * modelInst /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1910 -> 0x1F1AAC + signed int i; // r18 + class xModelInstance * dad; // r17 + unsigned char * remap; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1AB0 -> 0x001F1B34 +*/ +// Range: 0x1F1AB0 -> 0x1F1B34 +void xModelUpdate(class xModelInstance * modelInst /* r16 */, float timeDelta /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1AB0 -> 0x1F1B34 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1B40 -> 0x001F1BB4 +*/ +// Range: 0x1F1B40 -> 0x1F1BB4 +void xModelInstanceUpgradeBrotherShared(class xModelInstance * inst /* r17 */, unsigned int flags /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1B40 -> 0x1F1BB4 + unsigned int boneCount; // r2 + class RwMatrixTag * allocmats; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1BC0 -> 0x001F1C10 +*/ +// Range: 0x1F1BC0 -> 0x1F1C10 +void xModelInstanceAttach(class xModelInstance * inst /* r2 */, class xModelInstance * parent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1BC0 -> 0x1F1C10 + class xModelInstance * curr; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1C10 -> 0x001F1D00 +*/ +// Range: 0x1F1C10 -> 0x1F1D00 +void xModelInstanceFree(class xModelInstance * modelInst /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1C10 -> 0x1F1D00 + class xModelInstance * curr; // r5 + class xModelInstance * * prev; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F1D00 -> 0x001F2020 +*/ +// Range: 0x1F1D00 -> 0x1F2020 +class xModelInstance * xModelInstanceAlloc(class RpAtomic * data /* r21 */, void * object /* r22 */, unsigned short flags /* r20 */, unsigned char boneIndex /* r23 */, unsigned char * boneRemap /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F1D00 -> 0x1F2020 + signed int i; // r19 + unsigned int boneCount; // r19 + unsigned int matCount; // r18 + class xModelPool * curr; // r3 + class xModelPool * found; // r17 + class xModelInstance * dude; // r16 + class RwMatrixTag * allocmats; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2020 -> 0x001F22D4 +*/ +// Range: 0x1F2020 -> 0x1F22D4 +void xModelPoolInit(unsigned int count /* r17 */, unsigned int numMatrices /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2020 -> 0x1F22D4 + signed int i; // r10 + unsigned char * buffer; // r9 + class RwMatrixTag * mat; // r8 + class xModelPool * pool; // r2 + class xModelPool * curr; // r5 + class xModelPool * * prev; // r4 + class xModelInstance * inst; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F22E0 -> 0x001F23AC +*/ +// Range: 0x1F22E0 -> 0x1F23AC +void xModelInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F22E0 -> 0x1F23AC + } +} + +/* + Compile unit: C:\SB\Core\x\xModel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F23B0 -> 0x001F2400 +*/ +// Range: 0x1F23B0 -> 0x1F2400 +unsigned int xModelGetPipeFlags(class RpAtomic * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F23B0 -> 0x1F2400 + signed int i; // r7 + } +} + diff --git a/dwarf/SB/Core/x/xModel.h b/dwarf/SB/Core/x/xModel.h new file mode 100644 index 000000000..83b3b09f8 --- /dev/null +++ b/dwarf/SB/Core/x/xModel.h @@ -0,0 +1,14 @@ +/* + Compile unit: C:\SB\Core\x\xModel.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134620 -> 0x00134630 +*/ +// Range: 0x134620 -> 0x134630 +void xModelAnimCollStop(class xModelInstance & m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134620 -> 0x134630 + } +} + diff --git a/dwarf/SB/Core/x/xModelBucket.cpp b/dwarf/SB/Core/x/xModelBucket.cpp new file mode 100644 index 000000000..de0f79b69 --- /dev/null +++ b/dwarf/SB/Core/x/xModelBucket.cpp @@ -0,0 +1,1769 @@ +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class RpWorld * sBucketDummyWorld; // size: 0x4, address: 0x510024 +static class RwCamera * sBucketDummyCamera; // size: 0x4, address: 0x510030 +static signed int sBucketCurr; // size: 0x4, address: 0x510034 +static signed int sBucketCount; // size: 0x4, address: 0x510038 +static class xModelBucket * sBucketList; // size: 0x4, address: 0x51003C +static signed int sBucketClipCullCurr; // size: 0x4, address: 0x510040 +static signed int sBucketClipCullCount; // size: 0x4, address: 0x510044 +static class xModelBucket * * sBucketClipCullList; // size: 0x4, address: 0x510048 +static signed int sAlphaCurr; // size: 0x4, address: 0x51004C +static signed int sAlphaStart; // size: 0x4, address: 0x510050 +static signed int sAlphaCount; // size: 0x4, address: 0x510054 +static class xModelAlphaBucket * sAlphaList; // size: 0x4, address: 0x510058 +static class RpMaterial * s_pMaterial; // size: 0x4, address: 0x0 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +signed int iModelHack_DisablePrelight; // size: 0x4, address: 0x50FFD0 +signed long skyTest_1; // size: 0x4, address: 0x50EB58 +signed int CmpAlphaBucket(void *, void *); // size: 0x0, address: 0x311F30 +signed int xModelBucketEnabled; // size: 0x4, address: 0x50FA64 +__int128 * _rwDMAPktPtr; // size: 0x4, address: 0x50FC90 +signed long skyFrame_1; // size: 0x4, address: 0x50EB50 +class xLightKit * gLastLightKit; // size: 0x4, address: 0x50FFD4 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xModelAlphaBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class xModelInstance * MInst; // offset 0x4, size 0x4 + float AlphaFade; // offset 0x8, size 0x4 + float SortValue; // offset 0xC, size 0x4 + unsigned int Layer; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEnv { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwMemory { + // total size: 0x8 +public: + unsigned char * start; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310A10 -> 0x00310A68 +*/ +// Range: 0x310A10 -> 0x310A68 +void xModelBucket_PreAllocModelPipe(class RpAtomic * m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310A10 -> 0x310A68 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310A70 -> 0x00310B44 +*/ +// Range: 0x310A70 -> 0x310B44 +void xModelBucket_Deinit() { + // Blocks + /* anonymous block */ { + // Range: 0x310A70 -> 0x310B44 + signed int i; // r17 + class RwFrame * tframe; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310B50 -> 0x00310B58 +*/ +// Range: 0x310B50 -> 0x310B58 +void xModelBucket_RenderAlphaEnd() { + // Blocks + /* anonymous block */ { + // Range: 0x310B50 -> 0x310B58 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310B60 -> 0x00311040 +*/ +// Range: 0x310B60 -> 0x311040 +void xModelBucket_RenderAlphaLayer(signed int maxLayer /* r29+0xBC */) { + // Blocks + /* anonymous block */ { + // Range: 0x310B60 -> 0x311040 + unsigned int pipeMask; // r30 + unsigned int curPipeFlags; // r19 + unsigned int lastPipeFlags; // r18 + enum RwFogType oldfogtype; // r23 + class xModelInstance * minst; // r17 + class RpAtomic * oldmodel; // r21 + signed int oldHack; // r22 + float oldAlpha; // r21 + float fade; // r20 + unsigned char skyOldFade; // r16 + unsigned int xorPipeFlags; // r20 + unsigned char oldcmp; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311040 -> 0x0031107C +*/ +// Range: 0x311040 -> 0x31107C +void xModelBucket_RenderAlphaBegin() { + // Blocks + /* anonymous block */ { + // Range: 0x311040 -> 0x31107C + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311080 -> 0x00311144 +*/ +// Range: 0x311080 -> 0x311144 +unsigned char PS2_MaskFrameBuffer_AlphaCompare(unsigned int mask /* r2 */, unsigned char alphaCompare /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311080 -> 0x311144 + unsigned char retval; // r17 + signed long tmpframe; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311150 -> 0x0031130C +*/ +// Range: 0x311150 -> 0x31130C +void xModelBucket_RenderOpaque() { + // Blocks + /* anonymous block */ { + // Range: 0x311150 -> 0x31130C + signed int i; // r21 + class xModelBucket * bucket; // r23 + class RpAtomic * data; // r20 + class xModelInstance * minst; // r19 + signed int oldHack; // r18 + class RpAtomic * oldmodel; // r22 + enum RwFogType oldfogtype; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311310 -> 0x003115DC +*/ +// Range: 0x311310 -> 0x3115DC +void xModelBucket_Add(class xModelInstance * minst /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311310 -> 0x3115DC + class RpAtomic * model; // r16 + class xMat4x3 * cammat; // r5 + float camdist2; // r10 + class xModelBucket * bucket; // r5 + float camdot; // r4 + float alphaFade; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003115E0 -> 0x00311624 +*/ +// Range: 0x3115E0 -> 0x311624 +void xModelBucket_Begin() { + // Blocks + /* anonymous block */ { + // Range: 0x3115E0 -> 0x311624 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311630 -> 0x00311680 +*/ +// Range: 0x311630 -> 0x311680 +class xModelBucket * * xModelBucket_GetBuckets(class RpAtomic * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311630 -> 0x311680 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311680 -> 0x003116C4 +*/ +// Range: 0x311680 -> 0x3116C4 +void xModelBucket_Init() { + // Blocks + /* anonymous block */ { + // Range: 0x311680 -> 0x3116C4 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003116D0 -> 0x00311A64 +*/ +// Range: 0x3116D0 -> 0x311A64 +void xModelBucket_InsertBucket(class RpAtomic * data /* r21 */, unsigned int pipeFlags /* r22 */, unsigned int subObjects /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3116D0 -> 0x311A64 + signed int numbuckets; // r20 + signed int pipeSetting[2]; // r29+0x90 + signed int i; // r19 + unsigned int subObjTemp; // r18 + class RpAtomic * dataTemp; // r17 + class RpAtomic * extraData; // r29+0x9C + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311A70 -> 0x00311D2C +*/ +// Range: 0x311A70 -> 0x311D2C +void FullAtomicDupe(class RpAtomic * atomic /* r16 */, signed int count /* r19 */, class RpAtomic * * output /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311A70 -> 0x311D2C + signed int i; // r17 + class RwStream * stream; // r17 + class RwMemory rwmemA; // r29+0x78 + class RpAtomic * tempAtom; // r16 + class RwMemory rwmemB; // r29+0x70 + class RwFrame * temp_frame; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311D30 -> 0x00311DF4 +*/ +// Range: 0x311D30 -> 0x311DF4 +void xModelBucket_PreCountAlloc(signed int maxAlphaModels /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311D30 -> 0x311DF4 + class RwBBox bbox; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311E00 -> 0x00311EF4 +*/ +// Range: 0x311E00 -> 0x311EF4 +void xModelBucket_PreCountBucket(class RpAtomic * data /* r17 */, unsigned int pipeFlags /* r2 */, unsigned int subObjects /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311E00 -> 0x311EF4 + signed int numbuckets; // r19 + signed int modelcount; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311F00 -> 0x00311F28 +*/ +// Range: 0x311F00 -> 0x311F28 +void xModelBucket_PreCountReset() { + // Blocks + /* anonymous block */ { + // Range: 0x311F00 -> 0x311F28 + } +} + +/* + Compile unit: C:\SB\Core\x\xModelBucket.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311F30 -> 0x00311FA8 +*/ +// Range: 0x311F30 -> 0x311FA8 +static signed int CmpAlphaBucket(void * _a /* r2 */, void * _b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311F30 -> 0x311FA8 + class xModelAlphaBucket * a; // r2 + class xModelAlphaBucket * b; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xMorph.cpp b/dwarf/SB/Core/x/xMorph.cpp new file mode 100644 index 000000000..848d5bacc --- /dev/null +++ b/dwarf/SB/Core/x/xMorph.cpp @@ -0,0 +1,515 @@ +/* + Compile unit: C:\SB\Core\x\xMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xMorphTargetFile { + // total size: 0x20 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned short NumTargets; // offset 0x4, size 0x2 + unsigned short NumVerts; // offset 0x6, size 0x2 + unsigned int Flags; // offset 0x8, size 0x4 + float Scale; // offset 0xC, size 0x4 + class xVec3 Center; // offset 0x10, size 0xC + float Radius; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xMorphSeqFile { + // total size: 0x10 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + unsigned int TimeCount; // offset 0x8, size 0x4 + unsigned int ModelCount; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xMorphFrame { + // total size: 0x30 +public: + class RpAtomic * Model; // offset 0x0, size 0x4 + float RecipTime; // offset 0x4, size 0x4 + float Scale; // offset 0x8, size 0x4 + unsigned short Flags; // offset 0xC, size 0x2 + unsigned short NumVerts; // offset 0xE, size 0x2 + signed short * Targets[4]; // offset 0x10, size 0x10 + signed short WeightStart[4]; // offset 0x20, size 0x8 + signed short WeightEnd[4]; // offset 0x28, size 0x8 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2400 -> 0x001F2414 +*/ +// Range: 0x1F2400 -> 0x1F2414 +float xMorphSeqDuration(class xMorphSeqFile * seq /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2400 -> 0x1F2414 + } +} + +/* + Compile unit: C:\SB\Core\x\xMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2420 -> 0x001F261C +*/ +// Range: 0x1F2420 -> 0x1F261C +void xMorphRender(class xMorphSeqFile * seq /* r2 */, class RwMatrixTag * mat /* r2 */, float time /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2420 -> 0x1F261C + float lerp; // r1 + unsigned int tidx; // r6 + signed short weight[4]; // r29+0x18 + signed short * wptr; // r2 + float * times; // r7 + class xMorphFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xMorph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2620 -> 0x001F2870 +*/ +// Range: 0x1F2620 -> 0x1F2870 +class xMorphSeqFile * xMorphSeqSetup(void * data /* r2 */, void * (* FindAssetCB)(unsigned int, char *) /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2620 -> 0x1F2870 + signed int i; // r21 + signed int j; // r5 + class xMorphTargetFile * mphtgt; // r4 + class xMorphSeqFile * header; // r18 + class xMorphFrame * framelist; // r17 + unsigned int * assetlist; // r16 + char * namelist; // r20 + void * assetPtr; // r2 + unsigned int skipsize; // r8 + } +} + diff --git a/dwarf/SB/Core/x/xMovePoint.cpp b/dwarf/SB/Core/x/xMovePoint.cpp new file mode 100644 index 000000000..87e240352 --- /dev/null +++ b/dwarf/SB/Core/x/xMovePoint.cpp @@ -0,0 +1,288 @@ +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEnt { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xSerial { + // total size: 0x0 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2870 -> 0x001F2878 +*/ +// Range: 0x1F2870 -> 0x1F2878 +class xVec3 * xMovePointGetPos(class xMovePoint * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2870 -> 0x1F2878 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2880 -> 0x001F2AB0 +*/ +// Range: 0x1F2880 -> 0x1F2AB0 +float xMovePointGetNext(class xMovePoint * m /* r20 */, class xMovePoint * prev /* r19 */, class xMovePoint * * next /* r18 */, class xVec3 * hdng /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2880 -> 0x1F2AB0 + signed int rnd; // r6 + unsigned short idx; // r5 + class xMovePoint * previousOption; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2AB0 -> 0x001F2AC8 +*/ +// Range: 0x1F2AB0 -> 0x1F2AC8 +void xMovePointSplineDestroy(class xMovePoint * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2AB0 -> 0x1F2AC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2AD0 -> 0x001F2CB8 +*/ +// Range: 0x1F2AD0 -> 0x1F2CB8 +void xMovePointSplineSetup(class xMovePoint * m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2AD0 -> 0x1F2CB8 + class xMovePoint * w0; // r7 + class xMovePoint * w2; // r2 + class xMovePoint * w3; // r3 + class xVec3 points[2]; // r29+0x20 + class xVec3 p1; // r29+0x50 + class xVec3 p2; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2CC0 -> 0x001F2D90 +*/ +// Range: 0x1F2CC0 -> 0x1F2D90 +void xMovePointSetup(class xMovePoint * m /* r20 */, class xScene * sc /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2CC0 -> 0x1F2D90 + unsigned int * id; // r18 + unsigned short idx; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2D90 -> 0x001F2DD0 +*/ +// Range: 0x1F2D90 -> 0x1F2DD0 +void xMovePointReset(class xMovePoint * m /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2D90 -> 0x1F2DD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2DD0 -> 0x001F2DD8 +*/ +// Range: 0x1F2DD0 -> 0x1F2DD8 +void xMovePointLoad(class xMovePoint * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2DD0 -> 0x1F2DD8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2DE0 -> 0x001F2DE8 +*/ +// Range: 0x1F2DE0 -> 0x1F2DE8 +void xMovePointSave(class xMovePoint * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2DE0 -> 0x1F2DE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2DF0 -> 0x001F2E74 +*/ +// Range: 0x1F2DF0 -> 0x1F2E74 +void xMovePointInit(class xMovePoint * m /* r17 */, class xMovePointAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2DF0 -> 0x1F2E74 + } +} + diff --git a/dwarf/SB/Core/x/xNPCBasic.cpp b/dwarf/SB/Core/x/xNPCBasic.cpp new file mode 100644 index 000000000..052f89f86 --- /dev/null +++ b/dwarf/SB/Core/x/xNPCBasic.cpp @@ -0,0 +1,1274 @@ +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class xEntCollis g_colrec; // size: 0x5B4, address: 0x5CD820 +static char * g_strz_perfcats[3]; // size: 0xC, address: 0x0 +static char * g_strz_npcmenu[6]; // size: 0x18, address: 0x0 +static char * g_strz_dbopts[5]; // size: 0x14, address: 0x0 +static char * g_strz_npcdcat[23]; // size: 0x5C, address: 0x0 +struct /* @anon0 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +void NPC_alwaysUseSphere(class xEnt *, class xVec3 *); // size: 0x0, address: 0x2F2960 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +void NPC_entwrap_render(class xEnt *); // size: 0x0, address: 0x2F23A0 +void NPC_entwrap_move(class xEnt *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x2F2400 +void NPC_entwrap_bupdate(class xEnt *, class xVec3 *); // size: 0x0, address: 0x2F2410 +void NPC_entwrap_update(class xEnt *, class xScene *, float); // size: 0x0, address: 0x2F2420 +signed int NPC_entwrap_event(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x2F23B0 +void NPC_entwrap_reset(class xEnt *); // size: 0x0, address: 0x2F2520 +void NPC_entwrap_setup(class xEnt *); // size: 0x0, address: 0x2F2530 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x54 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xSurface { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* doEffect)(class xEnt *, class xScene *, float, void *); // offset 0x4, size 0x4 + void * fdata; // offset 0x8, size 0x4 + class xFFX * next; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F23A0 -> 0x002F23B0 +*/ +// Range: 0x2F23A0 -> 0x2F23B0 +void NPC_entwrap_render(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F23A0 -> 0x2F23B0 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F23B0 -> 0x002F23F8 +*/ +// Range: 0x2F23B0 -> 0x2F23F8 +signed int NPC_entwrap_event(class xBase * from /* r3 */, class xBase * to /* r2 */, unsigned int toEvent /* r6 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F23B0 -> 0x2F23F8 + signed int used; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2400 -> 0x002F2410 +*/ +// Range: 0x2F2400 -> 0x2F2410 +void NPC_entwrap_move(class xEnt * ent /* r2 */, class xScene * xscn /* r2 */, float dt /* r29 */, class xEntFrame * frm /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2400 -> 0x2F2410 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2410 -> 0x002F2420 +*/ +// Range: 0x2F2410 -> 0x2F2420 +void NPC_entwrap_bupdate(class xEnt * ent /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2410 -> 0x2F2420 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2420 -> 0x002F2514 +*/ +// Range: 0x2F2420 -> 0x2F2514 +void NPC_entwrap_update(class xEnt * ent /* r17 */, class xScene * xscn /* r16 */, float dt_caller /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2420 -> 0x2F2514 + class xNPCBasic * npc; // r2 + float dt; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2520 -> 0x002F2530 +*/ +// Range: 0x2F2520 -> 0x2F2530 +void NPC_entwrap_reset(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2520 -> 0x2F2530 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2530 -> 0x002F2540 +*/ +// Range: 0x2F2530 -> 0x2F2540 +void NPC_entwrap_setup(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2530 -> 0x2F2540 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2540 -> 0x002F2554 +*/ +// Range: 0x2F2540 -> 0x2F2554 +void NewTime(class xNPCBasic * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2540 -> 0x2F2554 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2560 -> 0x002F2568 +*/ +// Range: 0x2F2560 -> 0x2F2568 +void CollideReview() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2560 -> 0x2F2568 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2570 -> 0x002F2844 +*/ +// Range: 0x2F2570 -> 0x2F2844 +void Process(class xNPCBasic * this /* r18 */, class xScene * xscn /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2570 -> 0x2F2844 + class xEnt * ent; // r2 + signed int hasgrav; // r16 + void (* bak_bupdate)(class xEnt *, class xVec3 *); // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2850 -> 0x002F2958 +*/ +// Range: 0x2F2850 -> 0x2F2958 +static void NPC_spdBasedColFreq(class xNPCBasic * npc /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2850 -> 0x2F2958 + class xVec3 delt; // r29 + float d; // r29+0x10 + signed int nf; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2960 -> 0x002F2A28 +*/ +// Range: 0x2F2960 -> 0x2F2A28 +static void NPC_alwaysUseSphere(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2960 -> 0x2F2A28 + class xNPCBasic * npc; // r2 + class xVec3 bndcent; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2A30 -> 0x002F2B8C +*/ +// Range: 0x2F2A30 -> 0x2F2B8C +void Reset(class xNPCBasic * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2A30 -> 0x2F2B8C + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2B90 -> 0x002F2E28 +*/ +// Range: 0x2F2B90 -> 0x2F2E28 +void Init(class xNPCBasic * this /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2B90 -> 0x2F2E28 + class xEnt * ent; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xNPCBasic.h b/dwarf/SB/Core/x/xNPCBasic.h new file mode 100644 index 000000000..13acf55b2 --- /dev/null +++ b/dwarf/SB/Core/x/xNPCBasic.h @@ -0,0 +1,210 @@ +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FC90 -> 0x0014FC98 +*/ +// Range: 0x14FC90 -> 0x14FC98 +signed int SelfType(class xNPCBasic * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FC90 -> 0x14FC98 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00199C40 -> 0x00199C48 +*/ +// Range: 0x199C40 -> 0x199C48 +void Load() { + // Blocks + /* anonymous block */ { + // Range: 0x199C40 -> 0x199C48 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019A3A0 -> 0x0019A3A8 +*/ +// Range: 0x19A3A0 -> 0x19A3A8 +void Save() { + // Blocks + /* anonymous block */ { + // Range: 0x19A3A0 -> 0x19A3A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADED0 -> 0x002ADED8 +*/ +// Range: 0x2ADED0 -> 0x2ADED8 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADED0 -> 0x2ADED8 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADEE0 -> 0x002ADEE8 +*/ +// Range: 0x2ADEE0 -> 0x2ADEE8 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADEE0 -> 0x2ADEE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADEF0 -> 0x002ADEF8 +*/ +// Range: 0x2ADEF0 -> 0x2ADEF8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADEF0 -> 0x2ADEF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADF00 -> 0x002ADF08 +*/ +// Range: 0x2ADF00 -> 0x2ADF08 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADF00 -> 0x2ADF08 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADF10 -> 0x002ADF18 +*/ +// Range: 0x2ADF10 -> 0x2ADF18 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADF10 -> 0x2ADF18 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCB50 -> 0x002CCB58 +*/ +// Range: 0x2CCB50 -> 0x2CCB58 +void PostSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCB50 -> 0x2CCB58 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD470 -> 0x002CD478 +*/ +// Range: 0x2CD470 -> 0x2CD478 +void PostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD470 -> 0x2CD478 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD480 -> 0x002CD488 +*/ +// Range: 0x2CD480 -> 0x2CD488 +void Render(class xNPCBasic * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD480 -> 0x2CD488 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2360 -> 0x002F2368 +*/ +// Range: 0x2F2360 -> 0x2F2368 +void Setup() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2360 -> 0x2F2368 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2370 -> 0x002F2378 +*/ +// Range: 0x2F2370 -> 0x2F2378 +void BUpdate(class xNPCBasic * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2370 -> 0x2F2378 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2380 -> 0x002F2388 +*/ +// Range: 0x2F2380 -> 0x2F2388 +void Move() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2380 -> 0x2F2388 + } +} + +/* + Compile unit: C:\SB\Core\x\xNPCBasic.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2390 -> 0x002F2398 +*/ +// Range: 0x2F2390 -> 0x2F2398 +signed int SysEvent() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2390 -> 0x2F2398 + } +} + diff --git a/dwarf/SB/Core/x/xPTankPool.h b/dwarf/SB/Core/x/xPTankPool.h new file mode 100644 index 000000000..e60883147 --- /dev/null +++ b/dwarf/SB/Core/x/xPTankPool.h @@ -0,0 +1,60 @@ +/* + Compile unit: C:\SB\Core\x\xPTankPool.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FC960 -> 0x002FC9F8 +*/ +// Range: 0x2FC960 -> 0x2FC9F8 +void lock_block(class ptank_pool__pos_color_size_uv2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FC960 -> 0x2FC9F8 + class RpPTankLockStruct ls_color; // r29+0x38 + class RpPTankLockStruct ls_pos; // r29+0x30 + class RpPTankLockStruct ls_size; // r29+0x28 + class RpPTankLockStruct ls_uv; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xPTankPool.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FCA00 -> 0x002FCA64 +*/ +// Range: 0x2FCA00 -> 0x2FCA64 +void unlock_block(class ptank_pool * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FCA00 -> 0x2FCA64 + } +} + +/* + Compile unit: C:\SB\Core\x\xPTankPool.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FCA70 -> 0x002FCA7C +*/ +// Range: 0x2FCA70 -> 0x2FCA7C +unsigned char valid(class ptank_pool * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FCA70 -> 0x2FCA7C + } +} + +/* + Compile unit: C:\SB\Core\x\xPTankPool.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FCA80 -> 0x002FCA94 +*/ +// Range: 0x2FCA80 -> 0x2FCA94 +unsigned char at_block_end(class ptank_pool * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FCA80 -> 0x2FCA94 + } +} + diff --git a/dwarf/SB/Core/x/xPad.cpp b/dwarf/SB/Core/x/xPad.cpp new file mode 100644 index 000000000..d333f45e3 --- /dev/null +++ b/dwarf/SB/Core/x/xPad.cpp @@ -0,0 +1,216 @@ +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class _tagxRumble mRumbleList[32]; // size: 0x200, address: 0x568C70 +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +class _tagxPad * gDebugPad; // size: 0x4, address: 0x50FA68 +class _tagxPad * gPlayerPad; // size: 0x4, address: 0x50FA6C +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3400 -> 0x001F35C0 +*/ +// Range: 0x1F3400 -> 0x1F35C0 +signed int xPadAddRumble(signed int idx /* r2 */, enum _tagRumbleType type /* r21 */, float time /* r20 */, signed int replace /* r2 */, unsigned int fxflags /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F3400 -> 0x1F35C0 + signed int appended; // r19 + class _tagxPad * pad; // r18 + class _tagxRumble * r; // r3 + class _tagxRumble * last_r; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F35C0 -> 0x001F3648 +*/ +// Range: 0x1F35C0 -> 0x1F3648 +void xPadDestroyRumbleChain(signed int idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F35C0 -> 0x1F3648 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3650 -> 0x001F3658 +*/ +// Range: 0x1F3650 -> 0x1F3658 +void xPadKill() { + // Blocks + /* anonymous block */ { + // Range: 0x1F3650 -> 0x1F3658 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3660 -> 0x001F3910 +*/ +// Range: 0x1F3660 -> 0x1F3910 +void xPadNormalizeAnalog(class _tagxPad & pad /* r2 */, signed int inner_zone /* r22 */, signed int outer_zone /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F3660 -> 0x1F3910 + class _tagPadAnalog * src; // r20 + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3910 -> 0x001F3F98 +*/ +// Range: 0x1F3910 -> 0x1F3F98 +signed int xPadUpdate(signed int idx /* r16 */, float time_passed /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F3910 -> 0x1F3F98 + unsigned int new_on; // r29+0x4C + class _tagxPad * p; // r16 + class _tagxRumble * r; // r17 + signed int ret; // r2 + unsigned int fake_dpad; // r4 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3FA0 -> 0x001F4074 +*/ +// Range: 0x1F3FA0 -> 0x1F4074 +void xPadRumbleEnable(signed int idx /* r2 */, signed int enable /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F3FA0 -> 0x1F4074 + class _tagxPad * p; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4080 -> 0x001F4190 +*/ +// Range: 0x1F4080 -> 0x1F4190 +class _tagxPad * xPadEnable(signed int idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4080 -> 0x1F4190 + class _tagxPad * p; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xPad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4190 -> 0x001F41F4 +*/ +// Range: 0x1F4190 -> 0x1F41F4 +signed int xPadInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F4190 -> 0x1F41F4 + } +} + diff --git a/dwarf/SB/Core/x/xPar.cpp b/dwarf/SB/Core/x/xPar.cpp new file mode 100644 index 000000000..0bcb3aae8 --- /dev/null +++ b/dwarf/SB/Core/x/xPar.cpp @@ -0,0 +1,96 @@ +/* + Compile unit: C:\SB\Core\x\xPar.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xPar gParPool[2000]; // size: 0x2EE00, address: 0x569390 +class xPar * gParDead; // size: 0x4, address: 0x50FA70 +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xParEmitterAsset { + // total size: 0x0 +}; + +/* + Compile unit: C:\SB\Core\x\xPar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4200 -> 0x001F4280 +*/ +// Range: 0x1F4200 -> 0x1F4280 +void xParInit(class xPar * p /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4200 -> 0x1F4280 + } +} + +/* + Compile unit: C:\SB\Core\x\xPar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4280 -> 0x001F42D4 +*/ +// Range: 0x1F4280 -> 0x1F42D4 +void xParFree(class xPar * par /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4280 -> 0x1F42D4 + } +} + +/* + Compile unit: C:\SB\Core\x\xPar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F42E0 -> 0x001F4320 +*/ +// Range: 0x1F42E0 -> 0x1F4320 +class xPar * xParAlloc() { + // Blocks + /* anonymous block */ { + // Range: 0x1F42E0 -> 0x1F4320 + } +} + +/* + Compile unit: C:\SB\Core\x\xPar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4320 -> 0x001F436C +*/ +// Range: 0x1F4320 -> 0x1F436C +void xParMemInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F4320 -> 0x1F436C + signed int i; // r5 + } +} + diff --git a/dwarf/SB/Core/x/xParCmd.cpp b/dwarf/SB/Core/x/xParCmd.cpp new file mode 100644 index 000000000..d8bfa427a --- /dev/null +++ b/dwarf/SB/Core/x/xParCmd.cpp @@ -0,0 +1,841 @@ +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class xCmdInfo sCmdInfo[35]; // size: 0x1A4, address: 0x598190 +float cosSinPolynomial[]; // size: 0x0, address: 0x416DE0 +void xParCmd_DampenSpeed_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F49B0 +void xParCmd_SizeInOut_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4850 +void xParCmd_AlphaInOut_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4670 +void xParCmd_Shaper_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4370 +void xParCmdCollideFallSticky_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4A20 +void xParCmdCollideFall_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4AC0 +void xParCmdScale_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5670 +void xParCmdSmokeAlpha_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5680 +void xParCmdRotateAround_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4F90 +void xParCmdRotPar_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F51B0 +void xParCmdApplyWind_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F53B0 +void xParCmdAlpha3rdPolyReg_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5660 +void xParCmdAge_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5BB0 +void xParCmdRandomVelocityPar_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5410 +void xParCmdTexAnim_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4B40 +void xParCmdTex_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F4F80 +void xParCmdScale3rdPolyReg_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5690 +void xParCmdMoveRandomPar_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F56A0 +void xParCmdOrbitLine_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5910 +void xParCmdOrbitPoint_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5A20 +void xParCmdFollow_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5AF0 +void xParCmdKillSlow_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5BF0 +void xParCmdVelocityApply_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5150 +void xParCmdAccelerate_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F58B0 +void xParCmdMoveRandom_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5750 +void xParCmdMove_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x1F5850 +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class xCmdInfo { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + void (* func)(class xParCmd *, class xParGroup *, float); // offset 0x8, size 0x4 +}; +class xParCmdMove : public xParCmdAsset { + // total size: 0x14 +public: + class xVec3 dir; // offset 0x8, size 0xC +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xParCmdSizeInOutData : public xParCmdAsset { + // total size: 0x18 +public: + float custSize[4]; // offset 0x8, size 0x10 +}; +class xParCmdCollideFallSticky : public xParCmdCollideFall { + // total size: 0x14 +public: + float sticky; // offset 0x10, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class xParCmdFollow : public xParCmdAsset { + // total size: 0x10 +public: + float gravity; // offset 0x8, size 0x4 + float epsilon; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xParCmdKillSlow : public xParCmdAsset { + // total size: 0x10 +public: + float speedLimitSqr; // offset 0x8, size 0x4 + unsigned int kill_less_than; // offset 0xC, size 0x4 +}; +class xParCmdDampenData : public xParCmdAsset { + // total size: 0xC +public: + float dampSpeed; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xParCmdRandomVelocityPar : public xParCmdAsset { + // total size: 0x14 +public: + float x; // offset 0x8, size 0x4 + float y; // offset 0xC, size 0x4 + float z; // offset 0x10, size 0x4 +}; +class xParCmdOrbitLine : public xParCmdAsset { + // total size: 0x2C +public: + class xVec3 p; // offset 0x8, size 0xC + class xVec3 axis; // offset 0x14, size 0xC + float gravity; // offset 0x20, size 0x4 + float epsilon; // offset 0x24, size 0x4 + float maxRadiusSqr; // offset 0x28, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xParCmdAlphaInOutData : public xParCmdAsset { + // total size: 0x18 +public: + float custAlpha[4]; // offset 0x8, size 0x10 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xParCmdAccelerate : public xParCmdAsset { + // total size: 0x14 +public: + class xVec3 acc; // offset 0x8, size 0xC +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParCmdRotPar : public xParCmdAsset { + // total size: 0x20 +public: + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xParCmdOrbitPoint : public xParCmdAsset { + // total size: 0x20 +public: + class xVec3 center; // offset 0x8, size 0xC + float gravity; // offset 0x14, size 0x4 + float epsilon; // offset 0x18, size 0x4 + float maxRadiusSqr; // offset 0x1C, size 0x4 +}; +class xParCmdCollideFall : public xParCmdAsset { + // total size: 0x10 +public: + float y; // offset 0x8, size 0x4 + float bounce; // offset 0xC, size 0x4 +}; +class xParCmdTexAnim : public xParCmdAsset { + // total size: 0x18 +public: + unsigned char anim_mode; // offset 0x8, size 0x1 + unsigned char anim_wrap_mode; // offset 0x9, size 0x1 + unsigned char pad_anim; // offset 0xA, size 0x1 + unsigned char throttle_spd_less_than; // offset 0xB, size 0x1 + float throttle_spd_sqr; // offset 0xC, size 0x4 + float throttle_time; // offset 0x10, size 0x4 + float throttle_time_elapsed; // offset 0x14, size 0x4 +}; +class xParCmdShaperData : public xParCmdAsset { + // total size: 0x30 +public: + float custAlpha[4]; // offset 0x8, size 0x10 + float custSize[4]; // offset 0x18, size 0x10 + float dampSpeed; // offset 0x28, size 0x4 + float gravity; // offset 0x2C, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xParCmdMoveRandomPar : public xParCmdAsset { + // total size: 0x14 +public: + class xVec3 dim; // offset 0x8, size 0xC +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xParCmdRotateAround : public xParCmdAsset { + // total size: 0x20 +public: + class xVec3 pos; // offset 0x8, size 0xC + float unused1; // offset 0x14, size 0x4 + float radius_growth; // offset 0x18, size 0x4 + float yaw; // offset 0x1C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4370 -> 0x001F4670 +*/ +// Range: 0x1F4370 -> 0x1F4670 +void xParCmd_Shaper_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4370 -> 0x1F4670 + class xPar * p; // r5 + class xParCmdShaperData * cmd; // r6 + float damp; // r1 + float grav; // r29+0x20 + signed int doalpha; // r4 + signed int dosize; // r3 + signed int i; // r9 + signed int seg; // r10 + float slope_alfa[3]; // r29+0x10 + float slope_size[3]; // r29 + float frac; // r11 + float alfa; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4670 -> 0x001F4848 +*/ +// Range: 0x1F4670 -> 0x1F4848 +void xParCmd_AlphaInOut_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4670 -> 0x1F4848 + class xPar * p; // r8 + class xParCmdAlphaInOutData * cmd; // r7 + signed int i; // r6 + signed int seg; // r5 + float slope_alfa[3]; // r29 + float frac; // r8 + float alfa; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4850 -> 0x001F49B0 +*/ +// Range: 0x1F4850 -> 0x1F49B0 +void xParCmd_SizeInOut_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4850 -> 0x1F49B0 + class xPar * p; // r7 + class xParCmdSizeInOutData * cmd; // r6 + signed int i; // r5 + signed int seg; // r4 + float slope_size[3]; // r29 + float frac; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F49B0 -> 0x001F4A20 +*/ +// Range: 0x1F49B0 -> 0x1F4A20 +void xParCmd_DampenSpeed_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F49B0 -> 0x1F4A20 + class xPar * p; // r3 + class xParCmdDampenData * cmd; // r4 + float damp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4A20 -> 0x001F4AC0 +*/ +// Range: 0x1F4A20 -> 0x1F4AC0 +void xParCmdCollideFallSticky_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4A20 -> 0x1F4AC0 + class xParCmdCollideFallSticky & cmd; // r6 + float xzdamp; // r4 + class xPar * p; // r5 + float & loc; // r4 + float & vel; // r3 + float dloc; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4AC0 -> 0x001F4B38 +*/ +// Range: 0x1F4AC0 -> 0x1F4B38 +void xParCmdCollideFall_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4AC0 -> 0x1F4B38 + class xParCmdCollideFall & cmd; // r6 + class xPar * p; // r5 + float & loc; // r4 + float & vel; // r3 + float dloc; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4B40 -> 0x001F4F74 +*/ +// Range: 0x1F4B40 -> 0x1F4F74 +void xParCmdTexAnim_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4B40 -> 0x1F4F74 + class xPar * p; // r17 + class xParCmdTexAnim * cmd; // r6 + class xParCmdTex * tex; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4F80 -> 0x001F4F88 +*/ +// Range: 0x1F4F80 -> 0x1F4F88 +void xParCmdTex_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x1F4F80 -> 0x1F4F88 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F4F90 -> 0x001F5144 +*/ +// Range: 0x1F4F90 -> 0x1F5144 +void xParCmdRotateAround_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29+0x130 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F4F90 -> 0x1F5144 + class xPar * p; // r21 + class xParCmdRotateAround * cmd; // r20 + float yaw; // r22 + float radius_growth; // r21 + class xVec3 at; // r29+0x120 + class xMat3x3 lookmat; // r29+0xE0 + float radius; // r20 + class xVec3 angles; // r29+0x110 + class xMat3x3 rotmat; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5150 -> 0x001F51A8 +*/ +// Range: 0x1F5150 -> 0x1F51A8 +void xParCmdVelocityApply_Update(class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5150 -> 0x1F51A8 + class xPar * p; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F51B0 -> 0x001F53A4 +*/ +// Range: 0x1F51B0 -> 0x1F53A4 +void xParCmdRotPar_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r26 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F51B0 -> 0x1F53A4 + class xPar * p; // r16 + class xParCmdRotPar * cmd; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F53B0 -> 0x001F5410 +*/ +// Range: 0x1F53B0 -> 0x1F5410 +void xParCmdApplyWind_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F53B0 -> 0x1F5410 + class xPar * p; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5410 -> 0x001F5654 +*/ +// Range: 0x1F5410 -> 0x1F5654 +void xParCmdRandomVelocityPar_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r16 */, float dt /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5410 -> 0x1F5654 + class xPar * p; // r7 + class xParCmdRandomVelocityPar * cmd; // r3 + class xVec3 rot; // r29+0x40 + class xVec3 * velvec; // r6 + unsigned int uvelx; // r5 + unsigned int uvely; // r4 + unsigned int uvelz; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5660 -> 0x001F5668 +*/ +// Range: 0x1F5660 -> 0x1F5668 +void xParCmdAlpha3rdPolyReg_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x1F5660 -> 0x1F5668 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5670 -> 0x001F5678 +*/ +// Range: 0x1F5670 -> 0x1F5678 +void xParCmdScale_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x1F5670 -> 0x1F5678 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5680 -> 0x001F5688 +*/ +// Range: 0x1F5680 -> 0x1F5688 +void xParCmdSmokeAlpha_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x1F5680 -> 0x1F5688 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5690 -> 0x001F5698 +*/ +// Range: 0x1F5690 -> 0x1F5698 +void xParCmdScale3rdPolyReg_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x1F5690 -> 0x1F5698 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F56A0 -> 0x001F5748 +*/ +// Range: 0x1F56A0 -> 0x1F5748 +void xParCmdMoveRandomPar_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F56A0 -> 0x1F5748 + class xPar * p; // r16 + class xParCmdMoveRandomPar * cmd; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5750 -> 0x001F584C +*/ +// Range: 0x1F5750 -> 0x1F584C +void xParCmdMoveRandom_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r17 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5750 -> 0x1F584C + class xPar * p; // r4 + class xParCmdMove * cmd; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5850 -> 0x001F58B0 +*/ +// Range: 0x1F5850 -> 0x1F58B0 +void xParCmdMove_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5850 -> 0x1F58B0 + class xPar * p; // r4 + class xParCmdMove * cmd; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F58B0 -> 0x001F5910 +*/ +// Range: 0x1F58B0 -> 0x1F5910 +void xParCmdAccelerate_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F58B0 -> 0x1F5910 + class xPar * p; // r4 + class xParCmdAccelerate * cmd; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5910 -> 0x001F5A20 +*/ +// Range: 0x1F5910 -> 0x1F5A20 +void xParCmdOrbitLine_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5910 -> 0x1F5A20 + class xPar * p; // r4 + class xParCmdOrbitLine * cmd; // r3 + float mdt; // r29 + float force; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5A20 -> 0x001F5AE8 +*/ +// Range: 0x1F5A20 -> 0x1F5AE8 +void xParCmdOrbitPoint_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5A20 -> 0x1F5AE8 + class xPar * p; // r4 + class xParCmdOrbitPoint * cmd; // r3 + float mdt; // r7 + float force; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5AF0 -> 0x001F5BB0 +*/ +// Range: 0x1F5AF0 -> 0x1F5BB0 +void xParCmdFollow_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5AF0 -> 0x1F5BB0 + class xPar * p; // r5 + class xParCmdFollow * cmd; // r4 + float mdt; // r7 + float force; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5BB0 -> 0x001F5BE8 +*/ +// Range: 0x1F5BB0 -> 0x1F5BE8 +void xParCmdAge_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5BB0 -> 0x1F5BE8 + class xPar * p; // r4 + float age_rate; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5BF0 -> 0x001F5CA0 +*/ +// Range: 0x1F5BF0 -> 0x1F5CA0 +void xParCmdKillSlow_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5BF0 -> 0x1F5CA0 + class xPar * p; // r4 + class xParCmdKillSlow * cmd; // r3 + float speedLimit; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5CA0 -> 0x001F5D00 +*/ +// Range: 0x1F5CA0 -> 0x1F5D00 +void (* xParCmdGetUpdateFunc(unsigned int parType /* r2 */))(class xParCmd *, class xParGroup *, float) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5CA0 -> 0x1F5D00 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5D00 -> 0x001F5D60 +*/ +// Range: 0x1F5D00 -> 0x1F5D60 +unsigned int xParCmdGetSize(unsigned int parType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5D00 -> 0x1F5D60 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5D60 -> 0x001F5DA0 +*/ +// Range: 0x1F5D60 -> 0x1F5DA0 +void xParCmdRegister(unsigned int parType /* r2 */, unsigned int size /* r2 */, void (* func)(class xParCmd *, class xParGroup *, float) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F5D60 -> 0x1F5DA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F5DA0 -> 0x001F6174 +*/ +// Range: 0x1F5DA0 -> 0x1F6174 +void xParCmdInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F5DA0 -> 0x1F6174 + } +} + diff --git a/dwarf/SB/Core/x/xParEmitter.cpp b/dwarf/SB/Core/x/xParEmitter.cpp new file mode 100644 index 000000000..71fa5a728 --- /dev/null +++ b/dwarf/SB/Core/x/xParEmitter.cpp @@ -0,0 +1,1920 @@ +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xParEmitterAsset sSaveEmmiterSettings; // size: 0x54, address: 0x5CE8B0 +static class xParEmitterPropsAsset sSaveEmmiterPropSettings; // size: 0x138, address: 0x5CE910 +static class xParEmitterPropsAsset sDummyProp; // size: 0x138, address: 0x5CEA50 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +signed int xParEmitterEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x2FDD30 +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FCAA0 -> 0x002FCAA8 +*/ +// Range: 0x2FCAA0 -> 0x2FCAA8 +void xParEmitterDestroy() { + // Blocks + /* anonymous block */ { + // Range: 0x2FCAA0 -> 0x2FCAA8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FCAB0 -> 0x002FCAEC +*/ +// Range: 0x2FCAB0 -> 0x2FCAEC +void xParEmitterUpdate(class xBase * to /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FCAB0 -> 0x2FCAEC + class xParEmitter * pe; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FCAF0 -> 0x002FD680 +*/ +// Range: 0x2FCAF0 -> 0x2FD680 +class xPar * xParEmitterEmit(class xParEmitter * pe /* r20 */, float emit_dt /* r20 */, float par_dt /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FCAF0 -> 0x2FD680 + class xPar * last_p; // r29+0x140 + class xParEmitterAsset * pea; // r21 + class xParEmitterPropsAsset * prop; // r22 + signed int rate_has_elapsed; // r2 + float rate; // r29+0x190 + signed int count; // r29+0x130 + class xParSys * ps; // r29+0x120 + class xPar * p; // r19 + float life; // r23 + float size_birth; // r25 + float size_death; // r29+0x190 + class xVec3 emitPosition; // r29+0x180 + class xBase * attachObject; // r29+0x110 + signed int attachGroupIndex; // r29+0x100 + signed int attachGroupTotal; // r29+0xF0 + signed int emitAgain; // r29+0xE0 + class xBase * emitObj; // r23 + signed int marker; // r17 + class xGroup * g; // r2 + unsigned int get_rnd_group_idx; // r16 + class xEnt * attach_ent; // r30 + class xMat4x3 * bone_mat; // r29+0xD0 + class xVec3 bone_vel; // r29+0x170 + signed int i; // r29+0xC0 + signed int c; // r18 + float fc1; // r25 + float fc2; // r29+0x190 + class xBase * obj; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FD680 -> 0x002FD73C +*/ +// Range: 0x2FD680 -> 0x2FD73C +class xPar * xParEmitterEmitSetTexIdxs(class xPar * p /* r17 */, class xParSys * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FD680 -> 0x2FD73C + class xParCmdTex * tex; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FD740 -> 0x002FD8D4 +*/ +// Range: 0x2FD740 -> 0x2FD8D4 +float xParInterpCompute(signed int interp_mode /* r2 */, class xParInterp * r /* r16 */, float time /* r29+0x30 */, signed int time_has_elapsed /* r2 */, float lastVal /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FD740 -> 0x2FD8D4 + float val; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FD8E0 -> 0x002FDD30 +*/ +// Range: 0x2FD8E0 -> 0x2FDD30 +class xPar * xParEmitterEmitCustom(class xParEmitter * p /* r20 */, float dt /* r20 */, class xParEmitterCustomSettings * info /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FD8E0 -> 0x2FDD30 + unsigned int flags; // r18 + class xParEmitterAsset * pe; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FDD30 -> 0x002FDDF4 +*/ +// Range: 0x2FDD30 -> 0x2FDDF4 +signed int xParEmitterEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FDD30 -> 0x2FDDF4 + class xParEmitter * t; // r16 + class xParEmitterCustomSettings fake_settings; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FDE00 -> 0x002FDED8 +*/ +// Range: 0x2FDE00 -> 0x2FDED8 +void xParEmitterSetup(class xParEmitter * t /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FDE00 -> 0x2FDED8 + class xEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FDEE0 -> 0x002FE1A8 +*/ +// Range: 0x2FDEE0 -> 0x2FE1A8 +void xParEmitterInit(class xBase * b /* r18 */, class xParEmitterAsset * pea /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FDEE0 -> 0x2FE1A8 + class xParEmitterPropsAsset * prop; // r16 + class xParEmitter * t; // r2 + signed int i; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE1B0 -> 0x002FE1B8 +*/ +// Range: 0x2FE1B0 -> 0x2FE1B8 +void xParEmitterInit(void * b /* r2 */, void * tasset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE1B0 -> 0x2FE1B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE1C0 -> 0x002FE2E4 +*/ +// Range: 0x2FE1C0 -> 0x2FE2E4 +signed int xParInterpConvertInterpMode(class xParInterp * p /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE1C0 -> 0x2FE2E4 + } +} + diff --git a/dwarf/SB/Core/x/xParEmitterType.cpp b/dwarf/SB/Core/x/xParEmitterType.cpp new file mode 100644 index 000000000..9117177cf --- /dev/null +++ b/dwarf/SB/Core/x/xParEmitterType.cpp @@ -0,0 +1,1565 @@ +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xVolumeAsset { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class _xMat2x2 { + // total size: 0x10 +public: + class xVec2 right; // offset 0x0, size 0x8 + class xVec2 up; // offset 0x8, size 0x8 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE390 -> 0x002FED2C +*/ +// Range: 0x2FE390 -> 0x2FED2C +void xParEmitterEmitEntBound(class xPar * p /* r20 */, class xParEmitterAsset * a /* r19 */, float dt /* r23 */, class xEnt * ent /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE390 -> 0x2FED2C + class xPEEntBound & region; // r17 + class xMat4x3 & mat; // r16 + class xVec3 offset; // r29+0x1C0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FEE80 -> 0x002FF5E0 +*/ +// Range: 0x2FEE80 -> 0x2FF5E0 +void xParEmitterEmitEntBone(class xPar * p /* r19 */, class xParEmitterAsset * a /* r18 */, float dt /* r22 */, class xMat4x3 & mat /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FEE80 -> 0x2FF5E0 + class xPEEntBone & region; // r16 + class xVec3 offset; // r29+0x220 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FF5E0 -> 0x002FF720 +*/ +// Range: 0x2FF5E0 -> 0x2FF720 +void xParEmitterTransformEntBone(class xVec3 & loc /* r18 */, class xVec3 & vel /* r2 */, class xParEmitterAsset & a /* r2 */, class xMat4x3 & mat /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FF5E0 -> 0x2FF720 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FF720 -> 0x002FF8AC +*/ +// Range: 0x2FF720 -> 0x2FF8AC +class xMat4x3 * xParEmitterTransformEntBone(class xVec3 & loc /* r20 */, class xVec3 & vel /* r19 */, class xParEmitterAsset & a /* r18 */, class xEnt & ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FF720 -> 0x2FF8AC + class xMat4x3 & root_mat; // r17 + class xMat4x3 * mat; // r2 + class xMat4x3 buffer_mat; // @ 0x005CEB90 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FF8B0 -> 0x002FFA0C +*/ +// Range: 0x2FF8B0 -> 0x2FFA0C +void xParEmitterEmitOCircle(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FF8B0 -> 0x2FFA0C + float rr; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FFA10 -> 0x002FFB54 +*/ +// Range: 0x2FFA10 -> 0x2FFB54 +void xParEmitterEmitOCircleEdge(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FFA10 -> 0x2FFB54 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FFB60 -> 0x002FFDA0 +*/ +// Range: 0x2FFB60 -> 0x2FFDA0 +void xParEmitterEmitVCylEdge(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FFB60 -> 0x2FFDA0 + float ang; // r21 + class xVec2 dir; // r29+0xA8 + class xVec2 offset; // r29+0xA0 + float deflect; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FFDA0 -> 0x002FFF34 +*/ +// Range: 0x2FFDA0 -> 0x2FFF34 +void xParEmitterEmitOffsetPoint(class xParEmitter * pe /* r8 */, class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FFDA0 -> 0x2FFF34 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FFF40 -> 0x003001B8 +*/ +// Range: 0x2FFF40 -> 0x3001B8 +void xParEmitterEmitEntity(class xPar * p /* r19 */, class xParEmitterAsset * a /* r18 */, float dt /* r20 */, class xEnt * ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FFF40 -> 0x3001B8 + unsigned int size; // r16 + class xModelInstance * model; // r3 + class xVec3 loc; // r29+0xC0 + unsigned int which; // r2 + class xModelInstance * model; // r6 + unsigned int size; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003001C0 -> 0x003003AC +*/ +// Range: 0x3001C0 -> 0x3003AC +void xParEmitterEmitVolume(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r29+0x90 */, class xVolume * vol /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3001C0 -> 0x3003AC + class xBound * b; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003003B0 -> 0x00300728 +*/ +// Range: 0x3003B0 -> 0x300728 +void xParEmitterEmitSphereEdge(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r29+0xE0 */, signed int subtype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3003B0 -> 0x300728 + class xVec3 dirvec; // r29+0xD0 + class xVec3 offset; // r29+0xC0 + class xMat3x3 mat_rot; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00300730 -> 0x003009EC +*/ +// Range: 0x300730 -> 0x3009EC +void xParEmitterEmitSphere(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r29+0xE0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x300730 -> 0x3009EC + float yaw; // r21 + float pitch; // r20 + class xVec3 dir; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003009F0 -> 0x00300D48 +*/ +// Range: 0x3009F0 -> 0x300D48 +void xParEmitterEmitLine(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r29+0xE0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3009F0 -> 0x300D48 + class xVec3 vec; // r29+0xD0 + float len; // r20 + float rand_len; // r3 + float yaw; // r21 + float pitch; // r20 + class xVec3 dir; // r29+0xC0 + float rr; // r29+0xE0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00300D50 -> 0x00300F4C +*/ +// Range: 0x300D50 -> 0x300F4C +void xParEmitterEmitRectEdge(class xPar * p /* r16 */, class xParEmitterAsset * a /* r17 */, float dt /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x300D50 -> 0x300F4C + float rand; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00300F50 -> 0x003010FC +*/ +// Range: 0x300F50 -> 0x3010FC +void xParEmitterEmitRect(class xPar * p /* r16 */, class xParEmitterAsset * a /* r17 */, float dt /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x300F50 -> 0x3010FC + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301100 -> 0x00301384 +*/ +// Range: 0x301100 -> 0x301384 +void xParEmitterEmitCircle(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301100 -> 0x301384 + float rot_amount; // r20 + class _xMat2x2 rot_mat; // r29+0x90 + class xVec2 vec2; // r29+0xB8 + float rr; // r29+0xC0 + float dt_radius; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301390 -> 0x00301604 +*/ +// Range: 0x301390 -> 0x301604 +void xParEmitterEmitCircleEdge(class xPar * p /* r17 */, class xParEmitterAsset * a /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301390 -> 0x301604 + float rot_amount; // r20 + class _xMat2x2 rot_mat; // r29+0x90 + class xVec2 vec2; // r29+0xB8 + float dt_radius; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301610 -> 0x0030172C +*/ +// Range: 0x301610 -> 0x30172C +static void xParEmitterAngleVariation(class xPar * p /* r16 */, class xParEmitterAsset * a /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301610 -> 0x30172C + class xMat3x3 mat_rot; // r29+0x50 + float ang_debrisCone; // r20 + float ang[3]; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Core\x\xParEmitterType.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301730 -> 0x00301884 +*/ +// Range: 0x301730 -> 0x301884 +void xParEmitterEmitPoint(class xPar * p /* r16 */, class xParEmitterAsset * a /* r2 */, float dt /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301730 -> 0x301884 + } +} + diff --git a/dwarf/SB/Core/x/xParGroup.cpp b/dwarf/SB/Core/x/xParGroup.cpp new file mode 100644 index 000000000..9b76cbea5 --- /dev/null +++ b/dwarf/SB/Core/x/xParGroup.cpp @@ -0,0 +1,333 @@ +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int sParGroupRegTableInit; // size: 0x4, address: 0x50FA74 +static signed int sParGroupRegTableCount; // size: 0x4, address: 0x50FA78 +class xParGroup * sParGroupRegTable[255]; // size: 0x3FC, address: 0x598340 +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class xParCmdTex { + // total size: 0x0 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6180 -> 0x001F6254 +*/ +// Range: 0x1F6180 -> 0x1F6254 +void xParGroupKillPar(class xParGroup * ps /* r2 */, class xPar * p /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6180 -> 0x1F6254 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6260 -> 0x001F63E0 +*/ +// Range: 0x1F6260 -> 0x1F63E0 +class xPar * xParGroupAddPar(class xParGroup * ps /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6260 -> 0x1F63E0 + class xPar * p; // r16 + signed int myPriority; // r7 + unsigned char i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F63E0 -> 0x001F64F4 +*/ +// Range: 0x1F63E0 -> 0x1F64F4 +void xParGroupAnimate(class xParGroup * ps /* r17 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F63E0 -> 0x1F64F4 + class xPar * i; // r16 + class xPar * tmp; // r2 + float age; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6500 -> 0x001F654C +*/ +// Range: 0x1F6500 -> 0x1F654C +void xParGroupKillAllParticles(class xParGroup * ps /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6500 -> 0x1F654C + class xPar * i; // r16 + class xPar * tmp; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6550 -> 0x001F6558 +*/ +// Range: 0x1F6550 -> 0x1F6558 +void xParGroupSetActive(class xParGroup * ps /* r2 */, unsigned int isActive /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6550 -> 0x1F6558 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6560 -> 0x001F65C0 +*/ +// Range: 0x1F6560 -> 0x1F65C0 +void xParGroupUnregister(class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6560 -> 0x1F65C0 + unsigned char i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F65C0 -> 0x001F66A0 +*/ +// Range: 0x1F65C0 -> 0x1F66A0 +void xParGroupRegister(class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F65C0 -> 0x1F66A0 + unsigned char i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F66A0 -> 0x001F66A8 +*/ +// Range: 0x1F66A0 -> 0x1F66A8 +void xParGroupSetPriority(class xParGroup * ps /* r2 */, unsigned char val /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F66A0 -> 0x1F66A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F66B0 -> 0x001F66B8 +*/ +// Range: 0x1F66B0 -> 0x1F66B8 +void xParGroupSetVisibility(class xParGroup * ps /* r2 */, signed int vis /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F66B0 -> 0x1F66B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F66C0 -> 0x001F66F8 +*/ +// Range: 0x1F66C0 -> 0x1F66F8 +void xParGroupSetBack2Life(class xParGroup * ps /* r2 */, signed int b2l /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F66C0 -> 0x1F66F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6700 -> 0x001F6738 +*/ +// Range: 0x1F6700 -> 0x1F6738 +void xParGroupSetAging(class xParGroup * ps /* r2 */, signed int age /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6700 -> 0x1F6738 + } +} + +/* + Compile unit: C:\SB\Core\x\xParGroup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6740 -> 0x001F6794 +*/ +// Range: 0x1F6740 -> 0x1F6794 +void xParGroupInit(class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6740 -> 0x1F6794 + } +} + diff --git a/dwarf/SB/Core/x/xParMgr.cpp b/dwarf/SB/Core/x/xParMgr.cpp new file mode 100644 index 000000000..ea008200f --- /dev/null +++ b/dwarf/SB/Core/x/xParMgr.cpp @@ -0,0 +1,52 @@ +/* + Compile unit: C:\SB\Core\x\xParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int sFrameCount; // size: 0x4, address: 0x50FA7C +static signed int sCounter; // size: 0x4, address: 0x0 +static unsigned int sParMgrIgnoreFXCounter; // size: 0x4, address: 0x0 +static signed int sParMgrInit; // size: 0x4, address: 0x50FA80 + +/* + Compile unit: C:\SB\Core\x\xParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F67A0 -> 0x001F67A8 +*/ +// Range: 0x1F67A0 -> 0x1F67A8 +void xParMgrRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1F67A0 -> 0x1F67A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F67B0 -> 0x001F6824 +*/ +// Range: 0x1F67B0 -> 0x1F6824 +void xParMgrUpdate(float elapsedTime /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F67B0 -> 0x1F6824 + } +} + +/* + Compile unit: C:\SB\Core\x\xParMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6830 -> 0x001F6874 +*/ +// Range: 0x1F6830 -> 0x1F6874 +void xParMgrInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1F6830 -> 0x1F6874 + } +} + diff --git a/dwarf/SB/Core/x/xParSys.cpp b/dwarf/SB/Core/x/xParSys.cpp new file mode 100644 index 000000000..15fa17e5e --- /dev/null +++ b/dwarf/SB/Core/x/xParSys.cpp @@ -0,0 +1,2405 @@ +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int sBlendTable[11]; // size: 0x2C, address: 0x4FF890 +static class xVec3 par_offset_right; // size: 0xC, address: 0x5CE890 +static class xVec3 par_offset_up; // size: 0xC, address: 0x5CE8A0 +static class xParSysInfo sParSysInfo[7]; // size: 0x38, address: 0x4DF990 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int xParSysEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x2FBE00 +signed int _rpPTankAtomicDataOffset; // size: 0x4, address: 0x50F128 +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class ptank_pool__pos_color_size_uv2 : public ptank_pool { + // total size: 0x38 +public: + class xVec3 * pos; // offset 0x24, size 0x4 + class iColor_tag * color; // offset 0x28, size 0x4 + class xVec2 * size; // offset 0x2C, size 0x4 + class xVec2 * uv; // offset 0x30, size 0x4 + signed int stride; // offset 0x34, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class render_state { + // total size: 0x10 +public: + class RwTexture * texture; // offset 0x0, size 0x4 + unsigned int src_blend; // offset 0x4, size 0x4 + unsigned int dst_blend; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class ptank_pool { + // total size: 0x24 +public: + class render_state rs; // offset 0x0, size 0x10 + unsigned int used; // offset 0x10, size 0x4 + class RpAtomic * ptank; // offset 0x14, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + } hide; // offset 0x18, size 0xC +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xParSysInfo { + // total size: 0x8 +public: + signed int type; // offset 0x0, size 0x4 + void (* func)(void *, class xParGroup *); // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpPTankLockStruct { + // total size: 0x8 +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FBA10 -> 0x002FBACC +*/ +// Range: 0x2FBA10 -> 0x2FBACC +void xParSysRender(class xBase * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FBA10 -> 0x2FBACC + class xParGroup * g; // r17 + class xParSys * s; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FBAD0 -> 0x002FBBAC +*/ +// Range: 0x2FBAD0 -> 0x2FBBAC +static void xParGroupUpdateR(class xParSys * s /* r19 */, class xParGroup * g /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FBAD0 -> 0x2FBBAC + unsigned int i; // r17 + class xParCmd * cmd; // r20 + void (* func)(class xParCmd *, class xParGroup *, float); // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FBBB0 -> 0x002FBE00 +*/ +// Range: 0x2FBBB0 -> 0x2FBE00 +void xParSysUpdate(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FBBB0 -> 0x2FBE00 + class xParSys * s; // r20 + class xParSys * parent; // r19 + class xParGroup * g; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FBE00 -> 0x002FBF5C +*/ +// Range: 0x2FBE00 -> 0x2FBF5C +signed int xParSysEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FBE00 -> 0x2FBF5C + class xParSys * t; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FBF60 -> 0x002FBFA0 +*/ +// Range: 0x2FBF60 -> 0x2FBFA0 +void xParSysExit(class xParSys * t /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FBF60 -> 0x2FBFA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FBFA0 -> 0x002FC004 +*/ +// Range: 0x2FBFA0 -> 0x2FC004 +void xParSysSetup(class xParSys * t /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FBFA0 -> 0x2FC004 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FC010 -> 0x002FC2DC +*/ +// Range: 0x2FC010 -> 0x2FC2DC +void xParSysInit(class xBase * b /* r20 */, class xParSysAsset * tasset /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FC010 -> 0x2FC2DC + class xParSys * t; // r2 + unsigned int i; // r18 + unsigned char * cmdPtr; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FC2E0 -> 0x002FC2E8 +*/ +// Range: 0x2FC2E0 -> 0x2FC2E8 +void xParSysInit(void * b /* r2 */, void * tasset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FC2E0 -> 0x2FC2E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FC2F0 -> 0x002FC324 +*/ +// Range: 0x2FC2F0 -> 0x2FC324 +static void render_par_sprite(void * data /* r2 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FC2F0 -> 0x2FC324 + } +} + +/* + Compile unit: C:\SB\Core\x\xParSys.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FC330 -> 0x002FC95C +*/ +// Range: 0x2FC330 -> 0x2FC95C +static void par_sprite_update(class xParSys & sys /* r2 */, class xParGroup & group /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FC330 -> 0x2FC95C + unsigned int pivot; // r10 + class xVec3 offset_right; // r29+0x100 + class xVec3 offset_up; // r29+0xF0 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x30 + class xParCmdTex * tex; // r17 + class xPar * p; // r16 + class xVec4 * _loc; // r2 + float par_dist; // r1 + class xVec3 & loc; // r9 + } +} + diff --git a/dwarf/SB/Core/x/xPartition.cpp b/dwarf/SB/Core/x/xPartition.cpp new file mode 100644 index 000000000..9a049fe17 --- /dev/null +++ b/dwarf/SB/Core/x/xPartition.cpp @@ -0,0 +1,802 @@ +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class _tagPartLink { + // total size: 0x8 +public: + void * data; // offset 0x0, size 0x4 + class _tagPartLink * next; // offset 0x4, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _tagPartSpace { + // total size: 0xC +public: + signed int total; // offset 0x0, size 0x4 + class _tagPartLink head; // offset 0x4, size 0x8 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class _tagPartition { + // total size: 0x40 +public: + class xVec3 min; // offset 0x0, size 0xC + class xVec3 max; // offset 0xC, size 0xC + class xVec3 space_dim; // offset 0x18, size 0xC + signed int total_x; // offset 0x24, size 0x4 + signed int total_y; // offset 0x28, size 0x4 + signed int total_z; // offset 0x2C, size 0x4 + class _tagPartSpace * space; // offset 0x30, size 0x4 + class _tagPartSpace global; // offset 0x34, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xVolumeAsset { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6880 -> 0x001F6888 +*/ +// Range: 0x1F6880 -> 0x1F6888 +void xPartitionDump() { + // Blocks + /* anonymous block */ { + // Range: 0x1F6880 -> 0x1F6888 + } +} + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6890 -> 0x001F6910 +*/ +// Range: 0x1F6890 -> 0x1F6910 +void xPartitionSpaceMove(class _tagPartSpace * src /* r2 */, class _tagPartSpace * dest /* r2 */, unsigned int data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6890 -> 0x1F6910 + class _tagPartLink * dest_lnk; // r9 + class _tagPartLink * src_lnk; // r8 + class _tagPartLink * src_pre; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6910 -> 0x001F6A70 +*/ +// Range: 0x1F6910 -> 0x1F6A70 +signed int xPartitionUpdate(class _tagPartition * part /* r2 */, void * data /* r8 */, signed int old_idx /* r2 */, class xVec3 * current_pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6910 -> 0x1F6A70 + signed int cur_idx; // r16 + class _tagPartSpace * src; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6A70 -> 0x001F6C38 +*/ +// Range: 0x1F6A70 -> 0x1F6C38 +signed int xPartitionInsert(class _tagPartition * part /* r2 */, void * insert_data /* r18 */, class xVec3 * insert_pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6A70 -> 0x1F6C38 + } +} + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6C40 -> 0x001F6E20 +*/ +// Range: 0x1F6C40 -> 0x1F6E20 +void xPartitionWorld(class _tagPartition * part /* r19 */, class xEnv * env /* r20 */, signed int x_spaces /* r18 */, signed int y_spaces /* r17 */, signed int z_spaces /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6C40 -> 0x1F6E20 + class xBox * bb; // r2 + float dx; // r4 + float dy; // r3 + float dz; // r1 + signed int z; // r22 + signed int y; // r21 + signed int x; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F6E20 -> 0x001F7000 +*/ +// Range: 0x1F6E20 -> 0x1F7000 +void xPartitionVolume(class _tagPartition * part /* r19 */, class xVolume * volume /* r20 */, signed int x_spaces /* r18 */, signed int y_spaces /* r17 */, signed int z_spaces /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F6E20 -> 0x1F7000 + class xBound * xb; // r2 + class xBox * bb; // r2 + float dx; // r4 + float dy; // r3 + float dz; // r1 + signed int z; // r22 + signed int y; // r21 + signed int x; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xPartition.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7000 -> 0x001F7008 +*/ +// Range: 0x1F7000 -> 0x1F7008 +void xPartitionReset() { + // Blocks + /* anonymous block */ { + // Range: 0x1F7000 -> 0x1F7008 + } +} + diff --git a/dwarf/SB/Core/x/xPtankPool.cpp b/dwarf/SB/Core/x/xPtankPool.cpp new file mode 100644 index 000000000..56dd2062a --- /dev/null +++ b/dwarf/SB/Core/x/xPtankPool.cpp @@ -0,0 +1,654 @@ +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned char inited; // size: 0x1, address: 0x510280 +static class group_data groups[2]; // size: 0x38, address: 0x4E4350 +signed int _rpPTankAtomicDataOffset; // size: 0x4, address: 0x50F128 +signed int compare_ptanks(void *, void *); // size: 0x0, address: 0x3B04E0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class ptank_context { + // total size: 0x14 +public: + class ptank_context * next; // offset 0x0, size 0x4 + class RpAtomic * ptank; // offset 0x4, size 0x4 + unsigned int flags; // offset 0x8, size 0x4 + unsigned int src_blend; // offset 0xC, size 0x4 + unsigned int dst_blend; // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class group_data { + // total size: 0x1C +public: + unsigned int max_size; // offset 0x0, size 0x4 + unsigned int create_flags; // offset 0x4, size 0x4 + class ptank_context * ptanks; // offset 0x8, size 0x4 + class ptank_context * * buckets; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + unsigned int used; // offset 0x14, size 0x4 + unsigned int buckets_used; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class ptank_pool { + // total size: 0x24 +public: + class render_state rs; // offset 0x0, size 0x10 + unsigned int used; // offset 0x10, size 0x4 + class RpAtomic * ptank; // offset 0x14, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + } hide; // offset 0x18, size 0xC +}; +class /* @class */ { + // total size: 0xC +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum ptank_group_type { + PGT_COLOR_MAT_UV2 = 0, + PGT_POS_COLOR_SIZE_UV2 = 1, + MAX_PGT = 2, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class render_state { + // total size: 0x10 +public: + class RwTexture * texture; // offset 0x0, size 0x4 + unsigned int src_blend; // offset 0x4, size 0x4 + unsigned int dst_blend; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFC10 -> 0x003AFD14 +*/ +// Range: 0x3AFC10 -> 0x3AFD14 +void flush(class ptank_pool * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AFC10 -> 0x3AFD14 + signed int oldused; // r3 + signed int expand; // r4 + signed int total; // r17 + unsigned char * it; // r16 + unsigned char * end; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AFD20 -> 0x003B0100 +*/ +// Range: 0x3AFD20 -> 0x3B0100 +void grab_block(class ptank_pool * this /* r17 */, enum ptank_group_type type /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AFD20 -> 0x3B0100 + class group_data & group; // r16 + class ptank_context * * end; // r4 + class ptank_context * * it; // r3 + class ptank_context * * it; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B0100 -> 0x003B026C +*/ +// Range: 0x3B0100 -> 0x3B026C +void xPTankPoolRender() { + // Blocks + /* anonymous block */ { + // Range: 0x3B0100 -> 0x3B026C + class group_data * g; // r19 + class group_data * endg; // r18 + class ptank_context * p; // r17 + class ptank_context * endp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B0270 -> 0x003B0344 +*/ +// Range: 0x3B0270 -> 0x3B0344 +void xPTankPoolSceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x3B0270 -> 0x3B0344 + class group_data * g; // r18 + class group_data * endg; // r17 + class ptank_context * p; // r16 + class ptank_context * endp; // r21 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B0350 -> 0x003B04D4 +*/ +// Range: 0x3B0350 -> 0x3B04D4 +void xPTankPoolSceneEnter() { + // Blocks + /* anonymous block */ { + // Range: 0x3B0350 -> 0x3B04D4 + class group_data * it; // r19 + class group_data * end; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B04E0 -> 0x003B05A0 +*/ +// Range: 0x3B04E0 -> 0x3B05A0 +static signed int compare_ptanks(void * e1 /* r2 */, void * e2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B04E0 -> 0x3B05A0 + class ptank_context * p1; // r2 + class ptank_context * p2; // r2 + class RwTexture * tex1; // r3 + class RwTexture * tex2; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B05A0 -> 0x003B0678 +*/ +// Range: 0x3B05A0 -> 0x3B0678 +static class RpAtomic * create_ptank(unsigned int flags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B05A0 -> 0x3B0678 + class RpAtomic * ptank; // r16 + class RwFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B0680 -> 0x003B0778 +*/ +// Range: 0x3B0680 -> 0x3B0778 +static void init_groups() { + // Blocks + /* anonymous block */ { + // Range: 0x3B0680 -> 0x3B0778 + unsigned int total; // r5 + class group_data * it; // r4 + class group_data * end; // r3 + unsigned char * mem; // r18 + class group_data * it; // r17 + class group_data * end; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xPtankPool.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B0780 -> 0x003B08D0 +*/ +// Range: 0x3B0780 -> 0x3B08D0 +static void sort_buckets(class group_data & group /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B0780 -> 0x3B08D0 + class ptank_context * it; // r6 + class ptank_context * endp; // r5 + class RwTexture * texture; // r4 + class ptank_context * * bucket; // r3 + class ptank_context * * end; // r10 + class ptank_context * front; // r9 + } +} + diff --git a/dwarf/SB/Core/x/xQuickCull.cpp b/dwarf/SB/Core/x/xQuickCull.cpp new file mode 100644 index 000000000..31c067b3a --- /dev/null +++ b/dwarf/SB/Core/x/xQuickCull.cpp @@ -0,0 +1,285 @@ +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xLine3 { + // total size: 0x18 +public: + class xVec3 p1; // offset 0x0, size 0xC + class xVec3 p2; // offset 0xC, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA330 -> 0x001FA35C +*/ +// Range: 0x1FA330 -> 0x1FA35C +void xQuickCullForEverything(class xQCData * q /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA330 -> 0x1FA35C + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA360 -> 0x001FA3AC +*/ +// Range: 0x1FA360 -> 0x1FA3AC +void xQuickCullForOBB(class xQCControl * ctrl /* r17 */, class xQCData * q /* r16 */, class xBox * b /* r2 */, class xMat4x3 * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA360 -> 0x1FA3AC + class xBox worldbox; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA3B0 -> 0x001FA494 +*/ +// Range: 0x1FA3B0 -> 0x1FA494 +void xQuickCullForBox(class xQCControl * ctrl /* r18 */, class xQCData * q /* r16 */, class xBox * box /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA3B0 -> 0x1FA494 + class xQCData a; // r29+0x60 + class xQCData b; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA4A0 -> 0x001FA618 +*/ +// Range: 0x1FA4A0 -> 0x1FA618 +void xQuickCullForSphere(class xQCControl * ctrl /* r17 */, class xQCData * q /* r16 */, class xSphere * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA4A0 -> 0x1FA618 + class xVec3 v1; // r29+0x80 + class xVec3 v2; // r29+0x70 + float radius_adjusted; // r1 + class xQCData a; // r29+0x50 + class xQCData b; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA620 -> 0x001FA834 +*/ +// Range: 0x1FA620 -> 0x1FA834 +void xQuickCullForRay(class xQCControl * ctrl /* r17 */, class xQCData * q /* r16 */, class xRay3 * r /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA620 -> 0x1FA834 + class xLine3 ln; // r29+0x70 + float len; // r1 + class xQCData a; // r29+0x50 + class xQCData b; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA840 -> 0x001FA920 +*/ +// Range: 0x1FA840 -> 0x1FA920 +void xQuickCullForLine(class xQCControl * ctrl /* r18 */, class xQCData * q /* r16 */, class xLine3 * ln /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA840 -> 0x1FA920 + class xQCData a; // r29+0x60 + class xQCData b; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA920 -> 0x001FAA60 +*/ +// Range: 0x1FA920 -> 0x1FAA60 +static void xQuickCullCellForVec(class xQCControl * ctrl /* r2 */, class xQCData * c /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA920 -> 0x1FAA60 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAA60 -> 0x001FAAD4 +*/ +// Range: 0x1FAA60 -> 0x1FAAD4 +void xQuickCullForBound(class xQCControl * ctrl /* r2 */, class xQCData * q /* r2 */, class xBound * b /* r7 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAA60 -> 0x1FAAD4 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAAE0 -> 0x001FAB08 +*/ +// Range: 0x1FAAE0 -> 0x1FAB08 +signed int xQuickCullIsects(class xQCData * a /* r2 */, class xQCData * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAAE0 -> 0x1FAB08 + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAB10 -> 0x001FAB2C +*/ +// Range: 0x1FAB10 -> 0x1FAB2C +void xQuickCullInit(class xQCControl * ctrl /* r2 */, class xBox * box /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAB10 -> 0x1FAB2C + } +} + +/* + Compile unit: C:\SB\Core\x\xQuickCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAB30 -> 0x001FAC2C +*/ +// Range: 0x1FAB30 -> 0x1FAC2C +void xQuickCullInit(class xQCControl * ctrl /* r2 */, float xmin /* r29 */, float ymin /* r29 */, float zmin /* r29 */, float xmax /* r29 */, float ymax /* r29 */, float zmax /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAB30 -> 0x1FAC2C + } +} + diff --git a/dwarf/SB/Core/x/xRMemData.cpp b/dwarf/SB/Core/x/xRMemData.cpp new file mode 100644 index 000000000..665effafc --- /dev/null +++ b/dwarf/SB/Core/x/xRMemData.cpp @@ -0,0 +1,111 @@ +/* + Compile unit: C:\SB\Core\x\xRMemData.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int g_total_alloc; // size: 0x4, address: 0x0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xRMemData.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2E30 -> 0x002F2E5C +*/ +// Range: 0x2F2E30 -> 0x2F2E5C +void Done(class RyzMemGrow * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2E30 -> 0x2F2E5C + } +} + +/* + Compile unit: C:\SB\Core\x\xRMemData.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2E60 -> 0x002F2E88 +*/ +// Range: 0x2F2E60 -> 0x2F2E88 +class RyzMemGrow * Resume(class RyzMemGrow * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2E60 -> 0x2F2E88 + } +} + +/* + Compile unit: C:\SB\Core\x\xRMemData.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2E90 -> 0x002F2F04 +*/ +// Range: 0x2F2E90 -> 0x2F2F04 +class RyzMemGrow * Init(class RyzMemGrow * this /* r17 */, class xBase * growuser /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2E90 -> 0x2F2F04 + } +} + +/* + Compile unit: C:\SB\Core\x\xRMemData.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2F10 -> 0x002F2F18 +*/ +// Range: 0x2F2F10 -> 0x2F2F18 +void __dl() { + // Blocks + /* anonymous block */ { + // Range: 0x2F2F10 -> 0x2F2F18 + } +} + +/* + Compile unit: C:\SB\Core\x\xRMemData.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F2F20 -> 0x002F2FA4 +*/ +// Range: 0x2F2F20 -> 0x2F2FA4 +void * __nw(unsigned int amt /* r2 */, class RyzMemGrow * growCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F2F20 -> 0x2F2FA4 + void * mem; // r16 + signed int dogrow; // r3 + } +} + diff --git a/dwarf/SB/Core/x/xRenderState.cpp b/dwarf/SB/Core/x/xRenderState.cpp new file mode 100644 index 000000000..14ca2637a --- /dev/null +++ b/dwarf/SB/Core/x/xRenderState.cpp @@ -0,0 +1,111 @@ +/* + Compile unit: C:\SB\Core\x\xRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int sBlendTable[11]; // size: 0x2C, address: 0x4DFA00 +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00301890 -> 0x003018AC +*/ +// Range: 0x301890 -> 0x3018AC +void xRenderStateSetDstBlendMode(signed int xmode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x301890 -> 0x3018AC + } +} + +/* + Compile unit: C:\SB\Core\x\xRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003018B0 -> 0x003018CC +*/ +// Range: 0x3018B0 -> 0x3018CC +void xRenderStateSetSrcBlendMode(signed int xmode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3018B0 -> 0x3018CC + } +} + +/* + Compile unit: C:\SB\Core\x\xRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003018D0 -> 0x00301914 +*/ +// Range: 0x3018D0 -> 0x301914 +void xRenderStateSetTexture(class RwTexture * texture /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3018D0 -> 0x301914 + class RwRaster * raster; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xSFX.cpp b/dwarf/SB/Core/x/xSFX.cpp new file mode 100644 index 000000000..cbae8da02 --- /dev/null +++ b/dwarf/SB/Core/x/xSFX.cpp @@ -0,0 +1,1409 @@ +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xSFX * s_managedEnvSFX[1]; // size: 0x4, address: 0x50FE04 +signed int xSFXEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x29F470 +class xSndGlobals gSnd; // size: 0x13A0, address: 0x5B7800 +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xSFX : public xBase { + // total size: 0x1C +public: + class xSFXAsset * asset; // offset 0x10, size 0x4 + unsigned int sndID; // offset 0x14, size 0x4 + float cachedOuterDistSquared; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class iSndVol { + // total size: 0x4 +public: + signed short volL; // offset 0x0, size 0x2 + signed short volR; // offset 0x2, size 0x2 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xSndGlobals { + // total size: 0x13A0 +public: + unsigned int stereo; // offset 0x0, size 0x4 + unsigned int SndCount; // offset 0x4, size 0x4 + float categoryVolFader[5]; // offset 0x8, size 0x14 + class xSndVoiceInfo voice[48]; // offset 0x1C, size 0x12C0 + class xMat4x3 listenerMat[2]; // offset 0x12E0, size 0x80 + enum sound_listener_game_mode listenerMode; // offset 0x1360, size 0x4 + unsigned int suspendCD; // offset 0x1364, size 0x4 + class xVec3 right; // offset 0x1368, size 0xC + class xVec3 up; // offset 0x1374, size 0xC + class xVec3 at; // offset 0x1380, size 0xC + class xVec3 pos; // offset 0x138C, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum sound_category { + SND_CAT_INVALID = -1, + SND_CAT_GAME = 0, + SND_CAT_DIALOG = 1, + SND_CAT_MUSIC = 2, + SND_CAT_CUTSCENE = 3, + SND_CAT_UI = 4, + SND_CAT_NUM_CATEGORIES = 5, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class iSndInfo { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + class iSndVol vol; // offset 0x4, size 0x4 + unsigned int pitch; // offset 0x8, size 0x4 + signed int lastStreamBuffer; // offset 0xC, size 0x4 +}; +enum sound_listener_game_mode { + SND_LISTENER_MODE_PLAYER = 0, + SND_LISTENER_MODE_CAMERA = 1, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xSndVoiceInfo { + // total size: 0x64 +public: + unsigned int assetID; // offset 0x0, size 0x4 + unsigned int sndID; // offset 0x4, size 0x4 + unsigned int parentID; // offset 0x8, size 0x4 + class xVec3 * parentPos; // offset 0xC, size 0x4 + signed int internalID; // offset 0x10, size 0x4 + unsigned int flags; // offset 0x14, size 0x4 + unsigned short pad; // offset 0x18, size 0x2 + unsigned short priority; // offset 0x1A, size 0x2 + float vol; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + unsigned int sample_rate; // offset 0x24, size 0x4 + unsigned int deadct; // offset 0x28, size 0x4 + enum sound_category category; // offset 0x2C, size 0x4 + class xVec3 actualPos; // offset 0x30, size 0xC + class xVec3 playPos; // offset 0x3C, size 0xC + float innerRadius2; // offset 0x48, size 0x4 + float outerRadius2; // offset 0x4C, size 0x4 + unsigned int lock_owner; // offset 0x50, size 0x4 + class iSndInfo ps; // offset 0x54, size 0x10 +}; + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EFC0 -> 0x0029F464 +*/ +// Range: 0x29EFC0 -> 0x29F464 +static void xSFXPlay(class xSFX * t /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EFC0 -> 0x29F464 + class st_PKR_ASSET_TOCINFO ainfo; // r29+0x30 + class xEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029F470 -> 0x0029F610 +*/ +// Range: 0x29F470 -> 0x29F610 +signed int xSFXEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29F470 -> 0x29F610 + class xSFX * t; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029F610 -> 0x0029F618 +*/ +// Range: 0x29F610 -> 0x29F618 +void xSFXLoad(class xSFX * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29F610 -> 0x29F618 + } +} + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029F620 -> 0x0029F628 +*/ +// Range: 0x29F620 -> 0x29F628 +void xSFXSave(class xSFX * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29F620 -> 0x29F628 + } +} + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029F630 -> 0x0029F730 +*/ +// Range: 0x29F630 -> 0x29F730 +void xSFXInit(void * t /* r17 */, void * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29F630 -> 0x29F730 + } +} + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029F730 -> 0x0029FAD8 +*/ +// Range: 0x29F730 -> 0x29FAD8 +void xSFXUpdateEnvironmentalStreamSounds(class xSFX * pSFXList /* r20 */, unsigned int numSounds /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29F730 -> 0x29FAD8 + unsigned int i; // r17 + class xVec3 playPos; // r29+0xC0 + class xVec3 delta; // r29+0xB0 + unsigned int j; // r5 + unsigned int j; // r6 + unsigned int j; // r7 + unsigned char found; // r7 + unsigned int j; // r6 + unsigned int j; // r6 + class xSFX * bestSFX[1]; // @ 0x0050FE08 + float bestDist2[1]; // @ 0x0050FE0C + } +} + +/* + Compile unit: C:\SB\Core\x\xSFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029FAE0 -> 0x0029FAF0 +*/ +// Range: 0x29FAE0 -> 0x29FAF0 +void xSFXEnvironmentalStreamSceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x29FAE0 -> 0x29FAF0 + } +} + diff --git a/dwarf/SB/Core/x/xScene.cpp b/dwarf/SB/Core/x/xScene.cpp new file mode 100644 index 000000000..32d75eb46 --- /dev/null +++ b/dwarf/SB/Core/x/xScene.cpp @@ -0,0 +1,1751 @@ +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char * g_xScene_FMT; // size: 0x4, address: 0x0 +class xScene * g_xSceneCur; // size: 0x4, address: 0x50FAB4 +static void (* cb_seethru_func)(class xEnt *); // size: 0x4, address: 0x0 +static unsigned char cb_collType; // size: 0x1, address: 0x0 +static class xMat4x3 * sBoxTestMat; // size: 0x4, address: 0x50FAC0 +static unsigned char sUseJSP; // size: 0x1, address: 0x50FAC4 +static void * sTestOPtr; // size: 0x4, address: 0x50FAC8 +static class xModelInstance * sTestMPtr; // size: 0x4, address: 0x50FACC +static class xBound sNearestBound; // size: 0x4C, address: 0x5A39B0 +static unsigned char sNearestChk; // size: 0x1, address: 0x50FAD0 +static unsigned char sNearestCollType; // size: 0x1, address: 0x50FAD4 +static class RpIntersection sSphereIsx; // size: 0x1C, address: 0x5A3A00 +class RpCollisionTriangle * sectorNearestFloorCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1FD940 +signed int gridNearestFloorCB(class xEnt *, void *); // size: 0x0, address: 0x1FD810 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class RpCollisionTriangle * boxNearestFloorCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x1FD950 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +void xRayHitsEnt(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x1FEF70 +void xRayHitsTikiLandableEnt(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x1FF020 +signed int gGridIterActive; // size: 0x4, address: 0x50FFC8 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xNearFloorPoly { + // total size: 0x80 +public: + class xBox box; // offset 0x0, size 0x18 + class xVec3 center; // offset 0x18, size 0xC + class xVec3 facingVec; // offset 0x24, size 0xC + float facingDot; // offset 0x30, size 0x4 + float floorDot; // offset 0x34, size 0x4 + class xVec3 vert[3]; // offset 0x38, size 0x24 + float neardist; // offset 0x5C, size 0x4 + class xVec3 nearpt; // offset 0x60, size 0xC + signed int nearvert; // offset 0x6C, size 0x4 + signed int nearedge; // offset 0x70, size 0x4 + unsigned int oid; // offset 0x74, size 0x4 + void * optr; // offset 0x78, size 0x4 + class xModelInstance * mptr; // offset 0x7C, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class cb_ray_hits_ent { + // total size: 0xC +public: + class xRay3 & ray; // offset 0x0, size 0x4 + class xCollis & coll; // offset 0x4, size 0x4 + unsigned char chkby; // offset 0x8, size 0x1 + unsigned char collType; // offset 0x9, size 0x1 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xLine3 { + // total size: 0x18 +public: + class xVec3 p1; // offset 0x0, size 0xC + class xVec3 p2; // offset 0xC, size 0xC +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xGridIterator { + // total size: 0xC +public: + class xGridBound * * listhead; // offset 0x0, size 0x4 + class xGridBound * curcell; // offset 0x4, size 0x4 + unsigned int delfound; // offset 0x8, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD4A0 -> 0x001FD810 +*/ +// Range: 0x1FD4A0 -> 0x1FD810 +unsigned int xSceneNearestFloorPoly(class xScene * sc /* r20 */, class xNearFloorPoly * nfpoly /* r19 */, unsigned char collType /* r18 */, unsigned char chk /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD4A0 -> 0x1FD810 + class RpIntersection isx; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD810 -> 0x001FD93C +*/ +// Range: 0x1FD810 -> 0x1FD93C +static signed int gridNearestFloorCB(class xEnt * ent /* r17 */, void * cbdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD810 -> 0x1FD93C + class xNearFloorPoly * nfpoly; // r16 + class xCollis tempC; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD940 -> 0x001FD94C +*/ +// Range: 0x1FD940 -> 0x1FD94C +static class RpCollisionTriangle * sectorNearestFloorCB(class RpIntersection * intersection /* r2 */, class RpCollisionTriangle * collTriangle /* r2 */, float distance /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD940 -> 0x1FD94C + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD950 -> 0x001FDC34 +*/ +// Range: 0x1FD950 -> 0x1FDC34 +static class RpCollisionTriangle * boxNearestFloorCB(class RpIntersection * intersection /* r18 */, class RpCollisionTriangle * collTriangle /* r17 */, float distance /* r20 */, void * data /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD950 -> 0x1FDC34 + class xNearFloorPoly * nfpoly; // r2 + class xVec3 xformVert[3]; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FDC40 -> 0x001FE418 +*/ +// Range: 0x1FDC40 -> 0x1FE418 +static class RpCollisionTriangle * nearestFloorCB(class RpCollisionTriangle * collTriangle /* r20 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FDC40 -> 0x1FE418 + class xNearFloorPoly * nfpoly; // r19 + float currnear; // r23 + signed int currvert; // r18 + signed int curredge; // r17 + class xVec3 xformVert[4]; // r29+0xC0 + class xVec3 xformNorm; // r29+0x110 + unsigned int potentialOID; // r29+0xB0 + signed int i; // r5 + float pdx[3]; // r29+0x100 + float pdz[3]; // r29+0xF0 + float numer; // r16 + float denom; // r1 + float t; // r2 + float testdist2; // r1 + float neardx; // r5 + float neardz; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FE420 -> 0x001FE908 +*/ +// Range: 0x1FE420 -> 0x1FE908 +static unsigned int Mgc_TriBoxTest(class xVec3 * apkTri /* r2 */, class xBox * rkBox /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FE420 -> 0x1FE908 + float fMin0; // r7 + float fMax0; // r1 + float fMin1; // r9 + float fMax1; // r8 + class xVec3 kD; // r29+0x40 + class xVec3 akE[3]; // r29 + class xVec3 baxis; // r29+0x30 + unsigned int andflag; // r7 + unsigned int curflag; // r6 + signed int i; // r3 + signed int i0; // r8 + signed int i1; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FE910 -> 0x001FEC04 +*/ +// Range: 0x1FE910 -> 0x1FEC04 +void xRayHitsSceneFlags(class xScene * sc /* r19 */, class xRay3 * r /* r18 */, class xCollis * coll /* r17 */, unsigned char collType /* r2 */, unsigned char chk /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FE910 -> 0x1FEC04 + class cb_ray_hits_ent cb; // r29+0x110 + class xBound bound; // r29+0xC0 + class xCollis temp_coll; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FECF0 -> 0x001FEE30 +*/ +// Range: 0x1FECF0 -> 0x1FEE30 +void xRayHitsScene(class xScene * sc /* r18 */, class xRay3 * r /* r17 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FECF0 -> 0x1FEE30 + class xQCData q; // r29+0x90 + class xCollis c; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FEE30 -> 0x001FEF70 +*/ +// Range: 0x1FEE30 -> 0x1FEF70 +void xRayHitsTikiLandableScene(class xScene * sc /* r18 */, class xRay3 * r /* r17 */, class xCollis * coll /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FEE30 -> 0x1FEF70 + class xQCData q; // r29+0x90 + class xCollis c; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FEF70 -> 0x001FF018 +*/ +// Range: 0x1FEF70 -> 0x1FF018 +void xRayHitsEnt(class xRay3 * r /* r18 */, class xQCData * qcr /* r2 */, class xEnt * ent /* r17 */, void * colldata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FEF70 -> 0x1FF018 + class xCollis * coll; // r16 + class xCollis c; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FF020 -> 0x001FF118 +*/ +// Range: 0x1FF020 -> 0x1FF118 +void xRayHitsTikiLandableEnt(class xRay3 * r /* r18 */, class xQCData * qcr /* r2 */, class xEnt * ent /* r17 */, void * colldata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FF020 -> 0x1FF118 + class xCollis * coll; // r16 + class xCollis c; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FF120 -> 0x002000CC +*/ +// Range: 0x1FF120 -> 0x2000CC +void xRayHitsGrid(class xGrid * grid /* r19 */, class xScene * sc /* r29+0xEC */, class xRay3 * r /* r18 */, void (* rentcb)(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *) /* r29+0xE8 */, class xQCData * qcr /* r21 */, void * data /* r29+0xE4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FF120 -> 0x2000CC + class xLine3 ln; // r29+0xF0 + class xGridIterator it; // r29+0x120 + class xVec3 delta; // r29+0x110 + float len; // r1 + signed int sclgx; // r29+0x15C + signed int sclgz; // r29+0x158 + signed int eclgx; // r29+0x154 + signed int eclgz; // r29+0x150 + float sclcx; // r29+0x160 + float sclcz; // r28 + float eclcx; // r29+0x160 + float eclcz; // r27 + float halfclx; // r26 + float halfclz; // r25 + float quatrclx; // r24 + float quatrclz; // r20 + signed int sz; // r30 + signed int ez; // r29+0xD0 + signed int x; // r17 + signed int z; // r16 + float dxdz; // r23 + float cz; // r29+0x160 + float lz; // r29+0x160 + float rz; // r22 + float lx; // r21 + float rx; // r20 + float ly; // r29+0x160 + float ry; // r27 + signed int aclgx; // r29+0x14C + signed int aclgz; // r29+0x148 + signed int bclgx; // r29+0x144 + signed int bclgz; // r29+0x140 + float aclcx; // r3 + float aclcz; // r29+0x160 + float bclcx; // r2 + float bclcz; // r29+0x160 + signed int ax; // r22 + signed int bx; // r23 + class xGridBound * cell; // r20 + class xBound * cellbound; // r2 + class xGridBound * cell; // r20 + class xBound * cellbound; // r2 + float cz; // r29+0x160 + float lz; // r29+0x160 + float rz; // r22 + float lx; // r21 + float rx; // r20 + float ly; // r29+0x160 + float ry; // r28 + signed int aclgx; // r29+0x13C + signed int aclgz; // r29+0x138 + signed int bclgx; // r29+0x134 + signed int bclgz; // r29+0x130 + float aclcx; // r3 + float aclcz; // r29+0x160 + float bclcx; // r2 + float bclcz; // r29+0x160 + signed int ax; // r22 + signed int bx; // r23 + class xGridBound * cell; // r20 + class xBound * cellbound; // r2 + class xGridBound * cell; // r20 + class xBound * cellbound; // r2 + class xGridBound * cell; // r16 + class xBound * cellbound; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002000D0 -> 0x00200168 +*/ +// Range: 0x2000D0 -> 0x200168 +void xSceneForAllNPCs(class xScene * sc /* r20 */, class xEnt * (* func)(class xEnt *, class xScene *, void *) /* r19 */, void * data /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2000D0 -> 0x200168 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00200170 -> 0x00200208 +*/ +// Range: 0x200170 -> 0x200208 +void xSceneForAllDynamics(class xScene * sc /* r20 */, class xEnt * (* func)(class xEnt *, class xScene *, void *) /* r19 */, void * data /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x200170 -> 0x200208 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00200210 -> 0x002002A8 +*/ +// Range: 0x200210 -> 0x2002A8 +void xSceneForAllStatics(class xScene * sc /* r20 */, class xEnt * (* func)(class xEnt *, class xScene *, void *) /* r19 */, void * data /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x200210 -> 0x2002A8 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002002B0 -> 0x00200348 +*/ +// Range: 0x2002B0 -> 0x200348 +void xSceneForAllEnts(class xScene * sc /* r20 */, class xEnt * (* func)(class xEnt *, class xScene *, void *) /* r19 */, void * data /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2002B0 -> 0x200348 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00200350 -> 0x00200384 +*/ +// Range: 0x200350 -> 0x200384 +char * xSceneID2Name(class xScene * sc /* r2 */, unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x200350 -> 0x200384 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00200390 -> 0x002003C4 +*/ +// Range: 0x200390 -> 0x2003C4 +class xBase * xSceneResolvID(class xScene * sc /* r2 */, unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x200390 -> 0x2003C4 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002003D0 -> 0x002004A8 +*/ +// Range: 0x2003D0 -> 0x2004A8 +void xSceneAddEnt(class xScene * sc /* r2 */, class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2003D0 -> 0x2004A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002004B0 -> 0x002004B8 +*/ +// Range: 0x2004B0 -> 0x2004B8 +void xSceneSetup(class xScene * sc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2004B0 -> 0x2004B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002004C0 -> 0x002004C8 +*/ +// Range: 0x2004C0 -> 0x2004C8 +void xSceneLoad() { + // Blocks + /* anonymous block */ { + // Range: 0x2004C0 -> 0x2004C8 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002004D0 -> 0x002004D8 +*/ +// Range: 0x2004D0 -> 0x2004D8 +void xSceneSave() { + // Blocks + /* anonymous block */ { + // Range: 0x2004D0 -> 0x2004D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002004E0 -> 0x002004E8 +*/ +// Range: 0x2004E0 -> 0x2004E8 +void xSceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x2004E0 -> 0x2004E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002004F0 -> 0x00200684 +*/ +// Range: 0x2004F0 -> 0x200684 +void xSceneInit(class xScene * sc /* r20 */, unsigned short num_trigs /* r19 */, unsigned short num_stats /* r18 */, unsigned short num_dyns /* r17 */, unsigned short num_npcs /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2004F0 -> 0x200684 + } +} + diff --git a/dwarf/SB/Core/x/xScrFx.cpp b/dwarf/SB/Core/x/xScrFx.cpp new file mode 100644 index 000000000..33369a2c4 --- /dev/null +++ b/dwarf/SB/Core/x/xScrFx.cpp @@ -0,0 +1,2465 @@ +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned char g_debugRenderSafeArea; // size: 0x1, address: 0x50FAD8 +static class _xFadeData mFade; // size: 0x1C, address: 0x5A3A20 +static float mLetterboxO; // size: 0x4, address: 0x50FADC +static float mLetterboxTO; // size: 0x4, address: 0x50FAE0 +static float sLetterBoxSize; // size: 0x4, address: 0x50FAE4 +static unsigned char sLetterBoxAlpha; // size: 0x1, address: 0x50E898 +class DistortionParticle gDistortionParticles[100]; // size: 0x12C0, address: 0x5A3A40 +signed int gNumDistortionParticles; // size: 0x4, address: 0x50FAE8 +static float sNoGlobalTime; // size: 0x4, address: 0x50FAEC +class xVec3 ddir; // size: 0xC, address: 0x418C48 +class xGlare sGlare[10]; // size: 0x208, address: 0x5A4D00 +class xVec3 sFullScreenGlareDir; // size: 0xC, address: 0x418C58 +float sFullScreenGlareIntensity; // size: 0x4, address: 0x50E89C +class RwRGBA sFullScreenGlareColor; // size: 0x4, address: 0x50E8A0 +signed int sFullScreenGlareEnabled; // size: 0x4, address: 0x50FAF0 +unsigned int sFullScreenGlareTextureID; // size: 0x4, address: 0x50FAF4 +class RwTexture * sFullScreenGlareTexturePtr; // size: 0x4, address: 0x50FAF8 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xGlare { + // total size: 0x34 +public: + signed int flags; // offset 0x0, size 0x4 + class xVec3 pos; // offset 0x4, size 0xC + float intensity; // offset 0x10, size 0x4 + float intensityFadeRate; // offset 0x14, size 0x4 + float lifetime; // offset 0x18, size 0x4 + float size; // offset 0x1C, size 0x4 + class RwRGBAReal col; // offset 0x20, size 0x10 + class RwRaster * raster; // offset 0x30, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum RwVideoModeFlag { + rwVIDEOMODEEXCLUSIVE = 1, + rwVIDEOMODEINTERLACE = 2, + rwVIDEOMODEFFINTERLACE = 4, + rwVIDEOMODE_PS2_FSAASHRINKBLIT = 256, + rwVIDEOMODE_PS2_FSAAREADCIRCUIT = 512, + rwVIDEOMODE_XBOX_WIDESCREEN = 256, + rwVIDEOMODE_XBOX_PROGRESSIVE = 512, + rwVIDEOMODE_XBOX_FIELD = 1024, + rwVIDEOMODE_XBOX_10X11PIXELASPECT = 2048, + rwVIDEOMODEFLAGFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntBoulder { + // total size: 0x0 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwVideoMode { + // total size: 0x18 +public: + signed int width; // offset 0x0, size 0x4 + signed int height; // offset 0x4, size 0x4 + signed int depth; // offset 0x8, size 0x4 + enum RwVideoModeFlag flags; // offset 0xC, size 0x4 + signed int refRate; // offset 0x10, size 0x4 + signed int format; // offset 0x14, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class DistortionParticle { + // total size: 0x30 +public: + class xVec3 pos; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class xVec3 dir; // offset 0x10, size 0xC + float life; // offset 0x1C, size 0x4 + class xVec3 vel; // offset 0x20, size 0xC + float death; // offset 0x2C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class _xFadeData { + // total size: 0x1C +public: + signed int active; // offset 0x0, size 0x4 + signed int hold; // offset 0x4, size 0x4 + class iColor_tag src; // offset 0x8, size 0x4 + class iColor_tag dest; // offset 0xC, size 0x4 + float time_passed; // offset 0x10, size 0x4 + float time_total; // offset 0x14, size 0x4 + void (* cb)(); // offset 0x18, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002010C0 -> 0x00201564 +*/ +// Range: 0x2010C0 -> 0x201564 +void xScrFxDrawBox(float x1 /* r25 */, float y1 /* r24 */, float x2 /* r23 */, float y2 /* r22 */, unsigned char red /* r19 */, unsigned char green /* r18 */, unsigned char blue /* r17 */, unsigned char alpha /* r16 */, float ushift /* r21 */, float vshift /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2010C0 -> 0x201564 + float oocameraNearClipPlane; // r29+0x70 + unsigned short indices[4]; // @ 0x0050E8A8 + class RwSky2DVertex v[4]; // @ 0x005A4FA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00201570 -> 0x00201EB0 +*/ +// Range: 0x201570 -> 0x201EB0 +void xScrFXGlareRender(class xCamera * cam /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x201570 -> 0x201EB0 + signed int i; // r22 + class xVec3 w; // r29+0xD0 + class xVec3 h; // r29+0xC0 + class xVec3 v; // r29+0xB0 + class xVec3 glareDir; // r29+0xA0 + float val; // r29+0xE0 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RxObjSpace3DVertex sStripVert[4]; // @ 0x005A4F10 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00201EB0 -> 0x002020D8 +*/ +// Range: 0x201EB0 -> 0x2020D8 +void xScrFXFullScreenGlareRender() { + // Blocks + /* anonymous block */ { + // Range: 0x201EB0 -> 0x2020D8 + class xMat4x3 mat; // r29+0x60 + class xVec3 v; // r29+0xB0 + class xVec3 glareDir; // r29+0xA0 + float d; // r3 + float alpha; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002020E0 -> 0x0020229C +*/ +// Range: 0x2020E0 -> 0x20229C +signed int xScrFXGlareAdd(class xVec3 * pos /* r2 */, float life /* r29+0x30 */, float intensity /* r29+0x30 */, float size /* r29+0x30 */, float r /* r29+0x30 */, float g /* r29+0x30 */, float b /* r29+0x30 */, float a /* r29+0x30 */, class RwRaster * raster /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2020E0 -> 0x20229C + signed int i; // r17 + class RwTexture * texturePtr; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002022A0 -> 0x00202444 +*/ +// Range: 0x2022A0 -> 0x202444 +static void xScrFxDistortionUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2022A0 -> 0x202444 + class DistortionParticle * dp; // r16 + signed int i; // r6 + class xVec3 pos; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202450 -> 0x00202458 +*/ +// Range: 0x202450 -> 0x202458 +void xScrFxDistortionAdd() { + // Blocks + /* anonymous block */ { + // Range: 0x202450 -> 0x202458 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202460 -> 0x002026AC +*/ +// Range: 0x202460 -> 0x2026AC +void xScrFxDrawSafeArea() { + // Blocks + /* anonymous block */ { + // Range: 0x202460 -> 0x2026AC + class RwVideoMode videoMode; // r29+0x60 + unsigned int screenWidth; // r5 + unsigned int screenHeight; // r4 + unsigned int xMargin; // r16 + unsigned int yMargin; // r19 + signed int top; // r2 + signed int bottom; // r18 + signed int left; // r2 + signed int right; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002026B0 -> 0x002026D4 +*/ +// Range: 0x2026B0 -> 0x2026D4 +signed int xScrFxIsLetterbox() { + // Blocks + /* anonymous block */ { + // Range: 0x2026B0 -> 0x2026D4 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002026E0 -> 0x002027F8 +*/ +// Range: 0x2026E0 -> 0x2027F8 +void xScrFxUpdateLetterBox(float seconds /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2026E0 -> 0x2027F8 + class RwVideoMode video_mode; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202800 -> 0x00202850 +*/ +// Range: 0x202800 -> 0x202850 +void xScrFxLetterbox(signed int enable /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202800 -> 0x202850 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202850 -> 0x00202858 +*/ +// Range: 0x202850 -> 0x202858 +void xScrFxLetterBoxSetAlpha(unsigned char alpha /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202850 -> 0x202858 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202860 -> 0x00202868 +*/ +// Range: 0x202860 -> 0x202868 +void xScrFxLetterBoxSetSize(float size /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202860 -> 0x202868 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202870 -> 0x0020287C +*/ +// Range: 0x202870 -> 0x20287C +void xScrFxLetterboxReset() { + // Blocks + /* anonymous block */ { + // Range: 0x202870 -> 0x20287C + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202880 -> 0x00202C50 +*/ +// Range: 0x202880 -> 0x202C50 +void xScrFxUpdateFade(float seconds /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202880 -> 0x202C50 + float t; // r24 + class RwVideoMode video_mode; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202C50 -> 0x00202C5C +*/ +// Range: 0x202C50 -> 0x202C5C +signed int xScrFxIsFading() { + // Blocks + /* anonymous block */ { + // Range: 0x202C50 -> 0x202C5C + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202C60 -> 0x00202C6C +*/ +// Range: 0x202C60 -> 0x202C6C +void xScrFxStopFade() { + // Blocks + /* anonymous block */ { + // Range: 0x202C60 -> 0x202C6C + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202C70 -> 0x00202D18 +*/ +// Range: 0x202C70 -> 0x202D18 +void xScrFxFade(class iColor_tag * base /* r2 */, class iColor_tag * dest /* r2 */, float seconds /* r29 */, void (* callback)() /* r2 */, signed int hold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202C70 -> 0x202D18 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202D20 -> 0x00202D74 +*/ +// Range: 0x202D20 -> 0x202D74 +void xScrFxDrawScreenSizeRectangle() { + // Blocks + /* anonymous block */ { + // Range: 0x202D20 -> 0x202D74 + class RwVideoMode video_mode; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202D80 -> 0x00202DC4 +*/ +// Range: 0x202D80 -> 0x202DC4 +void xScrFxRender() { + // Blocks + /* anonymous block */ { + // Range: 0x202D80 -> 0x202DC4 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202DD0 -> 0x00202E84 +*/ +// Range: 0x202DD0 -> 0x202E84 +void xScrFxUpdate(class RwCamera * cam /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202DD0 -> 0x202E84 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202E90 -> 0x00202EC8 +*/ +// Range: 0x202E90 -> 0x202EC8 +void xScrFxReset() { + // Blocks + /* anonymous block */ { + // Range: 0x202E90 -> 0x202EC8 + } +} + +/* + Compile unit: C:\SB\Core\x\xScrFx.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202ED0 -> 0x00202F34 +*/ +// Range: 0x202ED0 -> 0x202F34 +void xScrFxInit() { + // Blocks + /* anonymous block */ { + // Range: 0x202ED0 -> 0x202F34 + } +} + diff --git a/dwarf/SB/Core/x/xShadow.cpp b/dwarf/SB/Core/x/xShadow.cpp new file mode 100644 index 000000000..799780d8a --- /dev/null +++ b/dwarf/SB/Core/x/xShadow.cpp @@ -0,0 +1,3303 @@ +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class RpLight * ShadowLight; // size: 0x4, address: 0x50FB00 +class RwRGBAReal ShadowLightColor; // size: 0x10, address: 0x418C80 +char * sCacheBlendLabels[11]; // size: 0x2C, address: 0x0 +static unsigned int sCacheBlendValues[11]; // size: 0x2C, address: 0x0 +static unsigned int sCacheNumBlendModes; // size: 0x4, address: 0x0 +static float SHADOW_BF_DOT; // size: 0x4, address: 0x50FB04 +static float SHADOW_BOTH; // size: 0x4, address: 0x50FB08 +static class RxObjSpace3DVertex * Im3DBuffer; // size: 0x4, address: 0x50FB0C +static unsigned int Im3DBufferPos; // size: 0x4, address: 0x50FB10 +float ShadowThreshold; // size: 0x4, address: 0x0 +class RwCamera * ShadowCamera; // size: 0x4, address: 0x50FB20 +class RwRaster * ShadowCameraRaster; // size: 0x4, address: 0x50FB24 +static class RwRaster * ShadowRenderRaster; // size: 0x4, address: 0x50FB28 +static class RwV2d ShadowPreviewVerts[2]; // size: 0x10, address: 0x0 +float ShadowStrength; // size: 0x4, address: 0x50E8B0 +unsigned int gShadowFlags; // size: 0x4, address: 0x50FB2C +float gShadowObjectRadius; // size: 0x4, address: 0x50FB30 +static unsigned int shadow_ent_count; // size: 0x4, address: 0x50FB34 +static class xEnt * shadow_ent_list[16]; // size: 0x40, address: 0x0 +static signed int sShadowCollJSP; // size: 0x4, address: 0x50FB38 +class RwMatrixTag sm_matrix; // size: 0x40, address: 0x5A51D0 +float rscale; // size: 0x4, address: 0x50E8B8 +class RwV3d gCamPos; // size: 0xC, address: 0x5A5210 +static unsigned int skyOldTest; // size: 0x4, address: 0x50FB3C +static unsigned int shadvolquad_idx[6][4]; // size: 0x60, address: 0x418CB0 +static class xEnt * sEntSelf; // size: 0x4, address: 0x50FB40 +static class xShadowMgr * sMgrList; // size: 0x4, address: 0x50FB44 +static signed int sMgrCount; // size: 0x4, address: 0x50FB48 +static signed int sMgrTotal; // size: 0x4, address: 0x50FB4C +static class xShadowCache sCacheList[6]; // size: 0x122A0, address: 0x5A5220 +static class RxPipeline * adlSkinPipe; // size: 0x4, address: 0x50FB50 +static class RxPipeline * a4dSkinPipe; // size: 0x4, address: 0x50FB54 +static class RxPipeline * adlSkinPipeADC; // size: 0x4, address: 0x50FB58 +static class RxPipeline * a4dSkinPipeADC; // size: 0x4, address: 0x50FB5C +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +unsigned char xClumpColl_FilterFlags; // size: 0x1, address: 0x50F070 +void xModelRender(class xModelInstance *); // size: 0x0, address: 0x1F14A0 +signed int CmpShadowMgr(void *, void *); // size: 0x0, address: 0x204CF0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class tagiRenderInput gRenderBuffer; // size: 0x80, address: 0x538BD0 +signed int shadowCacheEntityCB(class xEnt *, void *); // size: 0x0, address: 0x205720 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class RpCollisionTriangle * shadowCacheEnvCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x206370 +signed int shadowCacheLeafCB(signed int, signed int, void *); // size: 0x0, address: 0x205B10 +signed int _rpCollisionGeometryDataOffset; // size: 0x4, address: 0x50EC80 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RpCollisionTriangle * ShadowRenderTriangleCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x207560 +signed int iModelHack_DisablePrelight; // size: 0x4, address: 0x50FFD0 +void modelRenderCB(void *); // size: 0x0, address: 0x2086E0 +void xRayHitsEnt(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x1FEF70 +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class tagiRenderInput { + // total size: 0x80 +public: + unsigned short * m_index; // offset 0x0, size 0x4 + class RxObjSpace3DVertex * m_vertex; // offset 0x4, size 0x4 + float * m_vertexTZ; // offset 0x8, size 0x4 + unsigned int m_mode; // offset 0xC, size 0x4 + signed int m_vertexType; // offset 0x10, size 0x4 + signed int m_vertexTypeSize; // offset 0x14, size 0x4 + signed int m_indexCount; // offset 0x18, size 0x4 + signed int m_vertexCount; // offset 0x1C, size 0x4 + class xMat4x3 m_camViewMatrix; // offset 0x20, size 0x40 + class xVec4 m_camViewR; // offset 0x60, size 0x10 + class xVec4 m_camViewU; // offset 0x70, size 0x10 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xShadowMgr { + // total size: 0x10 +public: + class xEnt * ent; // offset 0x0, size 0x4 + class xShadowCache * cache; // offset 0x4, size 0x4 + signed int priority; // offset 0x8, size 0x4 + signed int cacheReady; // offset 0xC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class ShadowCacheContext { + // total size: 0x8 +public: + class xShadowCache * cache; // offset 0x0, size 0x4 + float minNormY; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zEntHangable { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpV3dGradient { + // total size: 0x18 +public: + float dydx; // offset 0x0, size 0x4 + float dzdx; // offset 0x4, size 0x4 + float dxdy; // offset 0x8, size 0x4 + float dzdy; // offset 0xC, size 0x4 + float dxdz; // offset 0x10, size 0x4 + float dydz; // offset 0x14, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class rxReq { + // total size: 0x0 +}; +class RwV4dTag { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class ShadowCBParam { + // total size: 0x70 +public: + class xShadowCache * cache; // offset 0x0, size 0x4 + class RpIntersection * isx; // offset 0x4, size 0x4 + class xVec3 capsuleStart; // offset 0x8, size 0xC + class xVec3 capsuleEnd; // offset 0x14, size 0xC + float capsuleRadius; // offset 0x20, size 0x4 + class xEnt * ent; // offset 0x24, size 0x4 + class RwLine localLine; // offset 0x28, size 0x18 + class RwV3d localDelta; // offset 0x40, size 0xC + float localRadius; // offset 0x4C, size 0x4 + class RwMatrixTag * modelMat; // offset 0x50, size 0x4 + class RpGeometry * geom; // offset 0x54, size 0x4 + unsigned int polyFound; // offset 0x58, size 0x4 + class xEnt * rayCloser[5]; // offset 0x5C, size 0x14 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEntBoulder { + // total size: 0x0 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _ProjectionParam { + // total size: 0x60 +public: + class RwV3d at; // offset 0x0, size 0xC + class RwMatrixTag invMatrix; // offset 0x10, size 0x40 + unsigned char shadowValue; // offset 0x50, size 0x1 + signed int fade; // offset 0x54, size 0x4 + unsigned int numIm3DBatch; // offset 0x58, size 0x4 + unsigned int shadowWord; // offset 0x5C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RpSkin { + // total size: 0x0 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RwBlendFunction { + rwBLENDNABLEND = 0, + rwBLENDZERO = 1, + rwBLENDONE = 2, + rwBLENDSRCCOLOR = 3, + rwBLENDINVSRCCOLOR = 4, + rwBLENDSRCALPHA = 5, + rwBLENDINVSRCALPHA = 6, + rwBLENDDESTALPHA = 7, + rwBLENDINVDESTALPHA = 8, + rwBLENDDESTCOLOR = 9, + rwBLENDINVDESTCOLOR = 10, + rwBLENDSRCALPHASAT = 11, + rwBLENDFUNCTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002040A0 -> 0x002040F4 +*/ +// Range: 0x2040A0 -> 0x2040F4 +static void xShadow_PickEntForNPC(class xShadowMgr * mgr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2040A0 -> 0x2040F4 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00204100 -> 0x002042A0 +*/ +// Range: 0x204100 -> 0x2042A0 +static void xShadow_PickByRayCast(class xShadowMgr * mgr /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x204100 -> 0x2042A0 + class xEnt * ent_best; // r21 + signed int idx_best; // r20 + class xCollis colrec; // r29+0xD0 + class xRay3 ray; // r29+0xA0 + signed int num; // r19 + signed int i; // r18 + class xEnt * ep; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002042A0 -> 0x00204CF0 +*/ +// Range: 0x2042A0 -> 0x204CF0 +void xShadowManager_Render() { + // Blocks + /* anonymous block */ { + // Range: 0x2042A0 -> 0x204CF0 + signed int i; // r4 + signed int cacheUsed[6]; // r29+0xF0 + unsigned int j; // r11 + unsigned char old_xClumpColl_FilterFlags; // r23 + signed int bestIndex; // r8 + signed int foundPriority; // r7 + class xVec3 center; // r29+0x138 + float radius; // r29+0x14C + class xShadowMgr * mgr_best; // r17 + float dst_depth; // r29+0x150 + class xEnt * ep; // r3 + class xEnt * ent; // r20 + signed int shadowOutside; // r29+0x148 + class xVec3 shadVec; // r29+0x128 + class xVec3 center; // r29+0x118 + float radius; // r29+0x144 + class RpAtomic * old_model; // r19 + class xModelInstance * old_mnext; // r21 + class xEnt * ep; // r20 + class xShadowMgr * mgr; // r22 + class xNPCBasic * npc_base; // r6 + signed int num; // r21 + signed int a; // r20 + class xEnt * ep; // r19 + float rad; // r29+0x150 + class xVec3 * lower; // r2 + class xVec3 * upper; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00204CF0 -> 0x00204E18 +*/ +// Range: 0x204CF0 -> 0x204E18 +static signed int CmpShadowMgr(void * a /* r2 */, void * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x204CF0 -> 0x204E18 + class xEnt * entA; // r7 + class xEnt * entB; // r6 + signed int isPlayerA; // r5 + signed int isPlayerB; // r2 + float distA; // r3 + float distB; // r29 + class xVec3 * campos; // r4 + float dx__; // r4 + float dy__; // r3 + float dz__; // r3 + float dx__; // r1 + float dy__; // r29 + float dz__; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00204E20 -> 0x00204ED8 +*/ +// Range: 0x204E20 -> 0x204ED8 +void xShadowManager_Remove(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x204E20 -> 0x204ED8 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00204EE0 -> 0x00204F90 +*/ +// Range: 0x204EE0 -> 0x204F90 +void xShadowManager_Add(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x204EE0 -> 0x204F90 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00204F90 -> 0x00204F98 +*/ +// Range: 0x204F90 -> 0x204F98 +void xShadowManager_Reset() { + // Blocks + /* anonymous block */ { + // Range: 0x204F90 -> 0x204F98 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00204FA0 -> 0x0020501C +*/ +// Range: 0x204FA0 -> 0x20501C +void xShadowManager_Init(signed int numEnts /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x204FA0 -> 0x20501C + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00205020 -> 0x00205424 +*/ +// Range: 0x205020 -> 0x205424 +void xShadowVertical_DrawCache(class xShadowCache * cache /* r18 */, float shadowFactor /* r21 */, float fadeDist /* r20 */, signed int shadowMode /* r17 */, class RwMatrixTag * shadowMat /* r16 */, class RwRaster * shadowRast /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x205020 -> 0x205424 + class _ProjectionParam param; // r29+0x80 + class RwMatrixTag * shadowMatrix; // r2 + float radius; // r22 + class RwV3d scl; // r29+0x110 + class RwV3d tr; // r29+0x100 + class xVec3 A; // r29+0xF0 + class xVec3 B; // r29+0xE0 + unsigned int i; // r16 + class RpCollisionTriangle tri; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00205430 -> 0x00205714 +*/ +// Range: 0x205430 -> 0x205714 +void xShadowVertical_FillCache(class xShadowCache * cache /* r18 */, class xVec3 * pos /* r17 */, float r /* r21 */, float depth /* r20 */, float minNormY /* r29+0x130 */) { + // Blocks + /* anonymous block */ { + // Range: 0x205430 -> 0x205714 + signed int i; // r5 + signed int j; // r4 + class xEnv * env; // r4 + class RpIntersection isx; // r29+0x100 + class ShadowCacheContext context; // r29+0x128 + float sortRayDepth[5]; // r29+0xE0 + float objMaxDepth; // r2 + class xQCData qcd; // r29+0xC0 + class ShadowCBParam cbparam; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00205720 -> 0x00205B04 +*/ +// Range: 0x205720 -> 0x205B04 +static signed int shadowCacheEntityCB(class xEnt * ent /* r19 */, void * cbdata /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x205720 -> 0x205B04 + class ShadowCBParam * cbparam; // r2 + class xCollis coll; // r29+0xB0 + class RwMatrixTag inverseLTM; // r29+0x70 + class RpV3dGradient grad; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00205B10 -> 0x00206364 +*/ +// Range: 0x205B10 -> 0x206364 +static signed int shadowCacheLeafCB(signed int numTriangles /* r18 */, signed int triOffset /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x205B10 -> 0x206364 + class ShadowCBParam * cbparam; // r17 + class xShadowCache * cache; // r16 + class RpGeometry * geometry; // r4 + class RwV3d * vertices; // r21 + class RpTriangle * triangles; // r20 + signed int triSlot; // r2 + unsigned short * triIndex; // r19 + signed int i; // r4 + class RpTriangle * tri; // r3 + signed int vertIndex0; // r2 + signed int vertIndex1; // r2 + signed int vertIndex2; // r2 + class RwV3d * v0; // r7 + class RwV3d * v1; // r6 + class RwV3d * v2; // r3 + class xVec3 worldV[3]; // r29+0x70 + float posX; // r1 + float posZ; // r29+0xD0 + float nx; // r7 + float nz; // r6 + float nmag2; // r5 + float pdot; // r2 + class xVec3 * vert0; // r9 + class xVec3 * vert1; // r2 + float dotA; // r2 + float dotB; // r2 + class xVec3 * vert0; // r5 + class xVec3 * vert1; // r2 + class xVec3 * vert2; // r2 + class xVec3 aa; // r29+0xC0 + class xVec3 bb; // r29+0xB0 + class xVec3 trinorm; // r29+0xA0 + float depthtest; // r13 + float dydx; // r11 + float dydz; // r10 + float depth0; // r9 + float n0x; // r8 + float n0z; // r7 + float n0d; // r6 + float n1x; // r5 + float n1z; // r4 + float n1d; // r3 + float n2x; // r2 + float n2z; // r1 + float n2d; // r29+0xD0 + float denom; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00206370 -> 0x00206770 +*/ +// Range: 0x206370 -> 0x206770 +static class RpCollisionTriangle * shadowCacheEnvCB(class RpCollisionTriangle * tri /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x206370 -> 0x206770 + class ShadowCacheContext * context; // r2 + class xShadowCache * cache; // r2 + class xShadowPoly * poly; // r2 + float dydx; // r10 + float dydz; // r9 + float depth0; // r8 + float n0x; // r17 + float n0z; // r7 + float n0d; // r6 + float n1x; // r5 + float n1z; // r4 + float n1d; // r3 + float n2x; // r2 + float n2z; // r1 + float n2d; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00206770 -> 0x00206A48 +*/ +// Range: 0x206770 -> 0x206A48 +static void xShadowSetVolume(class RwCamera * shadowCamera /* r2 */, class xVec3 * pos /* r2 */, float depth /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x206770 -> 0x206A48 + signed int i; // r9 + class xVec3 volume[8]; // r29+0x10 + float invNearFar; // r6 + float lerp; // r8 + class RwMatrixTag * camMatrix; // r2 + signed int cullstate; // r29+0x8C + signed int ztest; // r29+0x88 + signed int zwrite; // r29+0x84 + signed int srcblend; // r29+0x80 + signed int destblend; // r29+0x7C + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00206A50 -> 0x00206D84 +*/ +// Range: 0x206A50 -> 0x206D84 +static void DrawAlphaBox(class xVec3 * volume /* r29+0xDC */, signed int frontface /* r23 */, unsigned char alpha /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x206A50 -> 0x206D84 + unsigned int i; // r22 + unsigned int numV; // r29+0xC0 + class RxObjSpace3DVertex boxV[36]; // r29+0xE0 + class RxObjSpace3DVertex * v3d; // r20 + class RwMatrixTag * mainMatrix; // r29+0xB0 + class xVec3 normal; // r29+0x5F0 + class xVec3 * v0; // r19 + class xVec3 * v1; // r18 + class xVec3 * v2; // r17 + class xVec3 * v3; // r16 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00206D90 -> 0x002070F8 +*/ +// Range: 0x206D90 -> 0x2070F8 +static unsigned char ShadowInsideBoxAdjust(class xVec3 * volume /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x206D90 -> 0x2070F8 + class xVec3 * v0; // r7 + class xVec3 * v1; // r6 + class xVec3 * v2; // r2 + class xVec3 * v3; // r5 + class xVec3 normal[6]; // r29+0x90 + unsigned int i; // r16 + class RwCamera * mainCamera; // r3 + class RwMatrixTag * mainMatrix; // r22 + float nearclip; // r23 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207100 -> 0x00207238 +*/ +// Range: 0x207100 -> 0x207238 +static class RwCamera * ShadowCameraSetSpherePersp(class RwCamera * camera /* r18 */, class RwV3d * center /* r17 */, float radius /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207100 -> 0x207238 + class RwFrame * camFrame; // r16 + class RwMatrixTag * camMatrix; // r20 + class RwV3d * camPos; // r19 + float objDepth; // r22 + float nearZ; // r29+0x70 + float farZ; // r21 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207240 -> 0x00207554 +*/ +// Range: 0x207240 -> 0x207554 +static signed int ShadowRender(class RwCamera * shadowCamera /* r16 */, class RpIntersection * shadowZone /* r17 */, float shadowFactor /* r21 */, float fadeDist /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207240 -> 0x207554 + class _ProjectionParam param; // r29+0x40 + class RwMatrixTag * shadowMatrix; // r16 + float radius; // r22 + class RwV3d scl; // r29+0xD0 + class RwV3d tr; // r29+0xC0 + class xVec3 A; // r29+0xB0 + class xVec3 B; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207560 -> 0x002079AC +*/ +// Range: 0x207560 -> 0x2079AC +static class RpCollisionTriangle * ShadowRenderTriangleCB(class RpCollisionTriangle * collTriangle /* r17 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207560 -> 0x2079AC + class _ProjectionParam * param; // r16 + class RwV3d vShad[3]; // r29+0x30 + class RxObjSpace3DVertex * imv; // r4 + class xVec3 c; // r29+0x90 + class RwV3d _packed; // r29+0x80 + class RwV3d _packed; // r29+0x70 + class RwV3d _packed; // r29+0x60 + unsigned int * p0; // r2 + unsigned int * p1; // r2 + unsigned int * p2; // r2 + unsigned int sw; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002079B0 -> 0x00207B14 +*/ +// Range: 0x2079B0 -> 0x207B14 +static class RwCamera * ShadowCameraUpdate(class RwCamera * shadowCamera /* r19 */, void * model /* r18 */, void (* renderCB)(void *) /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2079B0 -> 0x207B14 + class RwRGBA bgColor; // r29+0x5C + class RwCamera * camera; // r16 + signed int fogstate; // r29+0x58 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207B20 -> 0x00207BAC +*/ +// Range: 0x207B20 -> 0x207BAC +static void ShadowCameraDestroy(class RwCamera * shadowCamera /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207B20 -> 0x207BAC + class RwRaster * raster; // r2 + class RwFrame * frame; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207BB0 -> 0x00207C88 +*/ +// Range: 0x207BB0 -> 0x207C88 +signed int Im2DRenderQuad(float x1 /* r29+0x110 */, float y1 /* r29+0x110 */, float x2 /* r29+0x110 */, float y2 /* r29+0x110 */, float z /* r29+0x110 */, float recipCamZ /* r29+0x110 */, float uvOffset /* r29+0x110 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207BB0 -> 0x207C88 + class RwSky2DVertex vx[4]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207C90 -> 0x00207C98 +*/ +// Range: 0x207C90 -> 0x207C98 +void xShadow_ListAdd(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207C90 -> 0x207C98 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207CA0 -> 0x00207D34 +*/ +// Range: 0x207CA0 -> 0x207D34 +void xShadowRender(class xEnt * ent /* r16 */, float max_dist /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207CA0 -> 0x207D34 + class xVec3 center; // r29+0x30 + float radius; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207D40 -> 0x00207F90 +*/ +// Range: 0x207D40 -> 0x207F90 +void xShadowReceiveShadow(class xEnt * ent /* r16 */, float shadowFactor /* r29+0x60 */, signed int shadowMode /* r2 */, class RwMatrixTag * shadowMat /* r2 */, class RwRaster * shadowRast /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207D40 -> 0x207F90 + class RwMatrixTag oldroot; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00207F90 -> 0x00208670 +*/ +// Range: 0x207F90 -> 0x208670 +static void xShadowReceiveShadowFastPS2(class xEnt * ent /* r19 */, float shadowFactor /* r20 */, signed int shadowMode /* r18 */, class RwMatrixTag * shadowMat /* r17 */, class RwRaster * shadowRast /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x207F90 -> 0x208670 + class RwCamera * shadowCamera; // r16 + class RwMatrixTag * shadowMatrix; // r2 + class RwMatrixTag invMatrix; // r29+0x90 + class RwV4dTag at; // r29+0x80 + float radius; // r22 + class RwV3d scl; // r29+0xE8 + class RwV3d tr; // r29+0xD8 + float fadeDist; // r21 + unsigned int i; // r21 + unsigned int num_verts; // r2 + class xVec3 * xvert; // r20 + class RpTriangle * tri; // r19 + class RpGeometry * geom; // r18 + class RwMatrixTag * mat; // r2 + class RpSkin * skin; // r2 + unsigned char val; // r4 + unsigned int vertex_color; // r17 + class xModelInstance * model; // r16 + unsigned int max_verts; // r5 + unsigned int model_num; // r4 + unsigned int ent_id; // r3 + class xVec3 * vert; // r2 + class RxObjSpace3DVertex * imv; // r2 + class xVec3 * v0; // r6 + class xVec3 * v1; // r4 + class xVec3 * v2; // r3 + float local_SHADOW_BIAS_AMT; // r29+0xFC + float local_SHADOW_MINNORMY; // r29+0xF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208670 -> 0x002086DC +*/ +// Range: 0x208670 -> 0x2086DC +unsigned int xShadowReceiveShadowSetup(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x208670 -> 0x2086DC + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002086E0 -> 0x002086E8 +*/ +// Range: 0x2086E0 -> 0x2086E8 +static void modelRenderCB(void * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2086E0 -> 0x2086E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002086F0 -> 0x00208D10 +*/ +// Range: 0x2086F0 -> 0x208D10 +void xShadowRenderWorld(class xVec3 * center /* r20 */, float radius /* r23 */, float max_dist /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2086F0 -> 0x208D10 + class RpIntersection shadowZone; // r29+0x1B0 + float fadeDistance; // r29+0x1F0 + class xSphere zone; // r29+0x1A0 + class RwFrame * camFrame; // r3 + class RwMatrixTag * camMatrix; // r19 + class xVec3 * at; // r21 + class xVec3 * up; // r22 + class xVec3 * rt; // r2 + class xRay3 R[1]; // r29+0x170 + class xCollis entcoll[1]; // r29+0x120 + class xCollis envcoll[1]; // r29+0xD0 + float sf[3][2]; // r29+0xB0 + unsigned int hit_env; // r18 + unsigned int hit_ent; // r17 + float ent_dist; // r21 + float env_dist; // r20 + class xVec3 ent_pos; // r29+0x1E0 + class xVec3 env_pos; // r29+0x1D0 + signed int i; // r16 + class xQCData q; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208D10 -> 0x00208D90 +*/ +// Range: 0x208D10 -> 0x208D90 +void xShadowCameraUpdate(void * model /* r19 */, void (* renderCB)(void *) /* r18 */, class xVec3 * center /* r17 */, float radius /* r20 */, signed int shadowMode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x208D10 -> 0x208D90 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208D90 -> 0x00208E18 +*/ +// Range: 0x208D90 -> 0x208E18 +void xShadowSetLight(class xVec3 * target_pos /* r16 */, class xVec3 * in_vec /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x208D90 -> 0x208E18 + class xVec3 zvec; // r29+0x70 + class xMat4x3 matrix; // r29+0x30 + class RwFrame * camFrame; // r17 + class RwMatrixTag * camMatrix; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208E20 -> 0x00208E44 +*/ +// Range: 0x208E20 -> 0x208E44 +void xShadowSetWorld(class RpWorld * world /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x208E20 -> 0x208E44 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208E50 -> 0x00208F64 +*/ +// Range: 0x208E50 -> 0x208F64 +static signed int SetupShadow() { + // Blocks + /* anonymous block */ { + // Range: 0x208E50 -> 0x208F64 + signed int res; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadow.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208F70 -> 0x00208FD0 +*/ +// Range: 0x208F70 -> 0x208FD0 +void xShadowInit() { + // Blocks + /* anonymous block */ { + // Range: 0x208F70 -> 0x208FD0 + class RwFrame * frame; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xShadowSimple.cpp b/dwarf/SB/Core/x/xShadowSimple.cpp new file mode 100644 index 000000000..a6dea931b --- /dev/null +++ b/dwarf/SB/Core/x/xShadowSimple.cpp @@ -0,0 +1,3432 @@ +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xShadowSimpleQueue sCollQueue[2]; // size: 0x28, address: 0x5DE720 +static class RxRenderStateVector xrsv; // size: 0x2C, address: 0x5DE750 +static class RxObjSpace3DVertex sShadVert[384]; // size: 0x3600, address: 0x5DE780 +static class RwRaster * sShadRasters[64]; // size: 0x100, address: 0x5E1D80 +static class RwRaster * sShadRaster; // size: 0x4, address: 0x5100FC +static unsigned int sShadVertCount; // size: 0x4, address: 0x510100 +static class RwMatrixTag * sModelMat; // size: 0x4, address: 0x510110 +signed int shadowRayEntCB(class xEnt *, void *); // size: 0x0, address: 0x32BCD0 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class RpCollisionTriangle * shadowRayCB(class RpIntersection *, class RpWorldSector *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x32C0C0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RpCollisionTriangle * shadowRayModelCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x32C0A0 +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class rxReq { + // total size: 0x0 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum RwTextureAddressMode { + rwTEXTUREADDRESSNATEXTUREADDRESS = 0, + rwTEXTUREADDRESSWRAP = 1, + rwTEXTUREADDRESSMIRROR = 2, + rwTEXTUREADDRESSCLAMP = 3, + rwTEXTUREADDRESSBORDER = 4, + rwTEXTUREADDRESSMODEFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class RxRenderStateVector { + // total size: 0x2C +public: + unsigned int Flags; // offset 0x0, size 0x4 + enum RwShadeMode ShadeMode; // offset 0x4, size 0x4 + enum RwBlendFunction SrcBlend; // offset 0x8, size 0x4 + enum RwBlendFunction DestBlend; // offset 0xC, size 0x4 + class RwRaster * TextureRaster; // offset 0x10, size 0x4 + enum RwTextureAddressMode AddressModeU; // offset 0x14, size 0x4 + enum RwTextureAddressMode AddressModeV; // offset 0x18, size 0x4 + enum RwTextureFilterMode FilterMode; // offset 0x1C, size 0x4 + class RwRGBA BorderColor; // offset 0x20, size 0x4 + enum RwFogType FogType; // offset 0x24, size 0x4 + class RwRGBA FogColor; // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class ShadowCBParam { + // total size: 0x8 +public: + class xShadowSimpleCache * cache; // offset 0x0, size 0x4 + class RpIntersection * isx; // offset 0x4, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class zNPCTiki : public zNPCCommon { + // total size: 0x378 +public: + unsigned int tikiFlag; // offset 0x2A0, size 0x4 + class xVec3 lastAt; // offset 0x2A4, size 0xC + class xBound origLocalBound; // offset 0x2B0, size 0x4C + class xVec3 deltaPos; // offset 0x2FC, size 0xC + float timeToLive; // offset 0x308, size 0x4 + float t1; // offset 0x30C, size 0x4 + float t2; // offset 0x310, size 0x4 + float t3; // offset 0x314, size 0x4 + class xVec3 v1; // offset 0x318, size 0xC + float vel; // offset 0x324, size 0x4 + float landHt; // offset 0x328, size 0x4 + class xEnt * nonTikiParent; // offset 0x32C, size 0x4 + class xVec3 nonTikiParentDisp; // offset 0x330, size 0xC + unsigned char numParents; // offset 0x33C, size 0x1 + class zNPCTiki * parents[4]; // offset 0x340, size 0x10 + unsigned char numChildren; // offset 0x350, size 0x1 + class zNPCTiki * children[4]; // offset 0x354, size 0x10 + class zNPCTiki * nextOrphan; // offset 0x364, size 0x4 + unsigned int updatedParents; // offset 0x368, size 0x4 + signed int contactParent; // offset 0x36C, size 0x4 + void * tikiAnim; // offset 0x370, size 0x4 + float tikiAnimTime; // offset 0x374, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RyzMemData { + // total size: 0x1 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +enum RwShadeMode { + rwSHADEMODENASHADEMODE = 0, + rwSHADEMODEFLAT = 1, + rwSHADEMODEGOURAUD = 2, + rwSHADEMODEFORCEENUMSIZEINT = 2147483647, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zSimpleShadowTableHeader { + // total size: 0x4 +public: + unsigned int num; // offset 0x0, size 0x4 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +enum RwTextureFilterMode { + rwFILTERNAFILTERMODE = 0, + rwFILTERNEAREST = 1, + rwFILTERLINEAR = 2, + rwFILTERMIPNEAREST = 3, + rwFILTERMIPLINEAR = 4, + rwFILTERLINEARMIPNEAREST = 5, + rwFILTERLINEARMIPLINEAR = 6, + rwTEXTUREFILTERMODEFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xShadowSimpleQueue { + // total size: 0x14 +public: + class xShadowSimpleCache * cache; // offset 0x0, size 0x4 + unsigned int priority; // offset 0x4, size 0x4 + class xEnt * ent; // offset 0x8, size 0x4 + float radius; // offset 0xC, size 0x4 + float ecc; // offset 0x10, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RwBlendFunction { + rwBLENDNABLEND = 0, + rwBLENDZERO = 1, + rwBLENDONE = 2, + rwBLENDSRCCOLOR = 3, + rwBLENDINVSRCCOLOR = 4, + rwBLENDSRCALPHA = 5, + rwBLENDINVSRCALPHA = 6, + rwBLENDDESTALPHA = 7, + rwBLENDINVDESTALPHA = 8, + rwBLENDDESTCOLOR = 9, + rwBLENDINVDESTCOLOR = 10, + rwBLENDSRCALPHASAT = 11, + rwBLENDFUNCTIONFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032A6F0 -> 0x0032A990 +*/ +// Range: 0x32A6F0 -> 0x32A990 +void xShadowSimple_Render() { + // Blocks + /* anonymous block */ { + // Range: 0x32A6F0 -> 0x32A990 + signed int qnum; // r20 + class xEnt * ent; // r19 + unsigned short shadowWas; // r18 + unsigned int i; // r17 + unsigned int j; // r16 + class RwRaster * raster; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032A990 -> 0x0032B268 +*/ +// Range: 0x32A990 -> 0x32B268 +void xShadowSimple_Add(class xShadowSimpleCache * cache /* r18 */, class xEnt * ent /* r17 */, float radius /* r21 */, float ecc /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32A990 -> 0x32B268 + signed int i; // r16 + unsigned short shadowWas; // r16 + unsigned int moved; // r19 + class xVec3 * vert; // r7 + class xVec3 xformvert[3]; // r29+0xB0 + class xVec3 xformnorm; // r29+0xE0 + class xEnt * castOnEnt; // r2 + float poo; // r1 + float nx; // r6 + float nz; // r5 + float pdot; // r1 + class xVec3 * v0; // r6 + class xVec3 * v1; // r5 + signed int j; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032B270 -> 0x0032B458 +*/ +// Range: 0x32B270 -> 0x32B458 +void xShadowSimple_CacheInit(class xShadowSimpleCache * cache /* r29+0xA8 */, class xEnt * ent /* r23 */, unsigned char alpha /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32B270 -> 0x32B458 + signed int i; // r22 + signed int n; // r30 + unsigned int j; // r20 + class zSimpleShadowTableHeader * sst; // r19 + class RwRaster * raster; // r18 + unsigned int flags; // r21 + unsigned int size; // r29+0xAC + class RwTexture * tex; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032B460 -> 0x0032B554 +*/ +// Range: 0x32B460 -> 0x32B554 +void xShadowSimple_Init() { + // Blocks + /* anonymous block */ { + // Range: 0x32B460 -> 0x32B554 + class RwTexture * tex; // r2 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032B560 -> 0x0032B808 +*/ +// Range: 0x32B560 -> 0x32B808 +static void xShadowSimple_AddVerts(class xShadowSimpleCache * cache /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32B560 -> 0x32B808 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032B810 -> 0x0032BA64 +*/ +// Range: 0x32B810 -> 0x32BA64 +static void xShadowSimple_CalcCorners(class xShadowSimpleCache * cache /* r17 */, class xEnt * ent /* r2 */, float radius /* r21 */, float ecc /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32B810 -> 0x32BA64 + class RwMatrixTag * mat; // r16 + class xVec3 tempnorm; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032BA70 -> 0x0032BCC8 +*/ +// Range: 0x32BA70 -> 0x32BCC8 +static void xShadowSimple_SceneCollide(class xShadowSimpleCache * cache /* r18 */, class xVec3 * pos /* r2 */, float depth /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32BA70 -> 0x32BCC8 + class xEnv * env; // r2 + class RpIntersection isx; // r29+0x60 + class ShadowCBParam cbparam; // r29+0x88 + class xQCData qcd; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032BCD0 -> 0x0032C094 +*/ +// Range: 0x32BCD0 -> 0x32C094 +static signed int shadowRayEntCB(class xEnt * ent /* r17 */, void * cbdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32BCD0 -> 0x32C094 + class ShadowCBParam * cbparam; // r16 + class zNPCTiki * tiki; // r2 + float endY; // r5 + float dist; // r1 + class xModelInstance * m; // r18 + float oldHeight; // r20 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032C0A0 -> 0x0032C0B4 +*/ +// Range: 0x32C0A0 -> 0x32C0B4 +static class RpCollisionTriangle * shadowRayModelCB(class RpIntersection * isx /* r2 */, class RpCollisionTriangle * tri /* r2 */, float dist /* r29 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32C0A0 -> 0x32C0B4 + } +} + +/* + Compile unit: C:\SB\Core\x\xShadowSimple.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032C0C0 -> 0x0032C244 +*/ +// Range: 0x32C0C0 -> 0x32C244 +static class RpCollisionTriangle * shadowRayCB(class RpCollisionTriangle * tri /* r17 */, float dist /* r20 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32C0C0 -> 0x32C244 + class xVec3 xformnorm; // r29+0x50 + class xVec3 * norm; // r2 + float * testdist; // r18 + class xShadowSimpleCache * cache; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xSkyDome.cpp b/dwarf/SB/Core/x/xSkyDome.cpp new file mode 100644 index 000000000..b92a7dbdc --- /dev/null +++ b/dwarf/SB/Core/x/xSkyDome.cpp @@ -0,0 +1,1065 @@ +/* + Compile unit: C:\SB\Core\x\xSkyDome.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class SkyDomeInfo sSkyList[8]; // size: 0x60, address: 0x5CBF20 +static signed int sSkyCount; // size: 0x4, address: 0x50FE54 +void xSkyDome_EmptyRender(class xEnt *); // size: 0x0, address: 0x2ADAC0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class SkyDomeInfo { + // total size: 0xC +public: + class xEnt * ent; // offset 0x0, size 0x4 + signed int sortorder; // offset 0x4, size 0x4 + signed int lockY; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xSkyDome.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AD7E0 -> 0x002AD938 +*/ +// Range: 0x2AD7E0 -> 0x2AD938 +void xSkyDome_Render() { + // Blocks + /* anonymous block */ { + // Range: 0x2AD7E0 -> 0x2AD938 + class RwMatrixTag * cammat; // r19 + signed int i; // r18 + class xEnt * ent; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xSkyDome.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AD940 -> 0x002ADAA8 +*/ +// Range: 0x2AD940 -> 0x2ADAA8 +void xSkyDome_AddEntity(class xEnt * ent /* r16 */, signed int sortorder /* r2 */, signed int lockY /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AD940 -> 0x2ADAA8 + signed int i; // r8 + signed int j; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xSkyDome.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADAB0 -> 0x002ADAB8 +*/ +// Range: 0x2ADAB0 -> 0x2ADAB8 +void xSkyDome_Setup() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADAB0 -> 0x2ADAB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xSkyDome.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADAC0 -> 0x002ADAC8 +*/ +// Range: 0x2ADAC0 -> 0x2ADAC8 +static void xSkyDome_EmptyRender() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADAC0 -> 0x2ADAC8 + } +} + diff --git a/dwarf/SB/Core/x/xSnd.cpp b/dwarf/SB/Core/x/xSnd.cpp new file mode 100644 index 000000000..2c87fdb4a --- /dev/null +++ b/dwarf/SB/Core/x/xSnd.cpp @@ -0,0 +1,1716 @@ +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class _xSndDelayed sDelayedSnd[16]; // size: 0x340, address: 0x5B74C0 +static unsigned int sDelayedPaused; // size: 0x4, address: 0x50FB60 +static unsigned int snd_annoy_cnt; // size: 0x4, address: 0x0 +static unsigned int snd_annoy_previous[64]; // size: 0x100, address: 0x0 +class xSndGlobals gSnd; // size: 0x13A0, address: 0x5B7800 +static class fade_data faders[128]; // size: 0xC00, address: 0x5B8BA0 +static signed int faders_active; // size: 0x4, address: 0x50FB64 +float sTimeElapsed; // size: 0x4, address: 0x50F504 +class fade_data { + // total size: 0x18 +public: + unsigned char in; // offset 0x0, size 0x1 + unsigned int handle; // offset 0x4, size 0x4 + float start_delay; // offset 0x8, size 0x4 + float time; // offset 0xC, size 0x4 + float end_time; // offset 0x10, size 0x4 + float volume; // offset 0x14, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class iSndFileInfo { + // total size: 0x1C +public: + unsigned int ID; // offset 0x0, size 0x4 + unsigned int assetID; // offset 0x4, size 0x4 + unsigned short sample_rate; // offset 0x8, size 0x2 + unsigned char is_streamed; // offset 0xA, size 0x1 + union { // inferred + class /* @class */ { + // total size: 0x8 + public: + unsigned int address; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + } nonstream; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + signed int file_index; // offset 0x0, size 0x4 + unsigned int lsn; // offset 0x4, size 0x4 + unsigned int data_size; // offset 0x8, size 0x4 + unsigned short stream_interleave_size; // offset 0xC, size 0x2 + unsigned short stream_interleave_count; // offset 0xE, size 0x2 + } stream; // offset 0xC, size 0x10 + }; +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xSndVoiceInfo { + // total size: 0x64 +public: + unsigned int assetID; // offset 0x0, size 0x4 + unsigned int sndID; // offset 0x4, size 0x4 + unsigned int parentID; // offset 0x8, size 0x4 + class xVec3 * parentPos; // offset 0xC, size 0x4 + signed int internalID; // offset 0x10, size 0x4 + unsigned int flags; // offset 0x14, size 0x4 + unsigned short pad; // offset 0x18, size 0x2 + unsigned short priority; // offset 0x1A, size 0x2 + float vol; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + unsigned int sample_rate; // offset 0x24, size 0x4 + unsigned int deadct; // offset 0x28, size 0x4 + enum sound_category category; // offset 0x2C, size 0x4 + class xVec3 actualPos; // offset 0x30, size 0xC + class xVec3 playPos; // offset 0x3C, size 0xC + float innerRadius2; // offset 0x48, size 0x4 + float outerRadius2; // offset 0x4C, size 0x4 + unsigned int lock_owner; // offset 0x50, size 0x4 + class iSndInfo ps; // offset 0x54, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +enum sound_category { + SND_CAT_INVALID = -1, + SND_CAT_GAME = 0, + SND_CAT_DIALOG = 1, + SND_CAT_MUSIC = 2, + SND_CAT_CUTSCENE = 3, + SND_CAT_UI = 4, + SND_CAT_NUM_CATEGORIES = 5, +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int address; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _xSndDelayed { + // total size: 0x34 +public: + unsigned int id; // offset 0x0, size 0x4 + float vol; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 + unsigned int priority; // offset 0xC, size 0x4 + unsigned int flags; // offset 0x10, size 0x4 + unsigned int parentID; // offset 0x14, size 0x4 + class xEnt * parentEnt; // offset 0x18, size 0x4 + class xVec3 * pos; // offset 0x1C, size 0x4 + float innerRadius; // offset 0x20, size 0x4 + float outerRadius; // offset 0x24, size 0x4 + enum sound_category category; // offset 0x28, size 0x4 + float delay; // offset 0x2C, size 0x4 + unsigned int pad0; // offset 0x30, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + signed int file_index; // offset 0x0, size 0x4 + unsigned int lsn; // offset 0x4, size 0x4 + unsigned int data_size; // offset 0x8, size 0x4 + unsigned short stream_interleave_size; // offset 0xC, size 0x2 + unsigned short stream_interleave_count; // offset 0xE, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum sound_effect { + SND_EFFECT_NONE = 0, + SND_EFFECT_CAVE = 1, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum sound_listener_type { + SND_LISTENER_CAMERA = 0, + SND_LISTENER_PLAYER = 1, + SND_MAX_LISTENER_TYPES = 2, +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class iSndInfo { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + class iSndVol vol; // offset 0x4, size 0x4 + unsigned int pitch; // offset 0x8, size 0x4 + signed int lastStreamBuffer; // offset 0xC, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +enum sound_listener_game_mode { + SND_LISTENER_MODE_PLAYER = 0, + SND_LISTENER_MODE_CAMERA = 1, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class iSndVol { + // total size: 0x4 +public: + signed short volL; // offset 0x0, size 0x2 + signed short volR; // offset 0x2, size 0x2 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xSndGlobals { + // total size: 0x13A0 +public: + unsigned int stereo; // offset 0x0, size 0x4 + unsigned int SndCount; // offset 0x4, size 0x4 + float categoryVolFader[5]; // offset 0x8, size 0x14 + class xSndVoiceInfo voice[48]; // offset 0x1C, size 0x12C0 + class xMat4x3 listenerMat[2]; // offset 0x12E0, size 0x80 + enum sound_listener_game_mode listenerMode; // offset 0x1360, size 0x4 + unsigned int suspendCD; // offset 0x1364, size 0x4 + class xVec3 right; // offset 0x1368, size 0xC + class xVec3 up; // offset 0x1374, size 0xC + class xVec3 at; // offset 0x1380, size 0xC + class xVec3 pos; // offset 0x138C, size 0xC +}; + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00208FD0 -> 0x00209018 +*/ +// Range: 0x208FD0 -> 0x209018 +void xSndStreamUnlock(unsigned int owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x208FD0 -> 0x209018 + class xSndVoiceInfo * begin; // r6 + class xSndVoiceInfo * end; // r5 + class xSndVoiceInfo * v; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209020 -> 0x00209078 +*/ +// Range: 0x209020 -> 0x209078 +unsigned char xSndStreamReady(unsigned int owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209020 -> 0x209078 + class xSndVoiceInfo * begin; // r5 + class xSndVoiceInfo * end; // r3 + class xSndVoiceInfo * v; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209080 -> 0x00209220 +*/ +// Range: 0x209080 -> 0x209220 +unsigned char xSndStreamLock(unsigned int owner /* r17 */, enum sound_category kill_cat /* r2 */, unsigned char kill_nonlooping /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209080 -> 0x209220 + class xSndVoiceInfo * begin; // r16 + class xSndVoiceInfo * end; // r4 + class xSndVoiceInfo * v; // r3 + class xSndVoiceInfo * v; // r3 + class xSndVoiceInfo * v; // r3 + class xSndVoiceInfo * v; // r18 + class xSndVoiceInfo * v; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209220 -> 0x002093AC +*/ +// Range: 0x209220 -> 0x2093AC +void xSndStopFade(unsigned int snd /* r16 */, float fade_time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209220 -> 0x2093AC + class fade_data * it; // r5 + class fade_data * end; // r4 + class fade_data * it; // r5 + class fade_data * end; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002093B0 -> 0x002094E0 +*/ +// Range: 0x2093B0 -> 0x2094E0 +unsigned int xSndPlay3DFade(unsigned int id /* r2 */, float vol /* r22 */, float pitch /* r29+0x20 */, unsigned int priority /* r2 */, unsigned int flags /* r2 */, class xVec3 * pos /* r2 */, float innerRadius /* r29+0x20 */, float outerRadius /* r29+0x20 */, enum sound_category category /* r2 */, float delay /* r21 */, float fade_time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2093B0 -> 0x2094E0 + class fade_data & f; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002094E0 -> 0x00209630 +*/ +// Range: 0x2094E0 -> 0x209630 +static void update_faders(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2094E0 -> 0x209630 + class fade_data * it; // r17 + class fade_data * end; // r16 + float volume; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209630 -> 0x00209638 +*/ +// Range: 0x209630 -> 0x209638 +void xSndSetExternalCallback(void (* callback)(unsigned int, unsigned char) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209630 -> 0x209638 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209640 -> 0x00209648 +*/ +// Range: 0x209640 -> 0x209648 +void xSndLoadExternalData(unsigned int snd /* r2 */, void * data /* r2 */, signed int forceBuffer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209640 -> 0x209648 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209650 -> 0x00209658 +*/ +// Range: 0x209650 -> 0x209658 +void xSndSetPitch(unsigned int snd /* r2 */, float pitch /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209650 -> 0x209658 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209660 -> 0x00209668 +*/ +// Range: 0x209660 -> 0x209668 +void xSndSetVol(unsigned int snd /* r2 */, float vol /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209660 -> 0x209668 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209670 -> 0x002096F8 +*/ +// Range: 0x209670 -> 0x2096F8 +void xSndStopChildren(unsigned int pid /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209670 -> 0x2096F8 + unsigned int i; // r17 + class xSndVoiceInfo * vp; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209700 -> 0x00209740 +*/ +// Range: 0x209700 -> 0x209740 +void xSndParentDied(unsigned int pid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209700 -> 0x209740 + unsigned int i; // r7 + class xSndVoiceInfo * vp; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209740 -> 0x00209748 +*/ +// Range: 0x209740 -> 0x209748 +void xSndStop(unsigned int snd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209740 -> 0x209748 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209750 -> 0x002097A8 +*/ +// Range: 0x209750 -> 0x2097A8 +unsigned int xSndIDIsPlaying(unsigned int sndID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209750 -> 0x2097A8 + class xSndVoiceInfo * vp; // r5 + unsigned int i; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002097B0 -> 0x002097B8 +*/ +// Range: 0x2097B0 -> 0x2097B8 +void xSndStartStereo(unsigned int id1 /* r2 */, unsigned int id2 /* r2 */, float pitch /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2097B0 -> 0x2097B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002097C0 -> 0x002097E0 +*/ +// Range: 0x2097C0 -> 0x2097E0 +unsigned int xSndIsReady(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2097C0 -> 0x2097E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002097E0 -> 0x00209D40 +*/ +// Range: 0x2097E0 -> 0x209D40 +unsigned int xSndPlayInternal(unsigned int id /* r22 */, float vol /* r29+0xB0 */, float pitch /* r23 */, unsigned int priority /* r21 */, unsigned int flags /* r20 */, unsigned int parentID /* r19 */, class xEnt * parentEnt /* r18 */, class xVec3 * pos /* r17 */, float innerRadius /* r22 */, float outerRadius /* r20 */, enum sound_category category /* r16 */, float delay /* r29+0xB0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2097E0 -> 0x209D40 + float temp; // r29+0xB0 + unsigned int i; // r4 + unsigned int i; // r4 + unsigned int i; // r4 + unsigned int voice; // r2 + unsigned int sample_rate; // r30 + signed int internalID; // r23 + class iSndFileInfo * ip; // r2 + class iSndFileInfo * ip; // r2 + class xSndVoiceInfo * vp; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209D40 -> 0x00209D88 +*/ +// Range: 0x209D40 -> 0x209D88 +unsigned int xSndPlay3D(unsigned int id /* r2 */, float vol /* r29+0x10 */, float pitch /* r29+0x10 */, unsigned int priority /* r2 */, unsigned int flags /* r2 */, class xVec3 * pos /* r2 */, float innerRadius /* r29+0x10 */, float outerRadius /* r29+0x10 */, enum sound_category category /* r2 */, float delay /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209D40 -> 0x209D88 + unsigned int sndID; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209D90 -> 0x00209DA8 +*/ +// Range: 0x209D90 -> 0x209DA8 +unsigned int xSndPlay3D(unsigned int id /* r2 */, float vol /* r29 */, float pitch /* r29 */, unsigned int priority /* r2 */, unsigned int flags /* r2 */, class xEnt * parent /* r2 */, float innerRadius /* r29 */, float outerRadius /* r29 */, enum sound_category category /* r2 */, float delay /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209D90 -> 0x209DA8 + unsigned int sndID; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209DB0 -> 0x00209DCC +*/ +// Range: 0x209DB0 -> 0x209DCC +unsigned int xSndPlay(unsigned int id /* r2 */, float vol /* r29 */, float pitch /* r29 */, unsigned int priority /* r2 */, unsigned int flags /* r2 */, unsigned int parentID /* r2 */, enum sound_category category /* r2 */, float delay /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209DB0 -> 0x209DCC + unsigned int sndID; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209DD0 -> 0x00209DF0 +*/ +// Range: 0x209DD0 -> 0x209DF0 +void xSndExit() { + // Blocks + /* anonymous block */ { + // Range: 0x209DD0 -> 0x209DF0 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209DF0 -> 0x00209DFC +*/ +// Range: 0x209DF0 -> 0x209DFC +void xSndSelectListenerMode(enum sound_listener_game_mode listenerMode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209DF0 -> 0x209DFC + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209E00 -> 0x00209EE8 +*/ +// Range: 0x209E00 -> 0x209EE8 +void xSndSetListenerData(enum sound_listener_type listenerType /* r2 */, class xMat4x3 * pMat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209E00 -> 0x209EE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209EF0 -> 0x00209FAC +*/ +// Range: 0x209EF0 -> 0x209FAC +void xSndUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x209EF0 -> 0x209FAC + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00209FB0 -> 0x0020A0CC +*/ +// Range: 0x209FB0 -> 0x20A0CC +void xSndInternalUpdateVoicePos(class xSndVoiceInfo * pVoice /* r6 */) { + // Blocks + /* anonymous block */ { + // Range: 0x209FB0 -> 0x20A0CC + class xEnt * ent; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A0D0 -> 0x0020A338 +*/ +// Range: 0x20A0D0 -> 0x20A338 +void xSndProcessSoundPos(class xVec3 * pActual /* r2 */, class xVec3 * pProcessed /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A0D0 -> 0x20A338 + class xVec3 playerDelta; // r29+0x70 + float inwardShift; // r6 + float factor; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A340 -> 0x0020A4E0 +*/ +// Range: 0x20A340 -> 0x20A4E0 +static void xSndCalculateListenerPosition() { + // Blocks + /* anonymous block */ { + // Range: 0x20A340 -> 0x20A4E0 + class xMat4x3 * pMat; // r4 + class xMat4x3 * pMat; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A4E0 -> 0x0020A560 +*/ +// Range: 0x20A4E0 -> 0x20A560 +static void xSndAddDelayed(unsigned int id /* r2 */, float vol /* r29 */, float pitch /* r29 */, unsigned int priority /* r2 */, unsigned int flags /* r2 */, unsigned int parentID /* r2 */, class xEnt * parentEnt /* r2 */, class xVec3 * pos /* r2 */, float innerRadius /* r29 */, float outerRadius /* r29 */, enum sound_category category /* r2 */, float delay /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A4E0 -> 0x20A560 + class _xSndDelayed * snd; // r12 + signed int i; // r11 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A560 -> 0x0020A620 +*/ +// Range: 0x20A560 -> 0x20A620 +void xSndStopAll(unsigned int mask /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A560 -> 0x20A620 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A620 -> 0x0020A638 +*/ +// Range: 0x20A620 -> 0x20A638 +void xSndSetCategoryVol(enum sound_category category /* r2 */, float vol /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A620 -> 0x20A638 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A640 -> 0x0020A6D4 +*/ +// Range: 0x20A640 -> 0x20A6D4 +void xSndPauseCategory(unsigned int mask /* r19 */, unsigned int pause /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A640 -> 0x20A6D4 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A6E0 -> 0x0020A784 +*/ +// Range: 0x20A6E0 -> 0x20A784 +void xSndPauseAll(unsigned int pause_effects /* r19 */, unsigned int pause_streams /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A6E0 -> 0x20A784 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A790 -> 0x0020A820 +*/ +// Range: 0x20A790 -> 0x20A820 +void xSndResume() { + // Blocks + /* anonymous block */ { + // Range: 0x20A790 -> 0x20A820 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A820 -> 0x0020A8C0 +*/ +// Range: 0x20A820 -> 0x20A8C0 +void xSndSuspend() { + // Blocks + /* anonymous block */ { + // Range: 0x20A820 -> 0x20A8C0 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A8C0 -> 0x0020A904 +*/ +// Range: 0x20A8C0 -> 0x20A904 +void xSndSetEnvironmentalEffect(enum sound_effect effectType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20A8C0 -> 0x20A904 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A910 -> 0x0020A9E4 +*/ +// Range: 0x20A910 -> 0x20A9E4 +void xSndSceneInit() { + // Blocks + /* anonymous block */ { + // Range: 0x20A910 -> 0x20A9E4 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xSnd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020A9F0 -> 0x0020AAF8 +*/ +// Range: 0x20A9F0 -> 0x20AAF8 +void xSndInit() { + // Blocks + /* anonymous block */ { + // Range: 0x20A9F0 -> 0x20AAF8 + unsigned int i; // r4 + class xSndVoiceInfo * voice; // r3 + } +} + diff --git a/dwarf/SB/Core/x/xSnd.h b/dwarf/SB/Core/x/xSnd.h new file mode 100644 index 000000000..d8fa66600 --- /dev/null +++ b/dwarf/SB/Core/x/xSnd.h @@ -0,0 +1,14 @@ +/* + Compile unit: C:\SB\Core\x\xSnd.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031DC10 -> 0x0031DC98 +*/ +// Range: 0x31DC10 -> 0x31DC98 +void clear(class sound_queue * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31DC10 -> 0x31DC98 + } +} + diff --git a/dwarf/SB/Core/x/xSpline.cpp b/dwarf/SB/Core/x/xSpline.cpp new file mode 100644 index 000000000..593296dab --- /dev/null +++ b/dwarf/SB/Core/x/xSpline.cpp @@ -0,0 +1,283 @@ +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static float sBasisUniformBspline[4][4]; // size: 0x40, address: 0x0 +static float sBasisBezier[4][4]; // size: 0x40, address: 0x418D10 +static float sBasisHermite[4][4]; // size: 0x40, address: 0x418D50 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020AB00 -> 0x0020AC44 +*/ +// Range: 0x20AB00 -> 0x20AC44 +class xSpline3 * xSpline3_Bezier(class xVec3 * points /* r2 */, float * time /* r2 */, unsigned int numpoints /* r2 */, unsigned int numalloc /* r2 */, class xVec3 * p1 /* r18 */, class xVec3 * p2 /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20AB00 -> 0x20AC44 + class xSpline3 * spl; // r16 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020AC50 -> 0x0020AD9C +*/ +// Range: 0x20AC50 -> 0x20AD9C +static class xSpline3 * AllocSpline3(class xVec3 * points /* r21 */, float * time /* r20 */, unsigned int numpoints /* r19 */, unsigned int numalloc /* r18 */, unsigned int flags /* r17 */, unsigned int type /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20AC50 -> 0x20AD9C + class xSpline3 * spl; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020ADA0 -> 0x0020AF4C +*/ +// Range: 0x20ADA0 -> 0x20AF4C +void xSpline3_ArcInit(class xSpline3 * spl /* r17 */, unsigned int sample /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20ADA0 -> 0x20AF4C + unsigned int i; // r21 + unsigned int seg; // r20 + float len; // r21 + float arcsum; // r20 + class xCoef3 tempCoef; // r29+0x80 + class xCoef3 * coef; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020AF50 -> 0x0020AF98 +*/ +// Range: 0x20AF50 -> 0x20AF98 +float xSpline3_EvalArcApprox(class xSpline3 * spl /* r2 */, float s /* r20 */, unsigned int deriv /* r2 */, class xVec3 * o /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20AF50 -> 0x20AF98 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020AFA0 -> 0x0020B2E8 +*/ +// Range: 0x20AFA0 -> 0x20B2E8 +static float ArcEvalIterate(class xSpline3 * spl /* r2 */, float s /* r22 */, unsigned int deriv /* r19 */, class xVec3 * o /* r18 */, unsigned int iterations /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20AFA0 -> 0x20B2E8 + class xCoef3 * coef; // r20 + class xCoef3 tempCoef; // r29+0x80 + float umin; // r21 + float umax; // r20 + float smin; // r25 + float smax; // r24 + float utest; // r23 + float arctest; // r29+0xB0 + signed int min; // r8 + signed int max; // r2 + signed int test; // r7 + signed int seg; // r16 + signed int segmul; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020B2F0 -> 0x0020B654 +*/ +// Range: 0x20B2F0 -> 0x20B654 +void xSpline3_EvalSeg(class xSpline3 * spl /* r18 */, float u /* r20 */, unsigned int deriv /* r17 */, class xVec3 * o /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20B2F0 -> 0x20B654 + class xCoef3 tempCoef; // r29+0x50 + unsigned int seg; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020B660 -> 0x0020BABC +*/ +// Range: 0x20B660 -> 0x20BABC +static class xCoef3 * CoefSeg3(class xSpline3 * spl /* r19 */, unsigned int seg /* r18 */, class xCoef3 * tempCoef /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20B660 -> 0x20BABC + float N[7][4]; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020BAC0 -> 0x0020BCB0 +*/ +// Range: 0x20BAC0 -> 0x20BCB0 +static void EvalBspline3(class xSpline3 * spl /* r19 */, float u /* r29+0x100 */, unsigned int deriv /* r18 */, class xVec3 * o /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20BAC0 -> 0x20BCB0 + float N[7][4]; // r29+0x90 + class xCoef3 coef; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020BCB0 -> 0x0020BEB4 +*/ +// Range: 0x20BCB0 -> 0x20BEB4 +static void BasisBspline(float (* N)[4] /* r2 */, float * t /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20BCB0 -> 0x20BEB4 + unsigned int i; // r17 + unsigned int k; // r16 + unsigned int c; // r25 + float d1; // r8 + float d2; // r7 + float Ntemp[4]; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020BEC0 -> 0x0020C0A8 +*/ +// Range: 0x20BEC0 -> 0x20C0A8 +static void EvalCoef3(class xCoef3 * coef /* r2 */, float u /* r29 */, unsigned int deriv /* r2 */, class xVec3 * o /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20BEC0 -> 0x20C0A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C0B0 -> 0x0020C284 +*/ +// Range: 0x20C0B0 -> 0x20C284 +static float ArcLength3(class xCoef3 * coef /* r2 */, float ustart /* r29 */, float uend /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20C0B0 -> 0x20C284 + unsigned int i; // r4 + float A; // r7 + float B; // r6 + float C; // r5 + float D; // r4 + float E; // r3 + float h; // r2 + float sum; // r1 + float u; // r10 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C290 -> 0x0020C4AC +*/ +// Range: 0x20C290 -> 0x20C4AC +static void Interpolate_Bspline(class xVec3 * data /* r22 */, class xVec3 * control /* r21 */, float * knots /* r23 */, unsigned int nodata /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20C290 -> 0x20C4AC + unsigned int i; // r8 + float * alpha; // r19 + float * beta; // r18 + float * gamma; // r17 + float t1; // r29+0x90 + float t2; // r7 + float t3; // r4 + float t4; // r6 + float t5; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xSpline.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C4B0 -> 0x0020C748 +*/ +// Range: 0x20C4B0 -> 0x20C748 +static void Tridiag_Solve(float * a /* r23 */, float * b /* r22 */, float * c /* r21 */, class xVec3 * d /* r20 */, class xVec3 * x /* r19 */, signed int n /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20C4B0 -> 0x20C748 + signed int j; // r11 + float beta; // r3 + float * gamma; // r17 + class xVec3 * delta; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xString.cpp b/dwarf/SB/Core/x/xString.cpp new file mode 100644 index 000000000..cbfeb30f0 --- /dev/null +++ b/dwarf/SB/Core/x/xString.cpp @@ -0,0 +1,227 @@ +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020DDA0 -> 0x0020E410 +*/ +// Range: 0x20DDA0 -> 0x20E410 +char * find_char(class substr & s /* r2 */, class substr & cs /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20DDA0 -> 0x20E410 + char * p; // r2 + char * d; // r3 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r6 + signed int i; // r7 + char * s; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E410 -> 0x0020E4D8 +*/ +// Range: 0x20E410 -> 0x20E4D8 +unsigned int atox(class substr & s /* r2 */, unsigned int & read_size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E410 -> 0x20E4D8 + char * p; // r7 + unsigned int size; // r6 + unsigned int total; // r2 + unsigned int v; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E4E0 -> 0x0020E5A0 +*/ +// Range: 0x20E4E0 -> 0x20E5A0 +signed int icompare(class substr & s1 /* r2 */, class substr & s2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E4E0 -> 0x20E5A0 + unsigned int len; // r11 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E5A0 -> 0x0020E608 +*/ +// Range: 0x20E5A0 -> 0x20E608 +signed int imemcmp(void * d1 /* r2 */, void * d2 /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E5A0 -> 0x20E608 + char * s1; // r2 + char * s2; // r2 + unsigned int i; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E610 -> 0x0020E81C +*/ +// Range: 0x20E610 -> 0x20E81C +signed int xStrParseFloatList(float * dest /* r2 */, char * strbuf /* r2 */, signed int max /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E610 -> 0x20E81C + char * str; // r20 + signed int index; // r19 + signed int digits; // r6 + signed int negate; // r18 + char * numstart; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E820 -> 0x0020E878 +*/ +// Range: 0x20E820 -> 0x20E878 +char * xStrupr(char * string /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E820 -> 0x20E878 + char * p; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E880 -> 0x0020E980 +*/ +// Range: 0x20E880 -> 0x20E980 +signed int xStricmp(char * string1 /* r2 */, char * string2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E880 -> 0x20E980 + signed int result; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020E980 -> 0x0020EAD0 +*/ +// Range: 0x20E980 -> 0x20EAD0 +char * xStrTokBuffer(char * string /* r2 */, char * control /* r2 */, void * buffer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20E980 -> 0x20EAD0 + char * * nextoken; // r2 + char * dest; // r7 + unsigned char * str; // r3 + unsigned char * ctrl; // r2 + unsigned char map[32]; // r29 + signed int count; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EAD0 -> 0x0020EC10 +*/ +// Range: 0x20EAD0 -> 0x20EC10 +char * xStrTok(char * string /* r2 */, char * control /* r2 */, char * * nextoken /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20EAD0 -> 0x20EC10 + unsigned char * str; // r7 + unsigned char * ctrl; // r2 + unsigned char map[32]; // r29 + signed int count; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EC10 -> 0x0020EC68 +*/ +// Range: 0x20EC10 -> 0x20EC68 +unsigned int xStrHashCat(unsigned int prefix /* r2 */, char * str /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20EC10 -> 0x20EC68 + unsigned int i; // r2 + char c; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EC70 -> 0x0020ECD8 +*/ +// Range: 0x20EC70 -> 0x20ECD8 +unsigned int xStrHash(char * s /* r2 */, unsigned int size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20EC70 -> 0x20ECD8 + unsigned int value; // r2 + unsigned int i; // r8 + char c; // r7 + } +} + +/* + Compile unit: C:\SB\Core\x\xString.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020ECE0 -> 0x0020ED38 +*/ +// Range: 0x20ECE0 -> 0x20ED38 +unsigned int xStrHash(char * str /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20ECE0 -> 0x20ED38 + unsigned int i; // r2 + char c; // r6 + } +} + diff --git a/dwarf/SB/Core/x/xSurface.cpp b/dwarf/SB/Core/x/xSurface.cpp new file mode 100644 index 000000000..268987e79 --- /dev/null +++ b/dwarf/SB/Core/x/xSurface.cpp @@ -0,0 +1,149 @@ +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class xSurface * surfs; // size: 0x4, address: 0x50FB74 +static unsigned short nsurfs; // size: 0x2, address: 0x50FB78 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEnt { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020ED40 -> 0x0020ED68 +*/ +// Range: 0x20ED40 -> 0x20ED68 +class xSurface * xSurfaceGetByIdx(unsigned short n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20ED40 -> 0x20ED68 + } +} + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020ED70 -> 0x0020ED78 +*/ +// Range: 0x20ED70 -> 0x20ED78 +unsigned short xSurfaceGetNumSurfaces() { + // Blocks + /* anonymous block */ { + // Range: 0x20ED70 -> 0x20ED78 + } +} + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020ED80 -> 0x0020ED88 +*/ +// Range: 0x20ED80 -> 0x20ED88 +void xSurfaceReset() { + // Blocks + /* anonymous block */ { + // Range: 0x20ED80 -> 0x20ED88 + } +} + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020ED90 -> 0x0020ED98 +*/ +// Range: 0x20ED90 -> 0x20ED98 +void xSurfaceLoad(class xSurface * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20ED90 -> 0x20ED98 + } +} + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EDA0 -> 0x0020EDA8 +*/ +// Range: 0x20EDA0 -> 0x20EDA8 +void xSurfaceSave(class xSurface * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20EDA0 -> 0x20EDA8 + } +} + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EDB0 -> 0x0020EDB8 +*/ +// Range: 0x20EDB0 -> 0x20EDB8 +void xSurfaceExit() { + // Blocks + /* anonymous block */ { + // Range: 0x20EDB0 -> 0x20EDB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EDC0 -> 0x0020EF24 +*/ +// Range: 0x20EDC0 -> 0x20EF24 +void xSurfaceInit(unsigned short num_surfs /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20EDC0 -> 0x20EF24 + unsigned short i; // r6 + } +} + diff --git a/dwarf/SB/Core/x/xTRC.cpp b/dwarf/SB/Core/x/xTRC.cpp new file mode 100644 index 000000000..40526edf3 --- /dev/null +++ b/dwarf/SB/Core/x/xTRC.cpp @@ -0,0 +1,2460 @@ +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x4F94F0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +class _tagTRCDiskInfo gTrcDisk; // size: 0x8, address: 0x50FB80 +unsigned int gInTRC; // size: 0x4, address: 0x0 +static class iColor_tag yellow; // size: 0x4, address: 0x4F9500 +static char * message_text; // size: 0x4, address: 0x50FB8C +static unsigned int standalone; // size: 0x4, address: 0x50FB90 +class callback text_cb; // size: 0xC, address: 0x4F87A8 +signed int bad_card_available; // size: 0x4, address: 0x50F774 +signed int bad_card_needed; // size: 0x4, address: 0x50F778 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int gBusStopIsRunning; // size: 0x4, address: 0x510080 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class _tagTRCDiskInfo { + // total size: 0x8 +public: + enum _tagTRCState state; // offset 0x0, size 0x4 + enum _tagTRCState id; // offset 0x4, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020EF30 -> 0x0020F280 +*/ +// Range: 0x20EF30 -> 0x20F280 +void RenderText(char * text /* r2 */, unsigned char enabled /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20EF30 -> 0x20F280 + class xtextbox tb; // @ 0x005BAA10 + signed char @4079; // @ 0x0050FB94 + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F280 -> 0x0020F2B8 +*/ +// Range: 0x20F280 -> 0x20F2B8 +void render_mem_card_no_space(signed int needed /* r2 */, signed int available /* r2 */, signed int neededFiles /* r2 */, unsigned char enabled /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20F280 -> 0x20F2B8 + char * error_text; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F2C0 -> 0x0020F424 +*/ +// Range: 0x20F2C0 -> 0x20F424 +void xTRCPad(signed int pad_id /* r2 */, enum _tagTRCState state /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20F2C0 -> 0x20F424 + class iColor_tag clear; // r29+0x4C + signed int display_message; // r2 + signed int i; // r17 + char * autoSaveFailed[4]; // r29+0x30 + class xEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F430 -> 0x0020F620 +*/ +// Range: 0x20F430 -> 0x20F620 +static signed int DisplayMessage(enum _tagTRCState state /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20F430 -> 0x20F620 + class iColor_tag clear; // r29+0x2C + class RwCamera * cam; // r16 + class RwRGBA bg; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F620 -> 0x0020F65C +*/ +// Range: 0x20F620 -> 0x20F65C +void xTRCReset() { + // Blocks + /* anonymous block */ { + // Range: 0x20F620 -> 0x20F65C + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F660 -> 0x0020F68C +*/ +// Range: 0x20F660 -> 0x20F68C +void xTRCRender() { + // Blocks + /* anonymous block */ { + // Range: 0x20F660 -> 0x20F68C + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F690 -> 0x0020F9A4 +*/ +// Range: 0x20F690 -> 0x20F9A4 +static void render_message(char * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20F690 -> 0x20F9A4 + class xtextbox tb; // @ 0x005BA9A0 + signed char @3928; // @ 0x0050FB88 + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020F9B0 -> 0x0020FB84 +*/ +// Range: 0x20F9B0 -> 0x20FB84 +static unsigned int pad_message_valid() { + // Blocks + /* anonymous block */ { + // Range: 0x20F9B0 -> 0x20FB84 + } +} + +/* + Compile unit: C:\SB\Core\x\xTRC.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FB90 -> 0x0020FBF4 +*/ +// Range: 0x20FB90 -> 0x20FBF4 +void xTRCInit() { + // Blocks + /* anonymous block */ { + // Range: 0x20FB90 -> 0x20FBF4 + } +} + diff --git a/dwarf/SB/Core/x/xTimer.cpp b/dwarf/SB/Core/x/xTimer.cpp new file mode 100644 index 000000000..47dfb5c70 --- /dev/null +++ b/dwarf/SB/Core/x/xTimer.cpp @@ -0,0 +1,2113 @@ +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int sPauseTimerHash[20]; // size: 0x50, address: 0x4DCE10 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int xTimerEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x29E9D0 +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xTimer : public xBase { + // total size: 0x1C +public: + class xTimerAsset * tasset; // offset 0x10, size 0x4 + unsigned char state; // offset 0x14, size 0x1 + unsigned char runsInPause; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + float secondsLeft; // offset 0x18, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xTimerAsset : public xBaseAsset { + // total size: 0x10 +public: + float seconds; // offset 0x8, size 0x4 + float randomRange; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E930 -> 0x0029E9C4 +*/ +// Range: 0x29E930 -> 0x29E9C4 +void xTimerUpdate(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E930 -> 0x29E9C4 + class xTimer * t; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E9D0 -> 0x0029EB54 +*/ +// Range: 0x29E9D0 -> 0x29EB54 +signed int xTimerEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E9D0 -> 0x29EB54 + class xTimer * t; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EB60 -> 0x0029EBA8 +*/ +// Range: 0x29EB60 -> 0x29EBA8 +void xTimerLoad(class xTimer * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EB60 -> 0x29EBA8 + } +} + +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EBB0 -> 0x0029EBF8 +*/ +// Range: 0x29EBB0 -> 0x29EBF8 +void xTimerSave(class xTimer * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EBB0 -> 0x29EBF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029EC00 -> 0x0029ECC8 +*/ +// Range: 0x29EC00 -> 0x29ECC8 +static signed int xTimer_ObjIDIsPauseTimer(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29EC00 -> 0x29ECC8 + signed int bar; // r2 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xTimer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029ECD0 -> 0x0029EDF4 +*/ +// Range: 0x29ECD0 -> 0x29EDF4 +void xTimerInit(void * b /* r17 */, void * tasset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29ECD0 -> 0x29EDF4 + } +} + diff --git a/dwarf/SB/Core/x/xUpdateCull.cpp b/dwarf/SB/Core/x/xUpdateCull.cpp new file mode 100644 index 000000000..9df638027 --- /dev/null +++ b/dwarf/SB/Core/x/xUpdateCull.cpp @@ -0,0 +1,1521 @@ +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xSurface { + // total size: 0x0 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xFFX { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEnv { + // total size: 0x0 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00328DE0 -> 0x00328EAC +*/ +// Range: 0x328DE0 -> 0x328EAC +void xUpdateCull_Reset(class xUpdateCullMgr * m /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x328DE0 -> 0x328EAC + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00328EB0 -> 0x00328F20 +*/ +// Range: 0x328EB0 -> 0x328F20 +void xUpdateCull_SetCB(class xUpdateCullMgr * m /* r2 */, void * entity /* r2 */, unsigned int (* cb)(void *, void *) /* r2 */, void * cbdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x328EB0 -> 0x328F20 + unsigned int i; // r11 + } +} + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00328F20 -> 0x003292CC +*/ +// Range: 0x328F20 -> 0x3292CC +void xUpdateCull_Update(class xUpdateCullMgr * m /* r18 */, unsigned int percent_update /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x328F20 -> 0x3292CC + signed int numiters; // r17 + unsigned int i; // r21 + class xUpdateCullEnt * cent; // r16 + unsigned int result; // r2 + class xUpdateCullGroup * grp; // r16 + class xUpdateCullEnt * curr; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003292D0 -> 0x0032989C +*/ +// Range: 0x3292D0 -> 0x32989C +class xUpdateCullMgr * xUpdateCull_Init(void * * ent /* r29+0x100 */, unsigned int entCount /* r16 */, class xGroup * * group /* r29+0xF0 */, unsigned int groupCount /* r29+0xEC */) { + // Blocks + /* anonymous block */ { + // Range: 0x3292D0 -> 0x32989C + void * * tempEnt; // r29+0xE8 + unsigned int tempCount; // r29+0xD0 + unsigned int idx; // r5 + unsigned int i; // r23 + unsigned int j; // r20 + unsigned int k; // r6 + unsigned int gcnt; // r19 + unsigned int entsInThisGroup; // r18 + unsigned int entsInGroups; // r17 + unsigned int nonEmptyGroups; // r22 + signed int x; // r9 + unsigned char * inGroupArray; // r30 + class xBase * base; // r2 + unsigned int mgrCount; // r2 + class xUpdateCullMgr * m; // r21 + signed int grpIndex; // r22 + signed int mgrIndex; // r20 + signed int startIndex; // r29+0xCC + class xBase * base; // r2 + class xUpdateCullEnt * * prevPtr; // r8 + } +} + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003298A0 -> 0x00329920 +*/ +// Range: 0x3298A0 -> 0x329920 +unsigned int xUpdateCull_DistanceSquaredCB(void * ent /* r2 */, void * cbdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3298A0 -> 0x329920 + class FloatAndVoid fandv; // r29+0xC + class xVec3 * campos; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00329920 -> 0x00329928 +*/ +// Range: 0x329920 -> 0x329928 +unsigned int xUpdateCull_AlwaysTrueCB() { + // Blocks + /* anonymous block */ { + // Range: 0x329920 -> 0x329928 + } +} + +/* + Compile unit: C:\SB\Core\x\xUpdateCull.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00329930 -> 0x003299D4 +*/ +// Range: 0x329930 -> 0x3299D4 +static void xUpdateCull_Swap(class xUpdateCullMgr * m /* r2 */, unsigned int a /* r2 */, unsigned int b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x329930 -> 0x3299D4 + class xUpdateCullEnt * cullA; // r10 + class xUpdateCullEnt * cullB; // r7 + class xUpdateCullEnt * curr; // r3 + void * tmpent; // r6 + class xUpdateCullEnt * tmpmgr; // r6 + } +} + diff --git a/dwarf/SB/Core/x/xVec3.cpp b/dwarf/SB/Core/x/xVec3.cpp new file mode 100644 index 000000000..98c6b20b7 --- /dev/null +++ b/dwarf/SB/Core/x/xVec3.cpp @@ -0,0 +1,57 @@ +/* + Compile unit: C:\SB\Core\x\xVec3.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xVec3 m_Null; // size: 0xC, address: 0x4F9960 +class xVec3 m_Ones; // size: 0xC, address: 0x0 +class xVec3 m_NegOnes; // size: 0xC, address: 0x0 +class xVec3 m_UnitAxisX; // size: 0xC, address: 0x4F9970 +class xVec3 m_UnitAxisY; // size: 0xC, address: 0x4F9980 +class xVec3 m_UnitAxisZ; // size: 0xC, address: 0x0 +class xVec3 m_HalfVec; // size: 0xC, address: 0x0 +class xVec3 m_NegHalfVec; // size: 0xC, address: 0x0 +class xVec3 m_DoubleVec; // size: 0xC, address: 0x0 +class xVec3 m_NegDoubleVec; // size: 0xC, address: 0x0 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xVec3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002106B0 -> 0x00210790 +*/ +// Range: 0x2106B0 -> 0x210790 +float xVec3NormalizeFast(class xVec3 * o /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2106B0 -> 0x210790 + float len; // r29 + float len2; // r4 + float len_inv; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210790 -> 0x00210870 +*/ +// Range: 0x210790 -> 0x210870 +float xVec3Normalize(class xVec3 * o /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210790 -> 0x210870 + float len; // r29 + float len2; // r4 + float len_inv; // r2 + } +} + diff --git a/dwarf/SB/Core/x/xVec3.h b/dwarf/SB/Core/x/xVec3.h new file mode 100644 index 000000000..e0d575243 --- /dev/null +++ b/dwarf/SB/Core/x/xVec3.h @@ -0,0 +1,275 @@ +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FBD0 -> 0x0014FC08 +*/ +// Range: 0x14FBD0 -> 0x14FC08 +class xVec3 & __apl(class xVec3 * this /* r2 */, class xVec3 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FBD0 -> 0x14FC08 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FC10 -> 0x0014FC74 +*/ +// Range: 0x14FC10 -> 0x14FC74 +class xVec3 __ml(class xVec3 * this /* r2 */, float f /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FC10 -> 0x14FC74 + class xVec3 temp; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156880 -> 0x001568B8 +*/ +// Range: 0x156880 -> 0x1568B8 +class xVec3 & __adv(class xVec3 * this /* r2 */, float f /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156880 -> 0x1568B8 + float i; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001568C0 -> 0x001568F0 +*/ +// Range: 0x1568C0 -> 0x1568F0 +float length(class xVec3 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1568C0 -> 0x1568F0 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001568F0 -> 0x00156960 +*/ +// Range: 0x1568F0 -> 0x156960 +class xVec3 __pl(class xVec3 * this /* r2 */, class xVec3 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1568F0 -> 0x156960 + class xVec3 temp; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156980 -> 0x001569A0 +*/ +// Range: 0x156980 -> 0x1569A0 +float length2(class xVec3 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156980 -> 0x1569A0 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001569A0 -> 0x001569D8 +*/ +// Range: 0x1569A0 -> 0x1569D8 +class xVec3 & __ami(class xVec3 * this /* r2 */, class xVec3 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1569A0 -> 0x1569D8 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00177970 -> 0x00177984 +*/ +// Range: 0x177970 -> 0x177984 +class xVec3 & __as(class xVec3 * this /* r2 */, float f /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x177970 -> 0x177984 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00177990 -> 0x001779BC +*/ +// Range: 0x177990 -> 0x1779BC +class xVec3 & __amu(class xVec3 * this /* r2 */, float f /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x177990 -> 0x1779BC + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C56C0 -> 0x001C5760 +*/ +// Range: 0x1C56C0 -> 0x1C5760 +class xVec3 cross(class xVec3 * this /* r2 */, class xVec3 & c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C56C0 -> 0x1C5760 + class xVec3 v; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C5760 -> 0x001C57B8 +*/ +// Range: 0x1C5760 -> 0x1C57B8 +class xVec3 & normalize(class xVec3 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C5760 -> 0x1C57B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C57C0 -> 0x001C57D4 +*/ +// Range: 0x1C57C0 -> 0x1C57D4 +class xVec3 & assign(class xVec3 * this /* r2 */, float x /* r29 */, float y /* r29 */, float z /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C57C0 -> 0x1C57D4 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EF850 -> 0x001EF8C0 +*/ +// Range: 0x1EF850 -> 0x1EF8C0 +class xVec3 __mi(class xVec3 * this /* r2 */, class xVec3 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EF850 -> 0x1EF8C0 + class xVec3 temp; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7F10 -> 0x002A7FD8 +*/ +// Range: 0x2A7F10 -> 0x2A7FD8 +class xVec3 up_normal(class xVec3 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7F10 -> 0x2A7FD8 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB5E0 -> 0x002AB60C +*/ +// Range: 0x2AB5E0 -> 0x2AB60C +float dot(class xVec3 * this /* r2 */, class xVec3 & c /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB5E0 -> 0x2AB60C + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FA720 -> 0x002FA7B4 +*/ +// Range: 0x2FA720 -> 0x2FA7B4 +class xVec3 normal(class xVec3 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FA720 -> 0x2FA7B4 + class xVec3 v; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FED30 -> 0x002FEDA0 +*/ +// Range: 0x2FED30 -> 0x2FEDA0 +class xVec3 __ml(class xVec3 * this /* r2 */, class xVec3 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FED30 -> 0x2FEDA0 + class xVec3 temp; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FEE10 -> 0x002FEE74 +*/ +// Range: 0x2FEE10 -> 0x2FEE74 +class xVec3 __pl(class xVec3 * this /* r2 */, float f /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FEE10 -> 0x2FEE74 + class xVec3 temp; // r29 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367610 -> 0x00367668 +*/ +// Range: 0x367610 -> 0x367668 +class xVec3 create(float x /* r29+0x10 */, float y /* r29+0x10 */, float z /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367610 -> 0x367668 + class xVec3 v; // r29 + } +} + diff --git a/dwarf/SB/Core/x/xVec3Inlines.h b/dwarf/SB/Core/x/xVec3Inlines.h new file mode 100644 index 000000000..35aa464a5 --- /dev/null +++ b/dwarf/SB/Core/x/xVec3Inlines.h @@ -0,0 +1,112 @@ +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FB80 -> 0x0014FBB0 +*/ +// Range: 0x14FB80 -> 0x14FBB0 +float xVec3Length(class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FB80 -> 0x14FBB0 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A97D0 -> 0x002A97F8 +*/ +// Range: 0x2A97D0 -> 0x2A97F8 +void xVec3SMul(class xVec3 * o /* r2 */, class xVec3 * v /* r2 */, float s /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A97D0 -> 0x2A97F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9800 -> 0x002A9834 +*/ +// Range: 0x2A9800 -> 0x2A9834 +void xVec3Sub(class xVec3 * o /* r2 */, class xVec3 * a /* r2 */, class xVec3 * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A9800 -> 0x2A9834 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9840 -> 0x002A985C +*/ +// Range: 0x2A9840 -> 0x2A985C +void xVec3Copy(class xVec3 * o /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A9840 -> 0x2A985C + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003146C0 -> 0x003146E8 +*/ +// Range: 0x3146C0 -> 0x3146E8 +void xVec3Inv(class xVec3 * o /* r2 */, class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3146C0 -> 0x3146E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003146F0 -> 0x00314700 +*/ +// Range: 0x3146F0 -> 0x314700 +void xVec3Init(class xVec3 * v /* r2 */, float _x /* r29 */, float _y /* r29 */, float _z /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3146F0 -> 0x314700 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00314700 -> 0x00314720 +*/ +// Range: 0x314700 -> 0x314720 +float xVec3Length2(class xVec3 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x314700 -> 0x314720 + } +} + +/* + Compile unit: C:\SB\Core\x\xVec3Inlines.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00314720 -> 0x00314748 +*/ +// Range: 0x314720 -> 0x314748 +void xVec3SMulBy(class xVec3 * v /* r2 */, float s /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x314720 -> 0x314748 + } +} + diff --git a/dwarf/SB/Core/x/xVolume.cpp b/dwarf/SB/Core/x/xVolume.cpp new file mode 100644 index 000000000..be75840d5 --- /dev/null +++ b/dwarf/SB/Core/x/xVolume.cpp @@ -0,0 +1,196 @@ +/* + Compile unit: C:\SB\Core\x\xVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xVolumeAsset : public xBaseAsset { + // total size: 0x64 +public: + unsigned int flags; // offset 0x8, size 0x4 + class xBound bound; // offset 0xC, size 0x4C + float rot; // offset 0x58, size 0x4 + float xpivot; // offset 0x5C, size 0x4 + float zpivot; // offset 0x60, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xSerial { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE2F0 -> 0x002FE2FC +*/ +// Range: 0x2FE2F0 -> 0x2FE2FC +class xBound * GetBound(class xVolume * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE2F0 -> 0x2FE2FC + } +} + +/* + Compile unit: C:\SB\Core\x\xVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE300 -> 0x002FE308 +*/ +// Range: 0x2FE300 -> 0x2FE308 +void Load(class xVolume * this /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE300 -> 0x2FE308 + } +} + +/* + Compile unit: C:\SB\Core\x\xVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE310 -> 0x002FE318 +*/ +// Range: 0x2FE310 -> 0x2FE318 +void Save(class xVolume * this /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE310 -> 0x2FE318 + } +} + +/* + Compile unit: C:\SB\Core\x\xVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE320 -> 0x002FE328 +*/ +// Range: 0x2FE320 -> 0x2FE328 +void Reset(class xVolume * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE320 -> 0x2FE328 + } +} + +/* + Compile unit: C:\SB\Core\x\xVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FE330 -> 0x002FE38C +*/ +// Range: 0x2FE330 -> 0x2FE38C +void Init(class xVolume * this /* r17 */, class xVolumeAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FE330 -> 0x2FE38C + } +} + diff --git a/dwarf/SB/Core/x/xbinio.cpp b/dwarf/SB/Core/x/xbinio.cpp new file mode 100644 index 000000000..c14904d87 --- /dev/null +++ b/dwarf/SB/Core/x/xbinio.cpp @@ -0,0 +1,507 @@ +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int g_loadlock; // size: 0x4, address: 0x50E818 +static class st_FILELOADINFO g_loadinst[8]; // size: 0x340, address: 0x53FCA0 +static class tag_xFile g_xfload[8]; // size: 0x5A0, address: 0x53FFE0 +static class st_BINIO_XTRADATA g_xtraload[8]; // size: 0x1E0, address: 0x540580 +static class st_BINIO_XTRADATA * g_async_context; // size: 0x4, address: 0x50F910 +void BFD_cb_GCP2_readasync(class tag_xFile *); // size: 0x0, address: 0x1BF990 +void DiscardBuffer(class st_FILELOADINFO *); // size: 0x0, address: 0x1C0040 +void SetBuffer(class st_FILELOADINFO *, char *, signed int); // size: 0x0, address: 0x1C0070 +signed int ReadSeek(class st_FILELOADINFO *, signed int); // size: 0x0, address: 0x1C00A0 +signed int SkipBytes(class st_FILELOADINFO *, signed int); // size: 0x0, address: 0x1C0150 +enum en_BIO_ASYNC_ERRCODES AsyncReadStatus(class st_FILELOADINFO *); // size: 0x0, address: 0x1BFD70 +signed int AsyncMRead(class st_FILELOADINFO *, signed int, char *, signed int, signed int); // size: 0x0, address: 0x1BFD90 +signed int AsyncIRead(class st_FILELOADINFO *, signed int, char *, signed int, signed int); // size: 0x0, address: 0x1BFD80 +signed int ReadIDoubles(class st_FILELOADINFO *, double *, signed int); // size: 0x0, address: 0x1BFDA0 +signed int ReadIFloats(class st_FILELOADINFO *, float *, signed int); // size: 0x0, address: 0x1BFDB0 +signed int ReadILongs(class st_FILELOADINFO *, signed int *, signed int); // size: 0x0, address: 0x1BFDC0 +signed int ReadIShorts(class st_FILELOADINFO *, signed short *, signed int); // size: 0x0, address: 0x1BFDD0 +signed int ReadMDoubles(class st_FILELOADINFO *, double *, signed int); // size: 0x0, address: 0x1BFDE0 +signed int ReadMFloats(class st_FILELOADINFO *, float *, signed int); // size: 0x0, address: 0x1BFE20 +signed int ReadMLongs(class st_FILELOADINFO *, signed int *, signed int); // size: 0x0, address: 0x1BFE90 +signed int ReadMShorts(class st_FILELOADINFO *, signed short *, signed int); // size: 0x0, address: 0x1BFF00 +signed int ReadBytes(class st_FILELOADINFO *, char *, signed int); // size: 0x0, address: 0x1BFF60 +void LoadDestroy(class st_FILELOADINFO *); // size: 0x0, address: 0x1C0240 +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class st_FILELOADINFO { + // total size: 0x68 +public: + void (* destroy)(class st_FILELOADINFO *); // offset 0x0, size 0x4 + signed int (* readBytes)(class st_FILELOADINFO *, char *, signed int); // offset 0x4, size 0x4 + signed int (* readMShorts)(class st_FILELOADINFO *, signed short *, signed int); // offset 0x8, size 0x4 + signed int (* readMLongs)(class st_FILELOADINFO *, signed int *, signed int); // offset 0xC, size 0x4 + signed int (* readMFloats)(class st_FILELOADINFO *, float *, signed int); // offset 0x10, size 0x4 + signed int (* readMDoubles)(class st_FILELOADINFO *, double *, signed int); // offset 0x14, size 0x4 + signed int (* readIShorts)(class st_FILELOADINFO *, signed short *, signed int); // offset 0x18, size 0x4 + signed int (* readILongs)(class st_FILELOADINFO *, signed int *, signed int); // offset 0x1C, size 0x4 + signed int (* readIFloats)(class st_FILELOADINFO *, float *, signed int); // offset 0x20, size 0x4 + signed int (* readIDoubles)(class st_FILELOADINFO *, double *, signed int); // offset 0x24, size 0x4 + signed int (* skipBytes)(class st_FILELOADINFO *, signed int); // offset 0x28, size 0x4 + signed int (* seekSpot)(class st_FILELOADINFO *, signed int); // offset 0x2C, size 0x4 + void (* setDoubleBuf)(class st_FILELOADINFO *, char *, signed int); // offset 0x30, size 0x4 + void (* discardDblBuf)(class st_FILELOADINFO *); // offset 0x34, size 0x4 + signed int (* asyncIRead)(class st_FILELOADINFO *, signed int, char *, signed int, signed int); // offset 0x38, size 0x4 + signed int (* asyncMRead)(class st_FILELOADINFO *, signed int, char *, signed int, signed int); // offset 0x3C, size 0x4 + enum en_BIO_ASYNC_ERRCODES (* asyncReadStatus)(class st_FILELOADINFO *); // offset 0x40, size 0x4 + unsigned int lockid; // offset 0x44, size 0x4 + enum en_FIOERRCODES error; // offset 0x48, size 0x4 + unsigned int basesector; // offset 0x4C, size 0x4 + void * privdata; // offset 0x50, size 0x4 + void * xtradata; // offset 0x54, size 0x4 + void * asyndata; // offset 0x58, size 0x4 + signed int filesize; // offset 0x5C, size 0x4 + signed int remain; // offset 0x60, size 0x4 + signed int position; // offset 0x64, size 0x4 +}; +class st_BINIO_XTRADATA { + // total size: 0x3C +public: + char * dbl_buf; // offset 0x0, size 0x4 + signed int dblbuf_size; // offset 0x4, size 0x4 + signed int dbl_beg; // offset 0x8, size 0x4 + signed int dbl_end; // offset 0xC, size 0x4 + signed int dbl_amt; // offset 0x10, size 0x4 + unsigned int fpos; // offset 0x14, size 0x4 + char * asyn_data; // offset 0x18, size 0x4 + signed int asyn_amt; // offset 0x1C, size 0x4 + signed int asyn_elesize; // offset 0x20, size 0x4 + signed int asyn_ismot; // offset 0x24, size 0x4 + enum en_BIO_ASYNC_ERRCODES asyn_status; // offset 0x28, size 0x4 + unsigned int pad[3]; // offset 0x2C, size 0xC + signed int gcaskey; // offset 0x38, size 0x4 +}; +enum en_FIOERRCODES { + FIOERR_NONE = 0, + FIOERR_READFAIL = 1, + FIOERR_WRITEFAIL = 2, + FIOERR_SEEKFAIL = 3, + FIOERR_USERABORT = 4, +}; +enum en_BIO_ASYNC_ERRCODES { + BINIO_ASYNC_FAIL = -1, + BINIO_ASYNC_NOOP = 0, + BINIO_ASYNC_INPROG = 1, + BINIO_ASYNC_DONE = 2, + BINIO_ASYNC_FORCEENUMSIZEINT = 2147483647, +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +enum XFILE_READSECTOR_STATUS { + XFILE_RDSTAT_NOOP = 0, + XFILE_RDSTAT_INPROG = 1, + XFILE_RDSTAT_DONE = 2, + XFILE_RDSTAT_FAIL = 3, + XFILE_RDSTAT_QUEUED = 4, + XFILE_RDSTAT_EXPIRED = 5, +}; + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF7C0 -> 0x001BF890 +*/ +// Range: 0x1BF7C0 -> 0x1BF890 +static enum en_BIO_ASYNC_ERRCODES BFD_AsyncReadStatus(class st_FILELOADINFO * fli /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF7C0 -> 0x1BF890 + enum en_BIO_ASYNC_ERRCODES status; // r2 + class st_BINIO_XTRADATA * xtra; // r16 + enum XFILE_READSECTOR_STATUS xrdstat; // r2 + signed int amtsofar; // r29+0x2C + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF890 -> 0x001BF98C +*/ +// Range: 0x1BF890 -> 0x1BF98C +static signed int BFD_AsyncRead(class st_FILELOADINFO * fli /* r21 */, signed int pos /* r2 */, void * data /* r20 */, signed int size /* r19 */, signed int n /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF890 -> 0x1BF98C + class tag_xFile * file; // r17 + class st_BINIO_XTRADATA * xtra; // r16 + signed int result; // r2 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF990 -> 0x001BF998 +*/ +// Range: 0x1BF990 -> 0x1BF998 +static void BFD_cb_GCP2_readasync() { + // Blocks + /* anonymous block */ { + // Range: 0x1BF990 -> 0x1BF998 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BF9A0 -> 0x001BFBF0 +*/ +// Range: 0x1BF9A0 -> 0x1BFBF0 +static signed int BFD_read(void * data /* r2 */, signed int elesize /* r30 */, signed int elecnt /* r2 */, class tag_xFile * bffp /* r21 */, void * xtradata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BF9A0 -> 0x1BFBF0 + class st_BINIO_XTRADATA * xtra; // r20 + char * dest; // r29+0xAC + signed int readbeg; // r3 + signed int refill; // r22 + signed int remain; // r19 + signed int actual; // r18 + unsigned int holdpos; // r16 + unsigned int safety; // r17 + unsigned int numBytes; // r23 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFBF0 -> 0x001BFCF4 +*/ +// Range: 0x1BFBF0 -> 0x1BFCF4 +static class tag_xFile * BFD_open(char * filename /* r18 */, char * mode /* r20 */, unsigned int lockid /* r19 */, void * xtradata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFBF0 -> 0x1BFCF4 + class tag_xFile * bffp; // r19 + unsigned int orc; // r2 + class st_BINIO_XTRADATA * xtra; // r17 + signed int xfflg; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFD00 -> 0x001BFD68 +*/ +// Range: 0x1BFD00 -> 0x1BFD68 +static void Swap8(char * d /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFD00 -> 0x1BFD68 + char t; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFD70 -> 0x001BFD78 +*/ +// Range: 0x1BFD70 -> 0x1BFD78 +static enum en_BIO_ASYNC_ERRCODES AsyncReadStatus(class st_FILELOADINFO * fli /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFD70 -> 0x1BFD78 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFD80 -> 0x001BFD88 +*/ +// Range: 0x1BFD80 -> 0x1BFD88 +static signed int AsyncIRead(class st_FILELOADINFO * fli /* r2 */, signed int offset /* r2 */, char * data /* r2 */, signed int size /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFD80 -> 0x1BFD88 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFD90 -> 0x001BFD98 +*/ +// Range: 0x1BFD90 -> 0x1BFD98 +static signed int AsyncMRead(class st_FILELOADINFO * fli /* r2 */, signed int offset /* r2 */, char * data /* r2 */, signed int size /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFD90 -> 0x1BFD98 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFDA0 -> 0x001BFDAC +*/ +// Range: 0x1BFDA0 -> 0x1BFDAC +static signed int ReadIDoubles(class st_FILELOADINFO * fli /* r2 */, double * data /* r2 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFDA0 -> 0x1BFDAC + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFDB0 -> 0x001BFDBC +*/ +// Range: 0x1BFDB0 -> 0x1BFDBC +static signed int ReadIFloats(class st_FILELOADINFO * fli /* r2 */, float * data /* r2 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFDB0 -> 0x1BFDBC + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFDC0 -> 0x001BFDCC +*/ +// Range: 0x1BFDC0 -> 0x1BFDCC +static signed int ReadILongs(class st_FILELOADINFO * fli /* r2 */, signed int * data /* r2 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFDC0 -> 0x1BFDCC + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFDD0 -> 0x001BFDDC +*/ +// Range: 0x1BFDD0 -> 0x1BFDDC +static signed int ReadIShorts(class st_FILELOADINFO * fli /* r2 */, signed short * data /* r2 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFDD0 -> 0x1BFDDC + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFDE0 -> 0x001BFE18 +*/ +// Range: 0x1BFDE0 -> 0x1BFE18 +static signed int ReadMDoubles(class st_FILELOADINFO * fli /* r2 */, double * data /* r16 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFDE0 -> 0x1BFE18 + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFE20 -> 0x001BFE90 +*/ +// Range: 0x1BFE20 -> 0x1BFE90 +static signed int ReadMFloats(class st_FILELOADINFO * fli /* r2 */, float * data /* r16 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFE20 -> 0x1BFE90 + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFE90 -> 0x001BFF00 +*/ +// Range: 0x1BFE90 -> 0x1BFF00 +static signed int ReadMLongs(class st_FILELOADINFO * fli /* r2 */, signed int * data /* r16 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFE90 -> 0x1BFF00 + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFF00 -> 0x001BFF60 +*/ +// Range: 0x1BFF00 -> 0x1BFF60 +static signed int ReadMShorts(class st_FILELOADINFO * fli /* r2 */, signed short * data /* r16 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFF00 -> 0x1BFF60 + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFF60 -> 0x001BFF6C +*/ +// Range: 0x1BFF60 -> 0x1BFF6C +static signed int ReadBytes(class st_FILELOADINFO * fli /* r2 */, char * data /* r2 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFF60 -> 0x1BFF6C + signed int act; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001BFF70 -> 0x001C0038 +*/ +// Range: 0x1BFF70 -> 0x1C0038 +static signed int ReadRaw(class st_FILELOADINFO * fli /* r18 */, void * data /* r2 */, signed int size /* r17 */, signed int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1BFF70 -> 0x1C0038 + class tag_xFile * file; // r6 + signed int amt; // r16 + signed int n; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0040 -> 0x001C0068 +*/ +// Range: 0x1C0040 -> 0x1C0068 +static void DiscardBuffer(class st_FILELOADINFO * fli /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0040 -> 0x1C0068 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0070 -> 0x001C0098 +*/ +// Range: 0x1C0070 -> 0x1C0098 +static void SetBuffer(class st_FILELOADINFO * fli /* r2 */, char * dblbuffer /* r2 */, signed int bufsize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0070 -> 0x1C0098 + class st_BINIO_XTRADATA * xtra; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C00A0 -> 0x001C0150 +*/ +// Range: 0x1C00A0 -> 0x1C0150 +static signed int ReadSeek(class st_FILELOADINFO * fli /* r16 */, signed int pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C00A0 -> 0x1C0150 + class tag_xFile * file; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0150 -> 0x001C0234 +*/ +// Range: 0x1C0150 -> 0x1C0234 +static signed int SkipBytes(class st_FILELOADINFO * fli /* r17 */, signed int fwd /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0150 -> 0x1C0234 + class tag_xFile * file; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C0240 -> 0x001C02C0 +*/ +// Range: 0x1C0240 -> 0x1C02C0 +static void LoadDestroy(class st_FILELOADINFO * fli /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C0240 -> 0x1C02C0 + class tag_xFile * fp; // r2 + unsigned int lockid; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xbinio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001C02C0 -> 0x001C0524 +*/ +// Range: 0x1C02C0 -> 0x1C0524 +class st_FILELOADINFO * xBinioLoadCreate(char * filename /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1C02C0 -> 0x1C0524 + class st_FILELOADINFO * fli; // r17 + class tag_xFile * tmp_fp; // r2 + signed int i; // r6 + signed int uselock; // r16 + } +} + diff --git a/dwarf/SB/Core/x/xhipio.cpp b/dwarf/SB/Core/x/xhipio.cpp new file mode 100644 index 000000000..9486d29ba --- /dev/null +++ b/dwarf/SB/Core/x/xhipio.cpp @@ -0,0 +1,401 @@ +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int g_loadlock; // size: 0x4, address: 0x50FA34 +static class st_HIPLOADDATA g_hiploadinst[8]; // size: 0x540, address: 0x568380 +static class st_HIPLOADFUNCS g_map_HIPL_funcmap; // size: 0x34, address: 0x418B90 +static class st_HIPSAVEFUNCS g_map_HIPS_funcmap; // size: 0x2C, address: 0x0 +class st_HIPLOADDATA { + // total size: 0xA8 +public: + class st_FILELOADINFO * fli; // offset 0x0, size 0x4 + signed int lockid; // offset 0x4, size 0x4 + signed int bypass; // offset 0x8, size 0x4 + signed int bypass_recover; // offset 0xC, size 0x4 + unsigned int base_sector; // offset 0x10, size 0x4 + signed int use_async; // offset 0x14, size 0x4 + enum en_READ_ASYNC_STATUS asyn_stat; // offset 0x18, size 0x4 + signed int pos; // offset 0x1C, size 0x4 + signed int top; // offset 0x20, size 0x4 + signed int readTop; // offset 0x24, size 0x4 + class st_HIPLOADBLOCK stk[8]; // offset 0x28, size 0x80 +}; +class st_HIPSAVEDATA { + // total size: 0x74 +public: + class st_FILESAVEINFO * fsi; // offset 0x0, size 0x4 + signed int lockid; // offset 0x4, size 0x4 + signed int pos; // offset 0x8, size 0x4 + signed int top; // offset 0xC, size 0x4 + signed int writeTop; // offset 0x10, size 0x4 + class st_HIPSAVEBLOCK stk[8]; // offset 0x14, size 0x60 +}; +class st_FILESAVEINFO { + // total size: 0x44 +public: + void (* destroy)(class st_FILESAVEINFO *); // offset 0x0, size 0x4 + signed int (* writeBytes)(class st_FILESAVEINFO *, char *, signed int); // offset 0x4, size 0x4 + signed int (* writeMShorts)(class st_FILESAVEINFO *, signed short *, signed int); // offset 0x8, size 0x4 + signed int (* writeMLongs)(class st_FILESAVEINFO *, signed int *, signed int); // offset 0xC, size 0x4 + signed int (* writeMFloats)(class st_FILESAVEINFO *, float *, signed int); // offset 0x10, size 0x4 + signed int (* writeMDoubles)(class st_FILESAVEINFO *, double *, signed int); // offset 0x14, size 0x4 + signed int (* writeIShorts)(class st_FILESAVEINFO *, signed short *, signed int); // offset 0x18, size 0x4 + signed int (* writeILongs)(class st_FILESAVEINFO *, signed int *, signed int); // offset 0x1C, size 0x4 + signed int (* writeIFloats)(class st_FILESAVEINFO *, float *, signed int); // offset 0x20, size 0x4 + signed int (* writeIDoubles)(class st_FILESAVEINFO *, double *, signed int); // offset 0x24, size 0x4 + signed int (* seekSpot)(class st_FILESAVEINFO *, signed int); // offset 0x28, size 0x4 + signed int length; // offset 0x2C, size 0x4 + signed int position; // offset 0x30, size 0x4 + enum en_FIOERRCODES error; // offset 0x34, size 0x4 + unsigned int lockid; // offset 0x38, size 0x4 + void * privdata; // offset 0x3C, size 0x4 + void * xtradata; // offset 0x40, size 0x4 +}; +class st_FILELOADINFO { + // total size: 0x68 +public: + void (* destroy)(class st_FILELOADINFO *); // offset 0x0, size 0x4 + signed int (* readBytes)(class st_FILELOADINFO *, char *, signed int); // offset 0x4, size 0x4 + signed int (* readMShorts)(class st_FILELOADINFO *, signed short *, signed int); // offset 0x8, size 0x4 + signed int (* readMLongs)(class st_FILELOADINFO *, signed int *, signed int); // offset 0xC, size 0x4 + signed int (* readMFloats)(class st_FILELOADINFO *, float *, signed int); // offset 0x10, size 0x4 + signed int (* readMDoubles)(class st_FILELOADINFO *, double *, signed int); // offset 0x14, size 0x4 + signed int (* readIShorts)(class st_FILELOADINFO *, signed short *, signed int); // offset 0x18, size 0x4 + signed int (* readILongs)(class st_FILELOADINFO *, signed int *, signed int); // offset 0x1C, size 0x4 + signed int (* readIFloats)(class st_FILELOADINFO *, float *, signed int); // offset 0x20, size 0x4 + signed int (* readIDoubles)(class st_FILELOADINFO *, double *, signed int); // offset 0x24, size 0x4 + signed int (* skipBytes)(class st_FILELOADINFO *, signed int); // offset 0x28, size 0x4 + signed int (* seekSpot)(class st_FILELOADINFO *, signed int); // offset 0x2C, size 0x4 + void (* setDoubleBuf)(class st_FILELOADINFO *, char *, signed int); // offset 0x30, size 0x4 + void (* discardDblBuf)(class st_FILELOADINFO *); // offset 0x34, size 0x4 + signed int (* asyncIRead)(class st_FILELOADINFO *, signed int, char *, signed int, signed int); // offset 0x38, size 0x4 + signed int (* asyncMRead)(class st_FILELOADINFO *, signed int, char *, signed int, signed int); // offset 0x3C, size 0x4 + enum en_BIO_ASYNC_ERRCODES (* asyncReadStatus)(class st_FILELOADINFO *); // offset 0x40, size 0x4 + unsigned int lockid; // offset 0x44, size 0x4 + enum en_FIOERRCODES error; // offset 0x48, size 0x4 + unsigned int basesector; // offset 0x4C, size 0x4 + void * privdata; // offset 0x50, size 0x4 + void * xtradata; // offset 0x54, size 0x4 + void * asyndata; // offset 0x58, size 0x4 + signed int filesize; // offset 0x5C, size 0x4 + signed int remain; // offset 0x60, size 0x4 + signed int position; // offset 0x64, size 0x4 +}; +class st_HIPLOADFUNCS { + // total size: 0x34 +public: + class st_HIPLOADDATA * (* create)(char *, char *, signed int); // offset 0x0, size 0x4 + void (* destroy)(class st_HIPLOADDATA *); // offset 0x4, size 0x4 + unsigned int (* basesector)(class st_HIPLOADDATA *); // offset 0x8, size 0x4 + unsigned int (* enter)(class st_HIPLOADDATA *); // offset 0xC, size 0x4 + void (* exit)(class st_HIPLOADDATA *); // offset 0x10, size 0x4 + signed int (* readBytes)(class st_HIPLOADDATA *, char *, signed int); // offset 0x14, size 0x4 + signed int (* readShorts)(class st_HIPLOADDATA *, signed short *, signed int); // offset 0x18, size 0x4 + signed int (* readLongs)(class st_HIPLOADDATA *, signed int *, signed int); // offset 0x1C, size 0x4 + signed int (* readFloats)(class st_HIPLOADDATA *, float *, signed int); // offset 0x20, size 0x4 + signed int (* readString)(class st_HIPLOADDATA *, char *); // offset 0x24, size 0x4 + signed int (* setBypass)(class st_HIPLOADDATA *, signed int, signed int); // offset 0x28, size 0x4 + void (* setSpot)(class st_HIPLOADDATA *, signed int); // offset 0x2C, size 0x4 + enum en_READ_ASYNC_STATUS (* pollRead)(class st_HIPLOADDATA *); // offset 0x30, size 0x4 +}; +class st_HIPLOADBLOCK { + // total size: 0x10 +public: + signed int endpos; // offset 0x0, size 0x4 + unsigned int blk_id; // offset 0x4, size 0x4 + signed int blk_remain; // offset 0x8, size 0x4 + signed int flags; // offset 0xC, size 0x4 +}; +enum en_FIOERRCODES { + FIOERR_NONE = 0, + FIOERR_READFAIL = 1, + FIOERR_WRITEFAIL = 2, + FIOERR_SEEKFAIL = 3, + FIOERR_USERABORT = 4, +}; +class st_HIPSAVEFUNCS { + // total size: 0x2C +public: + class st_HIPSAVEDATA * (* create)(char *); // offset 0x0, size 0x4 + void (* destroy)(class st_HIPSAVEDATA *); // offset 0x4, size 0x4 + void (* open)(class st_HIPSAVEDATA *, unsigned int); // offset 0x8, size 0x4 + void (* close)(class st_HIPSAVEDATA *); // offset 0xC, size 0x4 + void (* writeBytes)(class st_HIPSAVEDATA *, char *, signed int); // offset 0x10, size 0x4 + void (* writeShorts)(class st_HIPSAVEDATA *, signed short *, signed int); // offset 0x14, size 0x4 + void (* writeLongs)(class st_HIPSAVEDATA *, signed int *, signed int); // offset 0x18, size 0x4 + void (* writeFloats)(class st_HIPSAVEDATA *, float *, signed int); // offset 0x1C, size 0x4 + void (* writeString)(class st_HIPSAVEDATA *, char *); // offset 0x20, size 0x4 + signed int (* curSpot)(class st_HIPSAVEDATA *); // offset 0x24, size 0x4 + signed int (* spotLong)(class st_HIPSAVEDATA *, signed int, unsigned int); // offset 0x28, size 0x4 +}; +enum en_BIO_ASYNC_ERRCODES { + BINIO_ASYNC_FAIL = -1, + BINIO_ASYNC_NOOP = 0, + BINIO_ASYNC_INPROG = 1, + BINIO_ASYNC_DONE = 2, + BINIO_ASYNC_FORCEENUMSIZEINT = 2147483647, +}; +enum en_READ_ASYNC_STATUS { + HIP_RDSTAT_NONE = -1, + HIP_RDSTAT_INPROG = 0, + HIP_RDSTAT_SUCCESS = 1, + HIP_RDSTAT_FAILED = 2, + HIP_RDSTAT_NOBYPASS = 3, + HIP_RDSTAT_NOASYNC = 4, +}; +class st_HIPSAVEBLOCK { + // total size: 0xC +public: + signed int pos; // offset 0x0, size 0x4 + signed int len; // offset 0x4, size 0x4 + signed int flags; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EBDE0 -> 0x001EBEF8 +*/ +// Range: 0x1EBDE0 -> 0x1EBEF8 +static signed int HIPLReadString(class st_HIPLOADDATA * lddata /* r18 */, char * buf /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EBDE0 -> 0x1EBEF8 + signed int n; // r16 + char pad; // r29+0x5F + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EBF00 -> 0x001EBF50 +*/ +// Range: 0x1EBF00 -> 0x1EBF50 +static signed int HIPLReadFloats(class st_HIPLOADDATA * lddata /* r2 */, float * data /* r2 */, signed int cnt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EBF00 -> 0x1EBF50 + signed int got; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EBF50 -> 0x001EBFA0 +*/ +// Range: 0x1EBF50 -> 0x1EBFA0 +static signed int HIPLReadLongs(class st_HIPLOADDATA * lddata /* r2 */, signed int * data /* r2 */, signed int cnt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EBF50 -> 0x1EBFA0 + signed int got; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EBFA0 -> 0x001EBFF0 +*/ +// Range: 0x1EBFA0 -> 0x1EBFF0 +static signed int HIPLReadShorts(class st_HIPLOADDATA * lddata /* r2 */, signed short * data /* r2 */, signed int cnt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EBFA0 -> 0x1EBFF0 + signed int got; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EBFF0 -> 0x001EC028 +*/ +// Range: 0x1EBFF0 -> 0x1EC028 +static signed int HIPLReadBytes(class st_HIPLOADDATA * lddata /* r2 */, char * data /* r2 */, signed int cnt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EBFF0 -> 0x1EC028 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC030 -> 0x001EC0F4 +*/ +// Range: 0x1EC030 -> 0x1EC0F4 +static enum en_READ_ASYNC_STATUS HIPLPollRead(class st_HIPLOADDATA * lddata /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC030 -> 0x1EC0F4 + enum en_READ_ASYNC_STATUS rdstat; // r17 + enum en_BIO_ASYNC_ERRCODES pollstat; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC100 -> 0x001EC214 +*/ +// Range: 0x1EC100 -> 0x1EC214 +static signed int HIPLBypassRead(class st_HIPLOADDATA * lddata /* r17 */, void * data /* r5 */, signed int cnt /* r7 */, signed int size /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC100 -> 0x1EC214 + signed int got; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC220 -> 0x001EC398 +*/ +// Range: 0x1EC220 -> 0x1EC398 +static signed int HIPLBlockRead(class st_HIPLOADDATA * lddata /* r18 */, void * data /* r2 */, signed int cnt /* r2 */, signed int size /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC220 -> 0x1EC398 + class st_HIPLOADBLOCK * top; // r16 + signed int got; // r2 + signed int left; // r7 + signed int head; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC3A0 -> 0x001EC40C +*/ +// Range: 0x1EC3A0 -> 0x1EC40C +static void HIPLBlockExit(class st_HIPLOADDATA * lddata /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC3A0 -> 0x1EC40C + class st_HIPLOADBLOCK * top; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC410 -> 0x001EC570 +*/ +// Range: 0x1EC410 -> 0x1EC570 +static unsigned int HIPLBlockEnter(class st_HIPLOADDATA * lddata /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC410 -> 0x1EC570 + class st_HIPLOADBLOCK * top; // r2 + unsigned int cid; // r29+0x2C + signed int size; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC570 -> 0x001EC5A4 +*/ +// Range: 0x1EC570 -> 0x1EC5A4 +static void HIPLSetSpot(class st_HIPLOADDATA * lddata /* r2 */, signed int spot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC570 -> 0x1EC5A4 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC5B0 -> 0x001EC678 +*/ +// Range: 0x1EC5B0 -> 0x1EC678 +static signed int HIPLSetBypass(class st_HIPLOADDATA * lddata /* r16 */, signed int enable /* r18 */, signed int use_async /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC5B0 -> 0x1EC678 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC680 -> 0x001EC688 +*/ +// Range: 0x1EC680 -> 0x1EC688 +static unsigned int HIPLBaseSector(class st_HIPLOADDATA * lddata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC680 -> 0x1EC688 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC690 -> 0x001EC704 +*/ +// Range: 0x1EC690 -> 0x1EC704 +static void HIPLDestroy(class st_HIPLOADDATA * lddata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC690 -> 0x1EC704 + signed int lockid; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC710 -> 0x001EC91C +*/ +// Range: 0x1EC710 -> 0x1EC91C +static class st_HIPLOADDATA * HIPLCreate(char * filename /* r20 */, char * dblbuf /* r19 */, signed int bufsize /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1EC710 -> 0x1EC91C + class st_HIPLOADDATA * lddata; // r17 + class st_FILELOADINFO * fli; // r2 + class st_HIPLOADBLOCK * tmp_blk; // r2 + signed int i; // r7 + signed int uselock; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xhipio.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001EC920 -> 0x001EC92C +*/ +// Range: 0x1EC920 -> 0x1EC92C +class st_HIPLOADFUNCS * get_HIPLFuncs() { + // Blocks + /* anonymous block */ { + // Range: 0x1EC920 -> 0x1EC92C + } +} + diff --git a/dwarf/SB/Core/x/xordarray.cpp b/dwarf/SB/Core/x/xordarray.cpp new file mode 100644 index 000000000..34bd2657e --- /dev/null +++ b/dwarf/SB/Core/x/xordarray.cpp @@ -0,0 +1,140 @@ +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2E80 -> 0x001F2FF0 +*/ +// Range: 0x1F2E80 -> 0x1F2FF0 +void XOrdSort(class st_XORDEREDARRAY * array /* r2 */, signed int (* test)(void *, void *) /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2E80 -> 0x1F2FF0 + void * * list; // r21 + signed int num; // r23 + signed int i; // r20 + signed int j; // r19 + signed int h; // r18 + void * v; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F2FF0 -> 0x001F30C4 +*/ +// Range: 0x1F2FF0 -> 0x1F30C4 +signed int XOrdLookup(class st_XORDEREDARRAY * array /* r22 */, void * key /* r21 */, signed int (* test)(void *, void *) /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F2FF0 -> 0x1F30C4 + signed int da_idx; // r19 + signed int k0; // r18 + signed int k1; // r17 + signed int k; // r16 + signed int v; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F30D0 -> 0x001F31E0 +*/ +// Range: 0x1F30D0 -> 0x1F31E0 +void * XOrdRemove(class st_XORDEREDARRAY * array /* r2 */, void * elt /* r2 */, signed int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F30D0 -> 0x1F31E0 + signed int i; // r8 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F31E0 -> 0x001F32A8 +*/ +// Range: 0x1F31E0 -> 0x1F32A8 +void XOrdInsert(class st_XORDEREDARRAY * array /* r20 */, void * elt /* r19 */, signed int (* compare)(void *, void *) /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F31E0 -> 0x1F32A8 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F32B0 -> 0x001F32E0 +*/ +// Range: 0x1F32B0 -> 0x1F32E0 +void XOrdAppend(class st_XORDEREDARRAY * array /* r2 */, void * elt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F32B0 -> 0x1F32E0 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F32E0 -> 0x001F3328 +*/ +// Range: 0x1F32E0 -> 0x1F3328 +void XOrdDone(class st_XORDEREDARRAY * array /* r16 */, signed int wasTempAlloc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F32E0 -> 0x1F3328 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3330 -> 0x001F3338 +*/ +// Range: 0x1F3330 -> 0x1F3338 +void XOrdReset(class st_XORDEREDARRAY * array /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F3330 -> 0x1F3338 + } +} + +/* + Compile unit: C:\SB\Core\x\xordarray.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F3340 -> 0x001F33FC +*/ +// Range: 0x1F3340 -> 0x1F33FC +void XOrdInit(class st_XORDEREDARRAY * array /* r16 */, signed int size /* r2 */, signed int tempAlloc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F3340 -> 0x1F33FC + } +} + diff --git a/dwarf/SB/Core/x/xpkrsvc.cpp b/dwarf/SB/Core/x/xpkrsvc.cpp new file mode 100644 index 000000000..5263019f0 --- /dev/null +++ b/dwarf/SB/Core/x/xpkrsvc.cpp @@ -0,0 +1,1052 @@ +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class st_PACKER_READ_FUNCS g_pkr_read_funcmap_original; // size: 0x44, address: 0x418BE0 +static class st_PACKER_READ_FUNCS g_pkr_read_funcmap; // size: 0x44, address: 0x598740 +static class st_HIPLOADFUNCS * g_hiprf; // size: 0x4, address: 0x50FA84 +static class st_PACKER_READ_DATA g_readdatainst[16]; // size: 0x8F80, address: 0x598790 +static unsigned int g_loadlock; // size: 0x4, address: 0x50FA88 +static signed int pkr_sector_size; // size: 0x4, address: 0x50FA8C +static signed int g_packinit; // size: 0x4, address: 0x50FA90 +static signed int g_memalloc_pair; // size: 0x4, address: 0x50FA94 +static signed int g_memalloc_runtot; // size: 0x4, address: 0x50FA98 +static signed int g_memalloc_runfree; // size: 0x4, address: 0x50FA9C +static char * g_strz_layername[11]; // size: 0x2C, address: 0x0 +static class RwResEntry * g_RWarena_resEntry; // size: 0x4, address: 0x50FAA8 +static class RwResEntry * g_RWarena_resOwner; // size: 0x4, address: 0x50FAAC +static signed int g_RWarena_bufsize; // size: 0x4, address: 0x0 +class RwModuleInfo resourcesModule; // size: 0x8, address: 0x50FC48 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +void PKR_special_loadbuf_killed(class RwResEntry *); // size: 0x0, address: 0x1F70B0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int OrdTest_R_AssetID(void *, void *); // size: 0x0, address: 0x1F85E0 +signed int OrdComp_R_Asset(void *, void *); // size: 0x0, address: 0x1F8620 +class st_PACKER_READ_DATA { + // total size: 0x8F8 +public: + class st_PACKER_ASSETTYPE * types; // offset 0x0, size 0x4 + void * userdata; // offset 0x4, size 0x4 + unsigned int opts; // offset 0x8, size 0x4 + unsigned int pkgver; // offset 0xC, size 0x4 + signed int cltver; // offset 0x10, size 0x4 + signed int subver; // offset 0x14, size 0x4 + signed int compatver; // offset 0x18, size 0x4 + class st_HIPLOADDATA * pkg; // offset 0x1C, size 0x4 + unsigned int base_sector; // offset 0x20, size 0x4 + signed int lockid; // offset 0x24, size 0x4 + char packfile[128]; // offset 0x28, size 0x80 + signed int asscnt; // offset 0xA8, size 0x4 + signed int laycnt; // offset 0xAC, size 0x4 + class st_XORDEREDARRAY asstoc; // offset 0xB0, size 0x10 + class st_XORDEREDARRAY laytoc; // offset 0xC0, size 0x10 + class st_PACKER_ATOC_NODE * pool_anode; // offset 0xD0, size 0x4 + signed int pool_nextaidx; // offset 0xD4, size 0x4 + class st_XORDEREDARRAY typelist[129]; // offset 0xD8, size 0x810 + signed long time_made; // offset 0x8E8, size 0x4 + signed long time_mod; // offset 0x8F0, size 0x4 +}; +class st_HIPLOADDATA { + // total size: 0x0 +}; +class st_PACKER_ATOC_NODE { + // total size: 0x60 +public: + unsigned int aid; // offset 0x0, size 0x4 + unsigned int asstype; // offset 0x4, size 0x4 + signed int d_off; // offset 0x8, size 0x4 + signed int d_size; // offset 0xC, size 0x4 + signed int d_pad; // offset 0x10, size 0x4 + unsigned int d_chksum; // offset 0x14, size 0x4 + signed int assalign; // offset 0x18, size 0x4 + signed int infoflag; // offset 0x1C, size 0x4 + signed int loadflag; // offset 0x20, size 0x4 + char * memloc; // offset 0x24, size 0x4 + signed int x_size; // offset 0x28, size 0x4 + signed int readcnt; // offset 0x2C, size 0x4 + signed int readrem; // offset 0x30, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x34, size 0x4 + class st_HIPLOADDATA * ownpkg; // offset 0x38, size 0x4 + class st_PACKER_READ_DATA * ownpr; // offset 0x3C, size 0x4 + char basename[32]; // offset 0x40, size 0x20 +}; +class st_PACKER_LTOC_NODE { + // total size: 0x2C +public: + enum en_LAYER_TYPE laytyp; // offset 0x0, size 0x4 + class st_XORDEREDARRAY assref; // offset 0x4, size 0x10 + signed int flg_ldstat; // offset 0x14, size 0x4 + signed int danglecnt; // offset 0x18, size 0x4 + unsigned int chksum; // offset 0x1C, size 0x4 + signed int laysize; // offset 0x20, size 0x4 + char * laymem; // offset 0x24, size 0x4 + char * laytru; // offset 0x28, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class st_PACKER_WRITE_DATA { + // total size: 0x250 +public: + class st_PACKER_ASSETTYPE * types; // offset 0x0, size 0x4 + void * userdata; // offset 0x4, size 0x4 + signed int lockid; // offset 0x8, size 0x4 + unsigned int pkropt; // offset 0xC, size 0x4 + signed int cltver; // offset 0x10, size 0x4 + char packfile[256]; // offset 0x14, size 0x100 + signed int sectalign; // offset 0x114, size 0x4 + signed int dassalign; // offset 0x118, size 0x4 + class st_XORDEREDARRAY asslist; // offset 0x11C, size 0x10 + class st_XORDEREDARRAY laylist; // offset 0x12C, size 0x10 + signed int off_lg_asset; // offset 0x13C, size 0x4 + signed int off_lg_layer; // offset 0x140, size 0x4 + signed int off_lg_xform; // offset 0x144, size 0x4 + char hdrfile[256]; // offset 0x148, size 0x100 + signed int (* hdrfunc)(void *, unsigned int, char *, char *); // offset 0x248, size 0x4 + signed int (* generrf)(unsigned int, enum en_GENERATE_ERROR, char *, char *); // offset 0x24C, size 0x4 +}; +class st_PACKER_READ_FUNCS { + // total size: 0x44 +public: + unsigned int api_ver; // offset 0x0, size 0x4 + class st_PACKER_READ_DATA * (* Init)(void *, char *, unsigned int, signed int *, class st_PACKER_ASSETTYPE *); // offset 0x4, size 0x4 + void (* Done)(class st_PACKER_READ_DATA *); // offset 0x8, size 0x4 + signed int (* LoadLayer)(class st_PACKER_READ_DATA *, enum en_LAYER_TYPE); // offset 0xC, size 0x4 + unsigned int (* GetAssetSize)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x10, size 0x4 + void * (* LoadAsset)(class st_PACKER_READ_DATA *, unsigned int, char *, void *); // offset 0x14, size 0x4 + void * (* AssetByType)(class st_PACKER_READ_DATA *, unsigned int, signed int, unsigned int *); // offset 0x18, size 0x4 + signed int (* AssetCount)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x1C, size 0x4 + signed int (* IsAssetReady)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x20, size 0x4 + signed int (* SetActive)(class st_PACKER_READ_DATA *, enum en_LAYER_TYPE); // offset 0x24, size 0x4 + char * (* AssetName)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x28, size 0x4 + unsigned int (* GetBaseSector)(class st_PACKER_READ_DATA *); // offset 0x2C, size 0x4 + signed int (* GetAssetInfo)(class st_PACKER_READ_DATA *, unsigned int, class st_PKR_ASSET_TOCINFO *); // offset 0x30, size 0x4 + signed int (* GetAssetInfoByType)(class st_PACKER_READ_DATA *, unsigned int, signed int, class st_PKR_ASSET_TOCINFO *); // offset 0x34, size 0x4 + signed int (* PkgHasAsset)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x38, size 0x4 + unsigned int (* PkgTimeStamp)(class st_PACKER_READ_DATA *); // offset 0x3C, size 0x4 + void (* PkgDisconnect)(class st_PACKER_READ_DATA *); // offset 0x40, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +enum en_LAYER_TYPE { + PKR_LTYPE_ALL = -1, + PKR_LTYPE_DEFAULT = 0, + PKR_LTYPE_TEXTURE = 1, + PKR_LTYPE_BSP = 2, + PKR_LTYPE_MODEL = 3, + PKR_LTYPE_ANIMATION = 4, + PKR_LTYPE_VRAM = 5, + PKR_LTYPE_SRAM = 6, + PKR_LTYPE_SNDTOC = 7, + PKR_LTYPE_CUTSCENE = 8, + PKR_LTYPE_CUTSCENETOC = 9, + PKR_LTYPE_JSPINFO = 10, + PKR_LTYPE_NOMORE = 11, +}; +enum en_READ_ASYNC_STATUS { + HIP_RDSTAT_NONE = -1, + HIP_RDSTAT_INPROG = 0, + HIP_RDSTAT_SUCCESS = 1, + HIP_RDSTAT_FAILED = 2, + HIP_RDSTAT_NOBYPASS = 3, + HIP_RDSTAT_NOASYNC = 4, +}; +class st_HIPLOADFUNCS { + // total size: 0x34 +public: + class st_HIPLOADDATA * (* create)(char *, char *, signed int); // offset 0x0, size 0x4 + void (* destroy)(class st_HIPLOADDATA *); // offset 0x4, size 0x4 + unsigned int (* basesector)(class st_HIPLOADDATA *); // offset 0x8, size 0x4 + unsigned int (* enter)(class st_HIPLOADDATA *); // offset 0xC, size 0x4 + void (* exit)(class st_HIPLOADDATA *); // offset 0x10, size 0x4 + signed int (* readBytes)(class st_HIPLOADDATA *, char *, signed int); // offset 0x14, size 0x4 + signed int (* readShorts)(class st_HIPLOADDATA *, signed short *, signed int); // offset 0x18, size 0x4 + signed int (* readLongs)(class st_HIPLOADDATA *, signed int *, signed int); // offset 0x1C, size 0x4 + signed int (* readFloats)(class st_HIPLOADDATA *, float *, signed int); // offset 0x20, size 0x4 + signed int (* readString)(class st_HIPLOADDATA *, char *); // offset 0x24, size 0x4 + signed int (* setBypass)(class st_HIPLOADDATA *, signed int, signed int); // offset 0x28, size 0x4 + void (* setSpot)(class st_HIPLOADDATA *, signed int); // offset 0x2C, size 0x4 + enum en_READ_ASYNC_STATUS (* pollRead)(class st_HIPLOADDATA *); // offset 0x30, size 0x4 +}; +enum en_GENERATE_ERROR { + PKR_GENERR_NONE = 0, + PKR_GENERR_PACKOPEN = 1, + PKR_GENERR_ASSETOPEN = 2, + PKR_GENERR_EMPTYASSET = 3, + PKR_GENERR_WRITEFAIL = 4, + PKR_GENERR_VIRTUAL = 5, + PKR_GENERR_DUPEASSET = 6, + PKR_GENERR_UNKNOWN = 7, +}; +enum en_PKR_LAYER_LOAD_DEST { + PKR_LDDEST_SKIP = 0, + PKR_LDDEST_KEEPSTATIC = 1, + PKR_LDDEST_KEEPMALLOC = 2, + PKR_LDDEST_RWHANDOFF = 3, + PKR_LDDEST_NOMORE = 4, + PKR_LDDEST_FORCE = 2147483647, +}; +class RwModuleInfo { + // total size: 0x8 +public: + signed int globalsOffset; // offset 0x0, size 0x4 + signed int numInstances; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7010 -> 0x001F70B0 +*/ +// Range: 0x1F7010 -> 0x1F70B0 +static void * PKR_specialGet_loadbuf(class st_PACKER_READ_DATA * pr /* r18 */, signed int amount /* r16 */, signed int align /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7010 -> 0x1F70B0 + void * da_mem; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F70B0 -> 0x001F70B8 +*/ +// Range: 0x1F70B0 -> 0x1F70B8 +static void PKR_special_loadbuf_killed() { + // Blocks + /* anonymous block */ { + // Range: 0x1F70B0 -> 0x1F70B8 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F70C0 -> 0x001F7174 +*/ +// Range: 0x1F70C0 -> 0x1F7174 +static void PKR_relmem(unsigned int id /* r19 */, signed int blksize /* r18 */, void * memptr /* r17 */, signed int isTemp /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F70C0 -> 0x1F7174 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7180 -> 0x001F7270 +*/ +// Range: 0x1F7180 -> 0x1F7270 +static void * PKR_getmem(unsigned int id /* r18 */, signed int amount /* r17 */, signed int align /* r20 */, signed int isTemp /* r2 */, char * * memtru /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7180 -> 0x1F7270 + void * memptr; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7270 -> 0x001F7580 +*/ +// Range: 0x1F7270 -> 0x1F7580 +static void PKR_bld_typecnt(class st_PACKER_READ_DATA * pr /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7270 -> 0x1F7580 + class st_PACKER_LTOC_NODE * laynode; // r23 + class st_PACKER_ATOC_NODE * assnode; // r5 + signed int i; // r20 + signed int j; // r19 + signed int idx; // r18 + signed int typcnt[129]; // r29+0xA0 + class st_XORDEREDARRAY * tmplist; // r2 + unsigned int lasttype; // r17 + signed int lasttidx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7580 -> 0x001F75EC +*/ +// Range: 0x1F7580 -> 0x1F75EC +static class st_PACKER_ASSETTYPE * PKR_type2typeref(unsigned int type /* r2 */, class st_PACKER_ASSETTYPE * typelist /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7580 -> 0x1F75EC + class st_PACKER_ASSETTYPE * da_type; // r16 + class st_PACKER_ASSETTYPE * tmptype; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F75F0 -> 0x001F769C +*/ +// Range: 0x1F75F0 -> 0x1F769C +static signed int LOD_r_STRM(class st_HIPLOADDATA * pkg /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F75F0 -> 0x1F769C + unsigned int cid; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F76A0 -> 0x001F78EC +*/ +// Range: 0x1F76A0 -> 0x1F78EC +static signed int LOD_r_LHDR(class st_HIPLOADDATA * pkg /* r17 */, class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F76A0 -> 0x1F78EC + unsigned int cid; // r2 + signed int ival; // r29+0x6C + enum en_LAYER_TYPE laytyp; // r20 + signed int refcnt; // r29+0x68 + signed int idx; // r2 + signed int i; // r20 + class st_PACKER_LTOC_NODE * laynode; // r19 + class st_PACKER_ATOC_NODE * assnode; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F78F0 -> 0x001F79C0 +*/ +// Range: 0x1F78F0 -> 0x1F79C0 +static signed int LOD_r_LTOC(class st_HIPLOADDATA * pkg /* r17 */, class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F78F0 -> 0x1F79C0 + unsigned int cid; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F79C0 -> 0x001F7AB4 +*/ +// Range: 0x1F79C0 -> 0x1F7AB4 +static signed int LOD_r_ADBG(class st_HIPLOADDATA * pkg /* r18 */, class st_PACKER_READ_DATA * pr /* r17 */, class st_PACKER_ATOC_NODE * assnode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F79C0 -> 0x1F7AB4 + signed int ival; // r29+0x14C + char tmpbuf[256]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7AC0 -> 0x001F7CE0 +*/ +// Range: 0x1F7AC0 -> 0x1F7CE0 +static signed int LOD_r_AHDR(class st_HIPLOADDATA * pkg /* r19 */, class st_PACKER_READ_DATA * pr /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7AC0 -> 0x1F7CE0 + unsigned int cid; // r2 + signed int ival; // r29+0x5C + signed int isdup; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7CE0 -> 0x001F7DB0 +*/ +// Range: 0x1F7CE0 -> 0x1F7DB0 +static signed int LOD_r_ATOC(class st_HIPLOADDATA * pkg /* r17 */, class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7CE0 -> 0x1F7DB0 + unsigned int cid; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7DB0 -> 0x001F7E80 +*/ +// Range: 0x1F7DB0 -> 0x1F7E80 +static signed int LOD_r_DICT(class st_HIPLOADDATA * pkg /* r17 */, class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7DB0 -> 0x1F7E80 + unsigned int cid; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F7E80 -> 0x001F7FFC +*/ +// Range: 0x1F7E80 -> 0x1F7FFC +static signed int LOD_r_PLAT(class st_HIPLOADDATA * pkg /* r18 */, class st_PACKER_READ_DATA * pr /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F7E80 -> 0x1F7FFC + signed int result; // r16 + signed int plattag; // r29+0xCC + char platname[32]; // r29+0xA0 + char vidname[32]; // r29+0x80 + char langname[32]; // r29+0x60 + char titlename[32]; // r29+0x40 + signed int n; // r2 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8000 -> 0x001F82B4 +*/ +// Range: 0x1F8000 -> 0x1F82B4 +static signed int ValidatePlatform(char * plat /* r19 */, char * vid /* r18 */, char * lang /* r17 */, char * title /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8000 -> 0x1F82B4 + char fullname[128]; // r29+0x50 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F82C0 -> 0x001F8378 +*/ +// Range: 0x1F82C0 -> 0x1F8378 +static signed int LOD_r_PVER(class st_HIPLOADDATA * pkg /* r17 */, class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F82C0 -> 0x1F8378 + signed int ver; // r29+0x3C + signed int amt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8380 -> 0x001F85D8 +*/ +// Range: 0x1F8380 -> 0x1F85D8 +static signed int LOD_r_PACK(class st_HIPLOADDATA * pkg /* r17 */, class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8380 -> 0x1F85D8 + unsigned int cid; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F85E0 -> 0x001F8620 +*/ +// Range: 0x1F85E0 -> 0x1F8620 +static signed int OrdTest_R_AssetID(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F85E0 -> 0x1F8620 + signed int rc; // r2 + unsigned int key; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8620 -> 0x001F8668 +*/ +// Range: 0x1F8620 -> 0x1F8668 +static signed int OrdComp_R_Asset(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8620 -> 0x1F8668 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8670 -> 0x001F8838 +*/ +// Range: 0x1F8670 -> 0x1F8838 +static signed int PKR_FRIEND_assetIsGameDup(unsigned int aid /* r18 */, class st_PACKER_READ_DATA * skippr /* r17 */, signed int oursize /* r23 */, unsigned int ourtype /* r16 */, unsigned int chksum /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8670 -> 0x1F8838 + signed int is_dup; // r22 + class st_PACKER_ATOC_NODE * tmp_ass; // r21 + signed int i; // r20 + signed int idx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8840 -> 0x001F88C8 +*/ +// Range: 0x1F8840 -> 0x1F88C8 +static signed int PKR_PkgHasAsset(class st_PACKER_READ_DATA * pr /* r16 */, unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8840 -> 0x1F88C8 + signed int rc; // r2 + signed int idx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F88D0 -> 0x001F8A1C +*/ +// Range: 0x1F88D0 -> 0x1F8A1C +static signed int PKR_GetAssetInfoByType(class st_PACKER_READ_DATA * pr /* r19 */, unsigned int type /* r18 */, signed int idx /* r17 */, class st_PKR_ASSET_TOCINFO * tocinfo /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F88D0 -> 0x1F8A1C + class st_PACKER_ATOC_NODE * assnode; // r6 + class st_XORDEREDARRAY * typlist; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8A20 -> 0x001F8AF8 +*/ +// Range: 0x1F8A20 -> 0x1F8AF8 +static signed int PKR_GetAssetInfo(class st_PACKER_READ_DATA * pr /* r18 */, unsigned int aid /* r17 */, class st_PKR_ASSET_TOCINFO * tocinfo /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8A20 -> 0x1F8AF8 + signed int idx; // r2 + class st_PACKER_ATOC_NODE * assnode; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8B00 -> 0x001F8B08 +*/ +// Range: 0x1F8B00 -> 0x1F8B08 +static unsigned int PKR_GetBaseSector(class st_PACKER_READ_DATA * pr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8B00 -> 0x1F8B08 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8B10 -> 0x001F8B7C +*/ +// Range: 0x1F8B10 -> 0x1F8B7C +static char * PKR_AssetName(class st_PACKER_READ_DATA * pr /* r17 */, unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8B10 -> 0x1F8B7C + char * da_name; // r16 + signed int idx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8B80 -> 0x001F8B88 +*/ +// Range: 0x1F8B80 -> 0x1F8B88 +unsigned int PKRAssetIDFromInst(void * asset_inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8B80 -> 0x1F8B88 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8B90 -> 0x001F8BD0 +*/ +// Range: 0x1F8B90 -> 0x1F8BD0 +static void PKR_Disconnect(class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8B90 -> 0x1F8BD0 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8BD0 -> 0x001F8BD8 +*/ +// Range: 0x1F8BD0 -> 0x1F8BD8 +static unsigned int PKR_getPackTimestamp(class st_PACKER_READ_DATA * pr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8BD0 -> 0x1F8BD8 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8BE0 -> 0x001F8C58 +*/ +// Range: 0x1F8BE0 -> 0x1F8C58 +static signed int PKR_IsAssetReady(class st_PACKER_READ_DATA * pr /* r17 */, unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8BE0 -> 0x1F8C58 + signed int is_ok; // r16 + signed int idx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8C60 -> 0x001F8D20 +*/ +// Range: 0x1F8C60 -> 0x1F8D20 +static void * PKR_AssetByType(class st_PACKER_READ_DATA * pr /* r2 */, unsigned int type /* r2 */, signed int idx /* r2 */, unsigned int * size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8C60 -> 0x1F8D20 + class st_XORDEREDARRAY * typlist; // r4 + class st_PACKER_ATOC_NODE * assnode; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8D20 -> 0x001F8D88 +*/ +// Range: 0x1F8D20 -> 0x1F8D88 +static signed int PKR_AssetCount(class st_PACKER_READ_DATA * pr /* r2 */, unsigned int type /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8D20 -> 0x1F8D88 + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8D90 -> 0x001F8E14 +*/ +// Range: 0x1F8D90 -> 0x1F8E14 +static unsigned int PKR_GetAssetSize(class st_PACKER_READ_DATA * pr /* r17 */, unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8D90 -> 0x1F8E14 + signed int idx; // r2 + class st_PACKER_ATOC_NODE * assnode; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8E20 -> 0x001F8E28 +*/ +// Range: 0x1F8E20 -> 0x1F8E28 +static void * PKR_LoadAsset(class st_PACKER_READ_DATA * pr /* r2 */, unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8E20 -> 0x1F8E28 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8E30 -> 0x001F8E38 +*/ +// Range: 0x1F8E30 -> 0x1F8E38 +static signed int PKR_LoadLayer() { + // Blocks + /* anonymous block */ { + // Range: 0x1F8E30 -> 0x1F8E38 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8E40 -> 0x001F8EAC +*/ +// Range: 0x1F8E40 -> 0x1F8EAC +static void * PKR_FindAsset(class st_PACKER_READ_DATA * pr /* r17 */, unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8E40 -> 0x1F8EAC + signed int idx; // r2 + class st_PACKER_ATOC_NODE * assnode; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8EB0 -> 0x001F8FD8 +*/ +// Range: 0x1F8EB0 -> 0x1F8FD8 +static void PKR_xform_asset(class st_PACKER_ATOC_NODE * assnode /* r17 */, signed int dumpable_layer /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8EB0 -> 0x1F8FD8 + char * xformloc; // r2 + class st_PACKER_ASSETTYPE * atype; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F8FE0 -> 0x001F90F8 +*/ +// Range: 0x1F8FE0 -> 0x1F90F8 +static void PKR_xformLayerAssets(class st_PACKER_LTOC_NODE * laynode /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F8FE0 -> 0x1F90F8 + signed int i; // r19 + signed int will_be_dumped; // r18 + class st_PACKER_ATOC_NODE * tmpass; // r17 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9100 -> 0x001F91E8 +*/ +// Range: 0x1F9100 -> 0x1F91E8 +static void PKR_updateLayerAssets(class st_PACKER_LTOC_NODE * laynode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9100 -> 0x1F91E8 + signed int i; // r8 + class st_PACKER_ATOC_NODE * tmpass; // r7 + signed int lay_hip_pos; // r12 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F91F0 -> 0x001F9300 +*/ +// Range: 0x1F91F0 -> 0x1F9300 +static signed int PKR_findNextLayerToLoad(class st_PACKER_READ_DATA * * work_on_pkg /* r2 */, class st_PACKER_LTOC_NODE * * next_layer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F91F0 -> 0x1F9300 + class st_PACKER_READ_DATA * tmppr; // r10 + class st_PACKER_LTOC_NODE * tmplay; // r9 + signed int i; // r8 + signed int j; // r11 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9300 -> 0x001F9420 +*/ +// Range: 0x1F9300 -> 0x1F9420 +static void PKR_LayerMemRelease(class st_PACKER_LTOC_NODE * layer /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9300 -> 0x1F9420 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9420 -> 0x001F9544 +*/ +// Range: 0x1F9420 -> 0x1F9544 +static char * PKR_LayerMemReserve(class st_PACKER_READ_DATA * pr /* r2 */, class st_PACKER_LTOC_NODE * layer /* r6 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9420 -> 0x1F9544 + char * mem; // r5 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9550 -> 0x001F9988 +*/ +// Range: 0x1F9550 -> 0x1F9988 +static signed int PKR_LoadStep_Async() { + // Blocks + /* anonymous block */ { + // Range: 0x1F9550 -> 0x1F9988 + signed int moretodo; // r2 + signed int rc; // r2 + enum en_READ_ASYNC_STATUS readstat; // r2 + class st_PACKER_ATOC_NODE * tmpass; // r16 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r2 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r4 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r3 + enum en_PKR_LAYER_LOAD_DEST loaddest; // r4 + class st_PACKER_READ_DATA * curpr; // @ 0x0050FAA0 + class st_PACKER_LTOC_NODE * asynlay; // @ 0x0050FAA4 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9990 -> 0x001F9B38 +*/ +// Range: 0x1F9990 -> 0x1F9B38 +static signed int PKR_parse_TOC(class st_HIPLOADDATA * pkg /* r19 */, class st_PACKER_READ_DATA * pr /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9990 -> 0x1F9B38 + signed int is_ok; // r17 + unsigned int cid; // r2 + signed int done; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9B40 -> 0x001F9CB4 +*/ +// Range: 0x1F9B40 -> 0x1F9CB4 +static signed int PKR_SetActive(class st_PACKER_READ_DATA * pr /* r22 */, enum en_LAYER_TYPE layer /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9B40 -> 0x1F9CB4 + signed int result; // r23 + signed int rc; // r2 + signed int i; // r20 + signed int j; // r19 + class st_PACKER_ATOC_NODE * assnode; // r18 + class st_PACKER_LTOC_NODE * laynode; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9CC0 -> 0x001F9F44 +*/ +// Range: 0x1F9CC0 -> 0x1F9F44 +static void PKR_ReadDone(class st_PACKER_READ_DATA * pr /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9CC0 -> 0x1F9F44 + signed int i; // r21 + signed int j; // r20 + signed int lockid; // r17 + class st_PACKER_ATOC_NODE * assnode; // r5 + class st_PACKER_LTOC_NODE * laynode; // r19 + class st_XORDEREDARRAY * tmplist; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001F9F50 -> 0x001FA170 +*/ +// Range: 0x1F9F50 -> 0x1FA170 +static class st_PACKER_READ_DATA * PKR_ReadInit(void * userdata /* r21 */, char * pkgfile /* r20 */, unsigned int opts /* r22 */, signed int * cltver /* r19 */, class st_PACKER_ASSETTYPE * typelist /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1F9F50 -> 0x1FA170 + class st_PACKER_READ_DATA * pr; // r18 + signed int i; // r6 + signed int uselock; // r17 + char * tocbuf_RAW; // r29+0x9C + char * tocbuf_aligned; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA170 -> 0x001FA178 +*/ +// Range: 0x1FA170 -> 0x1FA178 +signed int PKRLoadStep() { + // Blocks + /* anonymous block */ { + // Range: 0x1FA170 -> 0x1FA178 + signed int more_todo; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA180 -> 0x001FA194 +*/ +// Range: 0x1FA180 -> 0x1FA194 +signed int PKRShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x1FA180 -> 0x1FA194 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA1A0 -> 0x001FA2E8 +*/ +// Range: 0x1FA1A0 -> 0x1FA2E8 +signed int PKRStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x1FA1A0 -> 0x1FA2E8 + } +} + +/* + Compile unit: C:\SB\Core\x\xpkrsvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FA2F0 -> 0x001FA328 +*/ +// Range: 0x1FA2F0 -> 0x1FA328 +class st_PACKER_READ_FUNCS * PKRGetReadFuncs(signed int apiver /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FA2F0 -> 0x1FA328 + } +} + diff --git a/dwarf/SB/Core/x/xsavegame.cpp b/dwarf/SB/Core/x/xsavegame.cpp new file mode 100644 index 000000000..2c344fdb3 --- /dev/null +++ b/dwarf/SB/Core/x/xsavegame.cpp @@ -0,0 +1,1053 @@ +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int g_xsginit; // size: 0x4, address: 0x50FAB0 +static class st_XSAVEGAME_DATA g_xsgdata; // size: 0x20F0, address: 0x5A1750 +static class st_XSAVEGAME_LEADER g_leaders[3]; // size: 0x108, address: 0x5A3840 +static class st_XSG_SHORTLABEL g_msglabels[32]; // size: 0x100, address: 0x0 +static class XSGAutoData g_autodata; // size: 0x14, address: 0x5A3990 +void ASG_ISG_changed(void *, enum en_CHGCODE); // size: 0x0, address: 0x1FAC30 +signed int xSG_cb_leader_svproc(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // size: 0x0, address: 0x1FBEF0 +signed int xSG_cb_leader_svinfo(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // size: 0x0, address: 0x1FBFE0 +signed int xSG_cb_leader_load(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // size: 0x0, address: 0x1FBE40 +void xSG_cb_ISGChange(void *, enum en_CHGCODE); // size: 0x0, address: 0x1FB2D0 +class st_XSAVEGAME_CLIENT { + // total size: 0x40 +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int (* cltinfo)(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // offset 0x4, size 0x4 + signed int (* cltproc)(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // offset 0x8, size 0x4 + signed int (* cltload)(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // offset 0xC, size 0x4 + void * cltdata; // offset 0x10, size 0x4 + signed int needamt; // offset 0x14, size 0x4 + signed int maxamt; // offset 0x18, size 0x4 + signed int realamt; // offset 0x1C, size 0x4 + char * buf_sizepos; // offset 0x20, size 0x4 + char * buf_maxpos; // offset 0x24, size 0x4 + signed int blokact; // offset 0x28, size 0x4 + signed int blokmax; // offset 0x2C, size 0x4 + char * blokpos; // offset 0x30, size 0x4 + char * readpos; // offset 0x34, size 0x4 + signed int readamt; // offset 0x38, size 0x4 + signed int readremain; // offset 0x3C, size 0x4 +}; +class XSGAutoData { + // total size: 0x14 +public: + signed int flg_autodata; // offset 0x0, size 0x4 + signed int lastTarg; // offset 0x4, size 0x4 + signed int lastGame; // offset 0x8, size 0x4 + signed int lastPhysicalSlot; // offset 0xC, size 0x4 + class st_ISGSESSION * isg_monitor; // offset 0x10, size 0x4 +}; +class st_XSAVEGAME_DATA { + // total size: 0x20F0 +public: + signed int gfile_idx; // offset 0x0, size 0x4 + enum en_SAVEGAME_MODE mode; // offset 0x4, size 0x4 + unsigned int stage; // offset 0x8, size 0x4 + signed int gslot; // offset 0xC, size 0x4 + char label[64]; // offset 0x10, size 0x40 + signed int progress; // offset 0x50, size 0x4 + signed int thumbIconIdx; // offset 0x54, size 0x4 + signed long playtime; // offset 0x58, size 0x4 + char * membuf; // offset 0x60, size 0x4 + signed int memsize; // offset 0x64, size 0x4 + char * buf_curpos; // offset 0x68, size 0x4 + char * buf_sizespot; // offset 0x6C, size 0x4 + char * buf_cksmspot; // offset 0x70, size 0x4 + signed int totamt; // offset 0x74, size 0x4 + unsigned int chksum; // offset 0x78, size 0x4 + unsigned int upd_tally; // offset 0x7C, size 0x4 + signed int cltneed; // offset 0x80, size 0x4 + signed int cltmax; // offset 0x84, size 0x4 + signed int chdrneed; // offset 0x88, size 0x4 + signed int stkcnt; // offset 0x8C, size 0x4 + class st_XSAVEGAME_CLIENT cltstk[128]; // offset 0x90, size 0x2000 + class st_XSAVEGAME_CLIENT dfltloadclt; // offset 0x2090, size 0x40 + unsigned int file_chksum; // offset 0x20D0, size 0x4 + unsigned int read_chksum; // offset 0x20D4, size 0x4 + signed int readsize; // offset 0x20D8, size 0x4 + char * loadbuf; // offset 0x20DC, size 0x4 + signed int loadsize; // offset 0x20E0, size 0x4 + char * walkpos; // offset 0x20E4, size 0x4 + signed int walkremain; // offset 0x20E8, size 0x4 + class st_ISGSESSION * isgsess; // offset 0x20EC, size 0x4 +}; +enum en_SAVEGAME_MODE { + XSG_MODE_LOAD = 10, + XSG_MODE_SAVE = 11, +}; +class st_XSAVEGAME_READCONTEXT { + // total size: 0x0 +}; +enum en_XSGASYNC_STATUS { + XSG_ASTAT_NOOP = 0, + XSG_ASTAT_INPROG = 1, + XSG_ASTAT_SUCCESS = 2, + XSG_ASTAT_FAILED = 3, +}; +enum en_ASYNC_OPSTAT { + ISG_OPSTAT_FAILURE = -1, + ISG_OPSTAT_INPROG = 0, + ISG_OPSTAT_SUCCESS = 1, +}; +class st_XSAVEGAME_WRITECONTEXT { + // total size: 0x0 +}; +class st_ISGSESSION { + // total size: 0x0 +}; +enum en_ASYNC_OPERR { + ISG_OPERR_NONE = 0, + ISG_OPERR_NOOPER = 1, + ISG_OPERR_MULTIOPER = 2, + ISG_OPERR_INITFAIL = 3, + ISG_OPERR_GAMEDIR = 4, + ISG_OPERR_NOCARD = 5, + ISG_OPERR_NOROOM = 6, + ISG_OPERR_DAMAGE = 7, + ISG_OPERR_CORRUPT = 8, + ISG_OPERR_OTHER = 9, + ISG_OPERR_SVNOSPACE = 10, + ISG_OPERR_SVINIT = 11, + ISG_OPERR_SVWRITE = 12, + ISG_OPERR_SVOPEN = 13, + ISG_OPERR_LDINIT = 14, + ISG_OPERR_LDREAD = 15, + ISG_OPERR_LDOPEN = 16, + ISG_OPERR_TGTERR = 17, + ISG_OPERR_TGTREM = 18, + ISG_OPERR_TGTPREP = 19, + ISG_OPERR_UNKNOWN = 20, + ISG_OPERR_NOMORE = 21, +}; +enum en_XSG_TGT_NAME_FORMAT { + XSG_NAMFMT_BASIC = 0, + XSG_NAMFMT_SYMBOLS = 1, + XSG_NAMFMT_PROPER = 2, + XSG_NAMFMT_PHYSSLOT = 3, + XSG_NAMFMT_PHYSICAL = 4, +}; +class st_XSAVEGAME_LEADER { + // total size: 0x58 +public: + char gameLabel[64]; // offset 0x0, size 0x40 + signed int progress; // offset 0x40, size 0x4 + signed long gametime; // offset 0x48, size 0x4 + char thumbIconIdx; // offset 0x50, size 0x1 +}; +enum en_XSG_WHYFAIL { + XSG_WHYERR_NONE = 0, + XSG_WHYERR_NOCARD = 1, + XSG_WHYERR_NOROOM = 2, + XSG_WHYERR_DAMAGE = 3, + XSG_WHYERR_CARDYANKED = 4, + XSG_WHYERR_OTHER = 5, + XSG_WHYERR_NOMORE = 6, +}; +enum en_CHGCODE { + ISG_CHG_NONE = 0, + ISG_CHG_TARGET = 1, + ISG_CHG_GAMELIST = 2, +}; +class st_XSG_SHORTLABEL { + // total size: 0x8 +public: + char * msglong; // offset 0x0, size 0x4 + char * msgshort; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAC30 -> 0x001FAC88 +*/ +// Range: 0x1FAC30 -> 0x1FAC88 +static void ASG_ISG_changed(enum en_CHGCODE what /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAC30 -> 0x1FAC88 + class XSGAutoData * asg; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAC90 -> 0x001FACDC +*/ +// Range: 0x1FAC90 -> 0x1FACDC +void Discard(class XSGAutoData * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAC90 -> 0x1FACDC + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FACE0 -> 0x001FADA4 +*/ +// Range: 0x1FACE0 -> 0x1FADA4 +signed int SetCache(class XSGAutoData * this /* r16 */, signed int targ /* r19 */, signed int game /* r18 */, signed int physicalSlot /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FACE0 -> 0x1FADA4 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FADB0 -> 0x001FAE08 +*/ +// Range: 0x1FADB0 -> 0x1FAE08 +signed int IsValid(class XSGAutoData * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FADB0 -> 0x1FAE08 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAE10 -> 0x001FAE1C +*/ +// Range: 0x1FAE10 -> 0x1FAE1C +class XSGAutoData * xSGAutoSave_GetCache() { + // Blocks + /* anonymous block */ { + // Range: 0x1FAE10 -> 0x1FAE1C + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAE20 -> 0x001FAF14 +*/ +// Range: 0x1FAE20 -> 0x1FAF14 +signed int xSG_ld_flipload(class st_XSAVEGAME_DATA * xsgdata /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAE20 -> 0x1FAF14 + signed int result; // r19 + signed int rc; // r2 + signed int i; // r18 + class st_XSAVEGAME_CLIENT * clt; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FAF20 -> 0x001FB1E4 +*/ +// Range: 0x1FAF20 -> 0x1FB1E4 +signed int xSG_ld_findcltblk(class st_XSAVEGAME_DATA * xsgdata /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FAF20 -> 0x1FB1E4 + signed int ival; // r29+0x4C + unsigned int tag; // r29+0x48 + signed int maxamt; // r29+0x44 + signed int actamt; // r29+0x40 + class st_XSAVEGAME_CLIENT * clt; // r7 + signed int i; // r6 + signed int found; // r17 + signed int rc; // r2 + class st_XSAVEGAME_CLIENT * dfltclt; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB1F0 -> 0x001FB2D0 +*/ +// Range: 0x1FB1F0 -> 0x1FB2D0 +signed int xSG_ld_readhead(class st_XSAVEGAME_DATA * xsgdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB1F0 -> 0x1FB2D0 + signed int result; // r16 + signed int ival; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB2D0 -> 0x001FB328 +*/ +// Range: 0x1FB2D0 -> 0x1FB328 +void xSG_cb_ISGChange(enum en_CHGCODE what /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB2D0 -> 0x1FB328 + class XSGAutoData * asg; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB330 -> 0x001FB430 +*/ +// Range: 0x1FB330 -> 0x1FB430 +signed int xSG_sv_commit(class st_XSAVEGAME_DATA * xsgdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB330 -> 0x1FB430 + signed int result; // r16 + signed int rc; // r2 + char * name; // r2 + char browselabel[64]; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB430 -> 0x001FB4FC +*/ +// Range: 0x1FB430 -> 0x1FB4FC +signed int xSG_smem_cltclose(class st_XSAVEGAME_DATA * xsgdata /* r17 */, class st_XSAVEGAME_CLIENT * clt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB430 -> 0x1FB4FC + char * last_bufpos; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB500 -> 0x001FB580 +*/ +// Range: 0x1FB500 -> 0x1FB580 +signed int xSG_smem_blkclose(class st_XSAVEGAME_DATA * xsgdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB500 -> 0x1FB580 + char * last_bufpos; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB580 -> 0x001FB74C +*/ +// Range: 0x1FB580 -> 0x1FB74C +signed int xSG_sv_flipproc(class st_XSAVEGAME_DATA * xsgdata /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB580 -> 0x1FB74C + signed int result; // r20 + signed int rc; // r19 + signed int i; // r18 + class st_XSAVEGAME_CLIENT * clt; // r17 + char bfill; // r29+0x8F + signed int needfill; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB750 -> 0x001FB7F0 +*/ +// Range: 0x1FB750 -> 0x1FB7F0 +signed int xSG_sv_prepdest(class st_XSAVEGAME_DATA * xsgdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB750 -> 0x1FB7F0 + signed int result; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB7F0 -> 0x001FB90C +*/ +// Range: 0x1FB7F0 -> 0x1FB90C +signed int xSG_sv_flipinfo(class st_XSAVEGAME_DATA * xsgdata /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB7F0 -> 0x1FB90C + signed int result; // r19 + signed int i; // r18 + signed int rc; // r2 + class st_XSAVEGAME_CLIENT * clt; // r17 + signed int cltamt; // r29+0x6C + signed int cltmax; // r29+0x68 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FB910 -> 0x001FBB20 +*/ +// Range: 0x1FB910 -> 0x1FBB20 +static signed int xSG_grab_leaders(class st_XSAVEGAME_DATA * xsgdata /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FB910 -> 0x1FBB20 + signed int num_found; // r20 + signed int i; // r19 + char readbuf[116]; // r29+0x80 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBB20 -> 0x001FBB2C +*/ +// Range: 0x1FBB20 -> 0x1FBB2C +signed int xSGReadData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */, float * buff /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBB20 -> 0x1FBB2C + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBB30 -> 0x001FBB3C +*/ +// Range: 0x1FBB30 -> 0x1FBB3C +signed int xSGReadData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */, unsigned int * buff /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBB30 -> 0x1FBB3C + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBB40 -> 0x001FBB4C +*/ +// Range: 0x1FBB40 -> 0x1FBB4C +signed int xSGReadData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */, signed int * buff /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBB40 -> 0x1FBB4C + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBB50 -> 0x001FBB5C +*/ +// Range: 0x1FBB50 -> 0x1FBB5C +signed int xSGReadData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */, char * buff /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBB50 -> 0x1FBB5C + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBB60 -> 0x001FBC74 +*/ +// Range: 0x1FBB60 -> 0x1FBC74 +signed int xSGReadData(class st_XSAVEGAME_DATA * xsgdata /* r19 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */, char * buff /* r2 */, signed int elesiz /* r18 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBB60 -> 0x1FBC74 + signed int cnt; // r17 + class st_XSAVEGAME_CLIENT * clt; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBC80 -> 0x001FBC8C +*/ +// Range: 0x1FBC80 -> 0x1FBC8C +signed int xSGWriteData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */, float * data /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBC80 -> 0x1FBC8C + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBC90 -> 0x001FBC9C +*/ +// Range: 0x1FBC90 -> 0x1FBC9C +signed int xSGWriteData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */, unsigned int * data /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBC90 -> 0x1FBC9C + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBCA0 -> 0x001FBCAC +*/ +// Range: 0x1FBCA0 -> 0x1FBCAC +signed int xSGWriteData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */, signed int * data /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBCA0 -> 0x1FBCAC + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBCB0 -> 0x001FBCBC +*/ +// Range: 0x1FBCB0 -> 0x1FBCBC +signed int xSGWriteData(class st_XSAVEGAME_DATA * xsgdata /* r2 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */, char * data /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBCB0 -> 0x1FBCBC + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBCC0 -> 0x001FBCEC +*/ +// Range: 0x1FBCC0 -> 0x1FBCEC +signed int xSGWriteStrLen(char * str /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBCC0 -> 0x1FBCEC + signed int len; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBCF0 -> 0x001FBE40 +*/ +// Range: 0x1FBCF0 -> 0x1FBE40 +signed int xSGWriteData(class st_XSAVEGAME_DATA * xsgdata /* r20 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */, char * data /* r2 */, signed int elesiz /* r19 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBCF0 -> 0x1FBE40 + signed int cnt; // r18 + class st_XSAVEGAME_CLIENT * clt; // r17 + signed int is_ok; // r16 + void * mcprc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBE40 -> 0x001FBEE8 +*/ +// Range: 0x1FBE40 -> 0x1FBEE8 +static signed int xSG_cb_leader_load(class st_XSAVEGAME_DATA * original_xsgdata /* r17 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBE40 -> 0x1FBEE8 + char fundata[32]; // r29+0x90 + class st_XSAVEGAME_LEADER discard; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBEF0 -> 0x001FBFD8 +*/ +// Range: 0x1FBEF0 -> 0x1FBFD8 +static signed int xSG_cb_leader_svproc(void * cltdata /* r2 */, class st_XSAVEGAME_DATA * original_xsgdata /* r18 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBEF0 -> 0x1FBFD8 + class st_XSAVEGAME_DATA * xsg; // r16 + class st_XSAVEGAME_LEADER leader; // r29+0x60 + char fundata[23]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FBFE0 -> 0x001FBFF4 +*/ +// Range: 0x1FBFE0 -> 0x1FBFF4 +static signed int xSG_cb_leader_svinfo(signed int * cur_space /* r2 */, signed int * max_fullgame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FBFE0 -> 0x1FBFF4 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC000 -> 0x001FC154 +*/ +// Range: 0x1FC000 -> 0x1FC154 +enum en_XSGASYNC_STATUS xSGAsyncStatus(class st_XSAVEGAME_DATA * xsgdata /* r20 */, signed int block /* r5 */, enum en_XSG_WHYFAIL * whyFail /* r18 */, char * errmsg /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC000 -> 0x1FC154 + enum en_XSGASYNC_STATUS xstat; // r17 + enum en_ASYNC_OPSTAT istat; // r2 + enum en_ASYNC_OPERR whyerr; // r16 + enum en_XSG_WHYFAIL con; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC160 -> 0x001FC338 +*/ +// Range: 0x1FC160 -> 0x1FC338 +signed int xSGWrapup(class st_XSAVEGAME_DATA * xsgdata /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC160 -> 0x1FC338 + signed int result; // r17 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC340 -> 0x001FC57C +*/ +// Range: 0x1FC340 -> 0x1FC57C +signed int xSGProcess(class st_XSAVEGAME_DATA * xsgdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC340 -> 0x1FC57C + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC580 -> 0x001FC6F4 +*/ +// Range: 0x1FC580 -> 0x1FC6F4 +signed int xSGSetup(class st_XSAVEGAME_DATA * xsgdata /* r20 */, signed int gidx /* r2 */, char * label /* r2 */, signed int progress /* r19 */, signed long playtime /* r18 */, signed int thumbIconIdx /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC580 -> 0x1FC6F4 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC700 -> 0x001FC71C +*/ +// Range: 0x1FC700 -> 0x1FC71C +signed int xSGSetup(class st_XSAVEGAME_DATA * xsgdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC700 -> 0x1FC71C + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC720 -> 0x001FC85C +*/ +// Range: 0x1FC720 -> 0x1FC85C +signed int xSGAddLoadClient(class st_XSAVEGAME_DATA * xsgdata /* r19 */, unsigned int clttag /* r18 */, void * cltdata /* r17 */, signed int (* loadfunc)(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int) /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC720 -> 0x1FC85C + signed int result; // r2 + class st_XSAVEGAME_CLIENT * clt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC860 -> 0x001FC950 +*/ +// Range: 0x1FC860 -> 0x1FC950 +signed int xSGAddSaveClient(class st_XSAVEGAME_DATA * xsgdata /* r20 */, unsigned int clttag /* r19 */, void * cltdata /* r18 */, signed int (* infofunc)(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *) /* r17 */, signed int (* procfunc)(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *) /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC860 -> 0x1FC950 + signed int result; // r2 + class st_XSAVEGAME_CLIENT * clt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC950 -> 0x001FC9E8 +*/ +// Range: 0x1FC950 -> 0x1FC9E8 +signed int xSGGameProgress(class st_XSAVEGAME_DATA * xsgdata /* r19 */, signed int gidx /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC950 -> 0x1FC9E8 + signed int idx_thum; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FC9F0 -> 0x001FCA88 +*/ +// Range: 0x1FC9F0 -> 0x1FCA88 +signed int xSGGameThumbIndex(class st_XSAVEGAME_DATA * xsgdata /* r19 */, signed int gidx /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FC9F0 -> 0x1FCA88 + signed int idx_thum; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCA90 -> 0x001FCB30 +*/ +// Range: 0x1FCA90 -> 0x1FCB30 +char * xSGGameLabel(class st_XSAVEGAME_DATA * xsgdata /* r19 */, signed int gidx /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCA90 -> 0x1FCB30 + char * da_name; // r16 + class st_XSAVEGAME_LEADER * lead; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCB30 -> 0x001FCC30 +*/ +// Range: 0x1FCB30 -> 0x1FCC30 +char * xSGGameModDate(class st_XSAVEGAME_DATA * xsgdata /* r18 */, signed int gidx /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCB30 -> 0x1FCC30 + char * date; // r2 + char da_date[32]; // @ 0x005A3950 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCC30 -> 0x001FCD00 +*/ +// Range: 0x1FCC30 -> 0x1FCD00 +signed int xSGGameSize(class st_XSAVEGAME_DATA * xsgdata /* r19 */, signed int gidx /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCC30 -> 0x1FCD00 + signed int size; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCD00 -> 0x001FCDD8 +*/ +// Range: 0x1FCD00 -> 0x1FCDD8 +signed int xSGGameIsEmpty(class st_XSAVEGAME_DATA * xsgdata /* r19 */, signed int gidx /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCD00 -> 0x1FCDD8 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCDE0 -> 0x001FCDE8 +*/ +// Range: 0x1FCDE0 -> 0x1FCDE8 +void xSGGameSet(class st_XSAVEGAME_DATA * xsgdata /* r2 */, signed int gidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCDE0 -> 0x1FCDE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCDF0 -> 0x001FCDF8 +*/ +// Range: 0x1FCDF0 -> 0x1FCDF8 +unsigned char xSGCheckMemoryCard(class st_XSAVEGAME_DATA * xsgdata /* r2 */, signed int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCDF0 -> 0x1FCDF8 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCE00 -> 0x001FCEF4 +*/ +// Range: 0x1FCE00 -> 0x1FCEF4 +signed int xSGTgtHaveRoomStartup(class st_XSAVEGAME_DATA * xsgdata /* r21 */, signed int tidx /* r20 */, signed int fsize /* r19 */, signed int slotidx /* r2 */, signed int * bytesNeeded /* r18 */, signed int * availOnDisk /* r17 */, signed int * needFile /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCE00 -> 0x1FCEF4 + signed int isroom; // r2 + char fname[256]; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FCF00 -> 0x001FCFF4 +*/ +// Range: 0x1FCF00 -> 0x1FCFF4 +signed int xSGTgtHaveRoom(class st_XSAVEGAME_DATA * xsgdata /* r21 */, signed int tidx /* r20 */, signed int fsize /* r19 */, signed int slotidx /* r2 */, signed int * bytesNeeded /* r18 */, signed int * availOnDisk /* r17 */, signed int * needFile /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FCF00 -> 0x1FCFF4 + signed int isroom; // r2 + char fname[256]; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD000 -> 0x001FD06C +*/ +// Range: 0x1FD000 -> 0x1FD06C +signed int xSGTgtHasGameDir(class st_XSAVEGAME_DATA * xsgdata /* r17 */, signed int tidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD000 -> 0x1FD06C + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD070 -> 0x001FD0F4 +*/ +// Range: 0x1FD070 -> 0x1FD0F4 +signed int xSGTgtSelect(class st_XSAVEGAME_DATA * xsgdata /* r18 */, signed int tidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD070 -> 0x1FD0F4 + signed int result; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD100 -> 0x001FD110 +*/ +// Range: 0x1FD100 -> 0x1FD110 +signed int xSGTgtFormatTgt(class st_XSAVEGAME_DATA * xsgdata /* r2 */, signed int tidx /* r2 */, signed int * canRecover /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD100 -> 0x1FD110 + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD110 -> 0x001FD194 +*/ +// Range: 0x1FD110 -> 0x1FD194 +signed int xSGTgtIsFormat(class st_XSAVEGAME_DATA * xsgdata /* r2 */, signed int tidx /* r2 */, signed int * badEncode /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD110 -> 0x1FD194 + signed int result; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD1A0 -> 0x001FD1A8 +*/ +// Range: 0x1FD1A0 -> 0x1FD1A8 +signed int xSGTgtPhysSlotIdx(class st_XSAVEGAME_DATA * xsgdata /* r2 */, signed int tidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD1A0 -> 0x1FD1A8 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD1B0 -> 0x001FD1B8 +*/ +// Range: 0x1FD1B0 -> 0x1FD1B8 +signed int xSGTgtCount(class st_XSAVEGAME_DATA * xsgdata /* r2 */, signed int * max /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD1B0 -> 0x1FD1B8 + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD1C0 -> 0x001FD2E0 +*/ +// Range: 0x1FD1C0 -> 0x1FD2E0 +signed int xSGDone(class st_XSAVEGAME_DATA * xsgdata /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD1C0 -> 0x1FD2E0 + signed int result; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD2E0 -> 0x001FD3DC +*/ +// Range: 0x1FD2E0 -> 0x1FD3DC +class st_XSAVEGAME_DATA * xSGInit(enum en_SAVEGAME_MODE mode /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1FD2E0 -> 0x1FD3DC + class st_XSAVEGAME_DATA * xsgdata; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD3E0 -> 0x001FD418 +*/ +// Range: 0x1FD3E0 -> 0x1FD418 +signed int xSGShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x1FD3E0 -> 0x1FD418 + } +} + +/* + Compile unit: C:\SB\Core\x\xsavegame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001FD420 -> 0x001FD498 +*/ +// Range: 0x1FD420 -> 0x1FD498 +signed int xSGStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x1FD420 -> 0x1FD498 + } +} + diff --git a/dwarf/SB/Core/x/xserializer.cpp b/dwarf/SB/Core/x/xserializer.cpp new file mode 100644 index 000000000..fc03e6d36 --- /dev/null +++ b/dwarf/SB/Core/x/xserializer.cpp @@ -0,0 +1,676 @@ +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int g_serinit; // size: 0x4, address: 0x50FAFC +static class st_XSERIAL_DATA_PRIV g_xserdata; // size: 0x24, address: 0x5A50A0 +static signed int g_tbl_onbit[32]; // size: 0x80, address: 0x5A50D0 +static signed int g_tbl_clear[32]; // size: 0x80, address: 0x5A5150 +signed int xSER_xsgclt_ldproc_fill(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // size: 0x0, address: 0x202F40 +signed int xSER_xsgclt_ldproc_clt(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // size: 0x0, address: 0x203110 +signed int xSER_xsgclt_ldproc_ver(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // size: 0x0, address: 0x2031F0 +signed int xSER_xsgclt_svproc_fill(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // size: 0x0, address: 0x202FB0 +signed int xSER_xsgclt_svinfo_fill(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // size: 0x0, address: 0x203000 +signed int xSER_xsgclt_svproc_clt(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // size: 0x0, address: 0x203180 +signed int xSER_xsgclt_svinfo_clt(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // size: 0x0, address: 0x2031D0 +signed int xSER_xsgclt_svproc_ver(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // size: 0x0, address: 0x203250 +signed int xSER_xsgclt_svinfo_ver(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // size: 0x0, address: 0x203280 +signed int xSER_ord_compare(void *, void *); // size: 0x0, address: 0x2034E0 +signed int xSER_ord_test(void *, void *); // size: 0x0, address: 0x2034A0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x10 +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int * membuf; // offset 0x4, size 0x4 + signed int trueoff; // offset 0x8, size 0x4 + signed int actsize; // offset 0xC, size 0x4 +}; +class st_XSAVEGAME_DATA { + // total size: 0x0 +}; +class st_XSAVEGAME_READCONTEXT { + // total size: 0x0 +}; +enum en_SAVEGAME_MODE { + XSG_MODE_LOAD = 10, + XSG_MODE_SAVE = 11, +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class st_XSAVEGAME_WRITECONTEXT { + // total size: 0x0 +}; +class st_SERIAL_PERCID_SIZE { + // total size: 0x8 +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int needsize; // offset 0x4, size 0x4 +}; +class st_XSERIAL_DATA_PRIV { + // total size: 0x24 +public: + signed int flg_info; // offset 0x0, size 0x4 + signed int * bitbuf; // offset 0x4, size 0x4 + signed int buf_bytcnt; // offset 0x8, size 0x4 + class st_SERIAL_CLIENTINFO * cltbuf; // offset 0xC, size 0x4 + class st_SERIAL_CLIENTINFO * cltnext; // offset 0x10, size 0x4 + class st_XORDEREDARRAY cltlist; // offset 0x14, size 0x10 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202F40 -> 0x00202FAC +*/ +// Range: 0x202F40 -> 0x202FAC +static signed int xSER_xsgclt_ldproc_fill(class st_XSAVEGAME_DATA * xsg /* r2 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202F40 -> 0x202FAC + char filbuf[9]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00202FB0 -> 0x00202FF8 +*/ +// Range: 0x202FB0 -> 0x202FF8 +static signed int xSER_xsgclt_svproc_fill(class st_XSAVEGAME_DATA * xsg /* r2 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x202FB0 -> 0x202FF8 + char filbuf[9]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203000 -> 0x0020310C +*/ +// Range: 0x203000 -> 0x20310C +static signed int xSER_xsgclt_svinfo_fill(signed int * cur_space /* r2 */, signed int * max_fullgame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203000 -> 0x20310C + class st_XSERIAL_DATA_PRIV * xsd; // r9 + signed int i; // r8 + signed int tally; // r5 + signed int size; // r3 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203110 -> 0x00203174 +*/ +// Range: 0x203110 -> 0x203174 +static signed int xSER_xsgclt_ldproc_clt(class st_XSAVEGAME_DATA * xsg /* r17 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r16 */, unsigned int idtag /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203110 -> 0x203174 + class st_SERIAL_CLIENTINFO * clt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203180 -> 0x002031CC +*/ +// Range: 0x203180 -> 0x2031CC +static signed int xSER_xsgclt_svproc_clt(void * cltdata /* r2 */, class st_XSAVEGAME_DATA * xsg /* r17 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203180 -> 0x2031CC + class st_SERIAL_CLIENTINFO * clt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002031D0 -> 0x002031E8 +*/ +// Range: 0x2031D0 -> 0x2031E8 +static signed int xSER_xsgclt_svinfo_clt(void * cltdata /* r2 */, signed int * cur_space /* r2 */, signed int * max_fullgame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2031D0 -> 0x2031E8 + class st_SERIAL_CLIENTINFO * clt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002031F0 -> 0x0020324C +*/ +// Range: 0x2031F0 -> 0x20324C +static signed int xSER_xsgclt_ldproc_ver(class st_XSAVEGAME_DATA * xsg /* r2 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2031F0 -> 0x20324C + class st_XSERIAL_DATA_PRIV * xsd; // r16 + signed int ver; // r29+0x2C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203250 -> 0x00203280 +*/ +// Range: 0x203250 -> 0x203280 +static signed int xSER_xsgclt_svproc_ver(class st_XSAVEGAME_DATA * xsg /* r2 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203250 -> 0x203280 + signed int ver; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203280 -> 0x00203294 +*/ +// Range: 0x203280 -> 0x203294 +static signed int xSER_xsgclt_svinfo_ver(signed int * cur_space /* r2 */, signed int * max_fullgame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203280 -> 0x203294 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002032A0 -> 0x00203400 +*/ +// Range: 0x2032A0 -> 0x203400 +signed int xSerial_svgame_register(class st_XSAVEGAME_DATA * sgctxt /* r19 */, enum en_SAVEGAME_MODE mode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2032A0 -> 0x203400 + class st_XSERIAL_DATA_PRIV * xsd; // r18 + class st_SERIAL_CLIENTINFO * clt; // r2 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203400 -> 0x0020349C +*/ +// Range: 0x203400 -> 0x20349C +static class st_SERIAL_CLIENTINFO * XSER_get_client(unsigned int idtag /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203400 -> 0x20349C + class st_XSERIAL_DATA_PRIV * xsd; // r17 + class st_SERIAL_CLIENTINFO * clt; // r16 + signed int idx; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002034A0 -> 0x002034E0 +*/ +// Range: 0x2034A0 -> 0x2034E0 +static signed int xSER_ord_test(void * key /* r2 */, void * elt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2034A0 -> 0x2034E0 + signed int rc; // r2 + unsigned int idtag; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002034E0 -> 0x00203528 +*/ +// Range: 0x2034E0 -> 0x203528 +static signed int xSER_ord_compare(void * e1 /* r2 */, void * e2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2034E0 -> 0x203528 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203530 -> 0x00203734 +*/ +// Range: 0x203530 -> 0x203734 +static void xSER_init_buffers(signed int count /* r19 */, class st_SERIAL_PERCID_SIZE * sizeinfo /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203530 -> 0x203734 + class st_XSERIAL_DATA_PRIV * xsd; // r17 + signed int i; // r16 + signed int tally; // r20 + signed int sicnt; // r2 + class st_SERIAL_PERCID_SIZE * sitmp; // r5 + class st_SERIAL_CLIENTINFO * tmp_clt; // r21 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203740 -> 0x00203758 +*/ +// Range: 0x203740 -> 0x203758 +void xSerialWipeMainBuffer() { + // Blocks + /* anonymous block */ { + // Range: 0x203740 -> 0x203758 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203760 -> 0x00203808 +*/ +// Range: 0x203760 -> 0x203808 +signed int rdbit(class xSerial * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203760 -> 0x203808 + class st_SERIAL_CLIENTINFO * clt; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203810 -> 0x002038F0 +*/ +// Range: 0x203810 -> 0x2038F0 +void wrbit(class xSerial * this /* r2 */, signed int is_on /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203810 -> 0x2038F0 + class st_SERIAL_CLIENTINFO * clt; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002038F0 -> 0x002038FC +*/ +// Range: 0x2038F0 -> 0x2038FC +signed int Read(class xSerial * this /* r2 */, float * buf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2038F0 -> 0x2038FC + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203900 -> 0x0020390C +*/ +// Range: 0x203900 -> 0x20390C +signed int Read(class xSerial * this /* r2 */, unsigned int * buf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203900 -> 0x20390C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203910 -> 0x0020391C +*/ +// Range: 0x203910 -> 0x20391C +signed int Read(class xSerial * this /* r2 */, signed int * buf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203910 -> 0x20391C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203920 -> 0x0020392C +*/ +// Range: 0x203920 -> 0x20392C +signed int Read(class xSerial * this /* r2 */, signed short * buf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203920 -> 0x20392C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203930 -> 0x0020393C +*/ +// Range: 0x203930 -> 0x20393C +signed int Read(class xSerial * this /* r2 */, unsigned char * buf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203930 -> 0x20393C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203940 -> 0x0020394C +*/ +// Range: 0x203940 -> 0x20394C +signed int Read_b7(class xSerial * this /* r2 */, unsigned int * bits /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203940 -> 0x20394C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203950 -> 0x0020395C +*/ +// Range: 0x203950 -> 0x20395C +signed int Read_b1(class xSerial * this /* r2 */, signed int * bits /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203950 -> 0x20395C + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203960 -> 0x00203AF4 +*/ +// Range: 0x203960 -> 0x203AF4 +signed int Read(class xSerial * this /* r17 */, char * buf /* r2 */, signed int elesize /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203960 -> 0x203AF4 + signed int nbit; // r16 + char * cptr; // r20 + signed int * iptr; // r20 + signed int bitval; // r2 + signed int bidx; // r19 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203B00 -> 0x00203B28 +*/ +// Range: 0x203B00 -> 0x203B28 +signed int Write(class xSerial * this /* r2 */, float data /* r29+0x1C */) { + // Blocks + /* anonymous block */ { + // Range: 0x203B00 -> 0x203B28 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203B30 -> 0x00203B58 +*/ +// Range: 0x203B30 -> 0x203B58 +signed int Write(class xSerial * this /* r2 */, unsigned int data /* r29+0x1C */) { + // Blocks + /* anonymous block */ { + // Range: 0x203B30 -> 0x203B58 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203B60 -> 0x00203B88 +*/ +// Range: 0x203B60 -> 0x203B88 +signed int Write(class xSerial * this /* r2 */, signed int data /* r29+0x1C */) { + // Blocks + /* anonymous block */ { + // Range: 0x203B60 -> 0x203B88 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203B90 -> 0x00203BB8 +*/ +// Range: 0x203B90 -> 0x203BB8 +signed int Write(class xSerial * this /* r2 */, signed short data /* r29+0x1E */) { + // Blocks + /* anonymous block */ { + // Range: 0x203B90 -> 0x203BB8 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203BC0 -> 0x00203BE8 +*/ +// Range: 0x203BC0 -> 0x203BE8 +signed int Write(class xSerial * this /* r2 */, unsigned char data /* r29+0x1F */) { + // Blocks + /* anonymous block */ { + // Range: 0x203BC0 -> 0x203BE8 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203BF0 -> 0x00203C18 +*/ +// Range: 0x203BF0 -> 0x203C18 +signed int Write_b7(class xSerial * this /* r2 */, unsigned int bits /* r29+0x1C */) { + // Blocks + /* anonymous block */ { + // Range: 0x203BF0 -> 0x203C18 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203C20 -> 0x00203C48 +*/ +// Range: 0x203C20 -> 0x203C48 +signed int Write_b1(class xSerial * this /* r2 */, signed int bits /* r29+0x1C */) { + // Blocks + /* anonymous block */ { + // Range: 0x203C20 -> 0x203C48 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203C50 -> 0x00203D90 +*/ +// Range: 0x203C50 -> 0x203D90 +signed int Write(class xSerial * this /* r17 */, char * data /* r2 */, signed int elesize /* r2 */, signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203C50 -> 0x203D90 + signed int nbit; // r16 + char * cptr; // r20 + signed int * iptr; // r20 + signed int bidx; // r19 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203D90 -> 0x00203DDC +*/ +// Range: 0x203D90 -> 0x203DDC +void setClient(class xSerial * this /* r16 */, unsigned int idtag /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203D90 -> 0x203DDC + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203DE0 -> 0x00203E24 +*/ +// Range: 0x203DE0 -> 0x203E24 +void * __dt(class xSerial * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203DE0 -> 0x203E24 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203E30 -> 0x00203E38 +*/ +// Range: 0x203E30 -> 0x203E38 +void * __ct(class xSerial * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203E30 -> 0x203E38 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203E40 -> 0x00203F50 +*/ +// Range: 0x203E40 -> 0x203F50 +void xSerialTraverse(signed int (* func)(unsigned int, class xSerial *) /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203E40 -> 0x203F50 + signed int i; // r20 + class st_XSERIAL_DATA_PRIV * xsd; // r19 + class st_SERIAL_CLIENTINFO * clt; // r18 + class xSerial xser; // r29+0xA0 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203F50 -> 0x00203F64 +*/ +// Range: 0x203F50 -> 0x203F64 +signed int xSerialShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x203F50 -> 0x203F64 + } +} + +/* + Compile unit: C:\SB\Core\x\xserializer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00203F70 -> 0x00204098 +*/ +// Range: 0x203F70 -> 0x204098 +signed int xSerialStartup(signed int count /* r17 */, class st_SERIAL_PERCID_SIZE * sizeinfo /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x203F70 -> 0x204098 + } +} + diff --git a/dwarf/SB/Core/x/xstransvc.cpp b/dwarf/SB/Core/x/xstransvc.cpp new file mode 100644 index 000000000..0d5a466cc --- /dev/null +++ b/dwarf/SB/Core/x/xstransvc.cpp @@ -0,0 +1,409 @@ +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int g_straninit; // size: 0x4, address: 0x50FB68 +static class st_STRAN_DATA g_xstdata; // size: 0x1144, address: 0x5B97A0 +static class st_PACKER_READ_FUNCS * g_pkrf; // size: 0x4, address: 0x50FB6C +static class st_PACKER_ASSETTYPE * g_typeHandlers; // size: 0x4, address: 0x50FB70 +class st_STRAN_SCENE { + // total size: 0x114 +public: + unsigned int scnid; // offset 0x0, size 0x4 + signed int lockid; // offset 0x4, size 0x4 + class st_PACKER_READ_DATA * spkg; // offset 0x8, size 0x4 + signed int isHOP; // offset 0xC, size 0x4 + void * userdata; // offset 0x10, size 0x4 + char fnam[256]; // offset 0x14, size 0x100 +}; +class st_PACKER_READ_DATA { + // total size: 0x0 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class st_STRAN_DATA { + // total size: 0x1144 +public: + class st_STRAN_SCENE hipscn[16]; // offset 0x0, size 0x1140 + unsigned int loadlock; // offset 0x1140, size 0x4 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +class st_PACKER_READ_FUNCS { + // total size: 0x44 +public: + unsigned int api_ver; // offset 0x0, size 0x4 + class st_PACKER_READ_DATA * (* Init)(void *, char *, unsigned int, signed int *, class st_PACKER_ASSETTYPE *); // offset 0x4, size 0x4 + void (* Done)(class st_PACKER_READ_DATA *); // offset 0x8, size 0x4 + signed int (* LoadLayer)(class st_PACKER_READ_DATA *, enum en_LAYER_TYPE); // offset 0xC, size 0x4 + unsigned int (* GetAssetSize)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x10, size 0x4 + void * (* LoadAsset)(class st_PACKER_READ_DATA *, unsigned int, char *, void *); // offset 0x14, size 0x4 + void * (* AssetByType)(class st_PACKER_READ_DATA *, unsigned int, signed int, unsigned int *); // offset 0x18, size 0x4 + signed int (* AssetCount)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x1C, size 0x4 + signed int (* IsAssetReady)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x20, size 0x4 + signed int (* SetActive)(class st_PACKER_READ_DATA *, enum en_LAYER_TYPE); // offset 0x24, size 0x4 + char * (* AssetName)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x28, size 0x4 + unsigned int (* GetBaseSector)(class st_PACKER_READ_DATA *); // offset 0x2C, size 0x4 + signed int (* GetAssetInfo)(class st_PACKER_READ_DATA *, unsigned int, class st_PKR_ASSET_TOCINFO *); // offset 0x30, size 0x4 + signed int (* GetAssetInfoByType)(class st_PACKER_READ_DATA *, unsigned int, signed int, class st_PKR_ASSET_TOCINFO *); // offset 0x34, size 0x4 + signed int (* PkgHasAsset)(class st_PACKER_READ_DATA *, unsigned int); // offset 0x38, size 0x4 + unsigned int (* PkgTimeStamp)(class st_PACKER_READ_DATA *); // offset 0x3C, size 0x4 + void (* PkgDisconnect)(class st_PACKER_READ_DATA *); // offset 0x40, size 0x4 +}; +enum en_LAYER_TYPE { + PKR_LTYPE_ALL = -1, + PKR_LTYPE_DEFAULT = 0, + PKR_LTYPE_TEXTURE = 1, + PKR_LTYPE_BSP = 2, + PKR_LTYPE_MODEL = 3, + PKR_LTYPE_ANIMATION = 4, + PKR_LTYPE_VRAM = 5, + PKR_LTYPE_SRAM = 6, + PKR_LTYPE_SNDTOC = 7, + PKR_LTYPE_CUTSCENE = 8, + PKR_LTYPE_CUTSCENETOC = 9, + PKR_LTYPE_JSPINFO = 10, + PKR_LTYPE_NOMORE = 11, +}; + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C750 -> 0x0020C7D8 +*/ +// Range: 0x20C750 -> 0x20C7D8 +static class st_STRAN_SCENE * XST_find_bySID(unsigned int sid /* r2 */, signed int findTheHOP /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20C750 -> 0x20C7D8 + class st_STRAN_SCENE * da_sdata; // r2 + signed int i; // r9 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C7E0 -> 0x0020C898 +*/ +// Range: 0x20C7E0 -> 0x20C898 +static class st_STRAN_SCENE * XST_lock_next() { + // Blocks + /* anonymous block */ { + // Range: 0x20C7E0 -> 0x20C898 + class st_STRAN_SCENE * sdata; // r17 + signed int i; // r16 + signed int uselock; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C8A0 -> 0x0020C9E8 +*/ +// Range: 0x20C8A0 -> 0x20C9E8 +char * xST_xAssetID_HIPFullPath(unsigned int aid /* r21 */, unsigned int * sceneID /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20C8A0 -> 0x20C9E8 + char * da_hipname; // r19 + signed int rc; // r2 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020C9F0 -> 0x0020C9F8 +*/ +// Range: 0x20C9F0 -> 0x20C9F8 +char * xST_xAssetID_HIPFullPath(unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20C9F0 -> 0x20C9F8 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020CA00 -> 0x0020CC04 +*/ +// Range: 0x20CA00 -> 0x20CC04 +signed int xSTGetAssetInfoByType(unsigned int type /* r20 */, signed int idx /* r19 */, class st_PKR_ASSET_TOCINFO * ainfo /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20CA00 -> 0x20CC04 + signed int found; // r23 + class st_PKR_ASSET_TOCINFO tocinfo; // r29+0xA0 + signed int rc; // r2 + signed int i; // r18 + signed int sum; // r17 + signed int cnt; // r22 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020CC10 -> 0x0020CDA8 +*/ +// Range: 0x20CC10 -> 0x20CDA8 +signed int xSTGetAssetInfo(unsigned int aid /* r17 */, class st_PKR_ASSET_TOCINFO * tocainfo /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20CC10 -> 0x20CDA8 + signed int found; // r21 + class st_PKR_ASSET_TOCINFO tocinfo; // r29+0x70 + signed int rc; // r2 + signed int scncnt; // r20 + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020CDB0 -> 0x0020CF38 +*/ +// Range: 0x20CDB0 -> 0x20CF38 +void * xSTFindAssetByType(unsigned int type /* r17 */, signed int idx /* r16 */, unsigned int * size /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20CDB0 -> 0x20CF38 + void * memptr; // r22 + signed int scncnt; // r21 + signed int i; // r20 + signed int sum; // r19 + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020CF40 -> 0x0020D060 +*/ +// Range: 0x20CF40 -> 0x20D060 +signed int xSTAssetCountByType(unsigned int type /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20CF40 -> 0x20D060 + signed int sum; // r18 + signed int cnt; // r2 + signed int scncnt; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D060 -> 0x0020D21C +*/ +// Range: 0x20D060 -> 0x20D21C +void * xSTFindAsset(unsigned int aid /* r21 */, unsigned int * size /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D060 -> 0x20D21C + void * memloc; // r19 + signed int ready; // r2 + signed int scncnt; // r18 + signed int i; // r17 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D220 -> 0x0020D34C +*/ +// Range: 0x20D220 -> 0x20D34C +char * xSTAssetName(void * raw_HIP_asset /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D220 -> 0x20D34C + char * aname; // r2 + unsigned int aid; // r2 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D350 -> 0x0020D470 +*/ +// Range: 0x20D350 -> 0x20D470 +char * xSTAssetName(unsigned int aid /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D350 -> 0x20D470 + char * aname; // r2 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D470 -> 0x0020D538 +*/ +// Range: 0x20D470 -> 0x20D538 +signed int xSTSwitchScene(unsigned int sid /* r19 */, void * userdata /* r18 */, signed int (* progmon)(void *, float) /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D470 -> 0x20D538 + class st_STRAN_SCENE * sdata; // r21 + signed int rc; // r20 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D540 -> 0x0020D584 +*/ +// Range: 0x20D540 -> 0x20D584 +void xSTDisconnect(unsigned int sid /* r2 */, signed int flg_hiphop /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D540 -> 0x20D584 + class st_STRAN_SCENE * sdata; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D590 -> 0x0020D5E0 +*/ +// Range: 0x20D590 -> 0x20D5E0 +float xSTLoadStep() { + // Blocks + /* anonymous block */ { + // Range: 0x20D590 -> 0x20D5E0 + float pct; // r20 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D5E0 -> 0x0020D808 +*/ +// Range: 0x20D5E0 -> 0x20D808 +void xSTUnLoadScene(unsigned int sid /* r2 */, signed int flg_hiphop /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D5E0 -> 0x20D808 + class st_STRAN_SCENE * sdata; // r16 + signed int cnt; // r18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D810 -> 0x0020D874 +*/ +// Range: 0x20D810 -> 0x20D874 +signed int xSTQueueSceneAssets(unsigned int sid /* r2 */, signed int flg_hiphop /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D810 -> 0x20D874 + signed int result; // r16 + class st_STRAN_SCENE * sdata; // r2 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020D880 -> 0x0020DC6C +*/ +// Range: 0x20D880 -> 0x20DC6C +signed int xSTPreLoadScene(unsigned int sid /* r20 */, void * userdata /* r21 */, signed int flg_hiphop /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20D880 -> 0x20DC6C + signed int result; // r2 + class st_STRAN_SCENE * sdata; // r16 + signed int cltver; // r19 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020DC70 -> 0x0020DD38 +*/ +// Range: 0x20DC70 -> 0x20DD38 +signed int xSTShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x20DC70 -> 0x20DD38 + } +} + +/* + Compile unit: C:\SB\Core\x\xstransvc.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020DD40 -> 0x0020DD98 +*/ +// Range: 0x20DD40 -> 0x20DD98 +signed int xSTStartup(class st_PACKER_ASSETTYPE * handlers /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20DD40 -> 0x20DD98 + } +} + diff --git a/dwarf/SB/Core/x/xutil.cpp b/dwarf/SB/Core/x/xutil.cpp new file mode 100644 index 000000000..86c138e40 --- /dev/null +++ b/dwarf/SB/Core/x/xutil.cpp @@ -0,0 +1,204 @@ +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static signed int g_xutilinit; // size: 0x4, address: 0x50FB98 +static signed int g_crc_needinit; // size: 0x4, address: 0x50E8C0 +static unsigned int g_crc32_table[256]; // size: 0x400, address: 0x5BAA80 +static unsigned short ascii_table[3][2]; // size: 0xC, address: 0x418DA0 +static unsigned short ascii_k_table[33]; // size: 0x42, address: 0x418DB0 +static unsigned short ascii_special_table[33]; // size: 0x42, address: 0x0 +char _ctype_[]; // size: 0x0, address: 0x4EBA38 +class DoubleChar { + // total size: 0x2 +public: + unsigned char byte1; // offset 0x0, size 0x1 + unsigned char byte2; // offset 0x1, size 0x1 +}; +class SJIS_STRUCT { + // total size: 0x2 +public: + union { // inferred + unsigned short sjisChar; // offset 0x0, size 0x2 + class DoubleChar doubleChar; // offset 0x0, size 0x2 + }; +}; + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FC00 -> 0x0020FD18 +*/ +// Range: 0x20FC00 -> 0x20FD18 +void xUtil_wtadjust(float * wts /* r2 */, signed int cnt /* r2 */, float arbref /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20FC00 -> 0x20FD18 + signed int i; // r7 + float sum; // r2 + float fac; // r1 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FD20 -> 0x0020FD98 +*/ +// Range: 0x20FD20 -> 0x20FD98 +signed int xUtil_yesno(float wt_yes /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20FD20 -> 0x20FD98 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FDA0 -> 0x0020FE00 +*/ +// Range: 0x20FDA0 -> 0x20FE00 +unsigned char itoBCD(unsigned short dec /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20FDA0 -> 0x20FE00 + signed int ones; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FE00 -> 0x0020FE60 +*/ +// Range: 0x20FE00 -> 0x20FE60 +unsigned char itoBCD(unsigned char dec /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20FE00 -> 0x20FE60 + signed int ones; // r5 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FE60 -> 0x0020FE94 +*/ +// Range: 0x20FE60 -> 0x20FE94 +unsigned char BCDtoi(unsigned char hex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20FE60 -> 0x20FE94 + char c[16]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0020FEA0 -> 0x002100C8 +*/ +// Range: 0x20FEA0 -> 0x2100C8 +void strtosjis(unsigned char * string /* r20 */, unsigned char * dest /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x20FEA0 -> 0x2100C8 + signed int i; // r5 + signed int sjis_code; // r4 + signed int ascii_code; // r18 + unsigned char stmp; // r17 + unsigned char stmp2; // r16 + unsigned char * dest2; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002100D0 -> 0x002102B4 +*/ +// Range: 0x2100D0 -> 0x2102B4 +unsigned int xUtil_crc_update(unsigned int crc_accum /* r18 */, char * data /* r17 */, signed int datasize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2100D0 -> 0x2102B4 + signed int i; // r13 + signed int j; // r4 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002102C0 -> 0x00210348 +*/ +// Range: 0x2102C0 -> 0x210348 +unsigned int xUtil_crc_init() { + // Blocks + /* anonymous block */ { + // Range: 0x2102C0 -> 0x210348 + signed int i; // r8 + signed int j; // r7 + unsigned int crc_accum; // r6 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210350 -> 0x00210660 +*/ +// Range: 0x210350 -> 0x210660 +char * xUtil_idtag2string(unsigned int srctag /* r2 */, signed int bufidx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x210350 -> 0x210660 + unsigned int tag; // r29+0xC + char * strptr; // r2 + char * uc; // r3 + signed int l; // r29+0x8 + char t; // r2 + char buf[6][10]; // @ 0x005BAE80 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210660 -> 0x00210674 +*/ +// Range: 0x210660 -> 0x210674 +signed int xUtilShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x210660 -> 0x210674 + } +} + +/* + Compile unit: C:\SB\Core\x\xutil.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00210680 -> 0x002106B0 +*/ +// Range: 0x210680 -> 0x2106B0 +signed int xUtilStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x210680 -> 0x2106B0 + } +} + diff --git a/dwarf/SB/Game/zActionLine.cpp b/dwarf/SB/Game/zActionLine.cpp new file mode 100644 index 000000000..e0316d061 --- /dev/null +++ b/dwarf/SB/Game/zActionLine.cpp @@ -0,0 +1,190 @@ +/* + Compile unit: C:\SB\Game\zActionLine.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class _tagActionLine * sActionLine[8]; // size: 0x20, address: 0x532730 +static class RwRaster * sActionLineRaster; // size: 0x4, address: 0x50F790 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class _tagActionLine { + // total size: 0x38 +public: + unsigned int flags; // offset 0x0, size 0x4 + class xVec3 pos[4]; // offset 0x4, size 0x30 + float time_left; // offset 0x34, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zActionLine.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A41D0 -> 0x001A4244 +*/ +// Range: 0x1A41D0 -> 0x1A4244 +void zActionLineRender() { + // Blocks + /* anonymous block */ { + // Range: 0x1A41D0 -> 0x1A4244 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zActionLine.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4250 -> 0x001A430C +*/ +// Range: 0x1A4250 -> 0x1A430C +static void RenderActionLine(class _tagActionLine * l /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A4250 -> 0x1A430C + class RxObjSpace3DVertex * vert; // r7 + signed int i; // r6 + class RwRGBA * _col; // r2 + class RxObjSpace3DVertex sStripVert[4]; // @ 0x00532750 + } +} + +/* + Compile unit: C:\SB\Game\zActionLine.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4310 -> 0x001A4380 +*/ +// Range: 0x1A4310 -> 0x1A4380 +void zActionLineUpdate(float seconds /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A4310 -> 0x1A4380 + signed int i; // r7 + class _tagActionLine * l; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zActionLine.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4380 -> 0x001A4404 +*/ +// Range: 0x1A4380 -> 0x1A4404 +void zActionLineInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1A4380 -> 0x1A4404 + class RwTexture * tex; // r2 + } +} + diff --git a/dwarf/SB/Game/zAnimList.cpp b/dwarf/SB/Game/zAnimList.cpp new file mode 100644 index 000000000..af95fc7db --- /dev/null +++ b/dwarf/SB/Game/zAnimList.cpp @@ -0,0 +1,288 @@ +/* + Compile unit: C:\SB\Game\zAnimList.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int nals; // size: 0x4, address: 0x50F200 +static unsigned int * aids; // size: 0x4, address: 0x50F204 +static class xAnimTable * * atbls; // size: 0x4, address: 0x50F208 +static signed int * anused; // size: 0x4, address: 0x50F20C +static char * astnames[20]; // size: 0x50, address: 0x405670 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +unsigned int AlwaysConditional(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x12A2F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zAnimListAsset { + // total size: 0x28 +public: + unsigned int ids[10]; // offset 0x0, size 0x28 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zAnimList.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00129E50 -> 0x00129EA8 +*/ +// Range: 0x129E50 -> 0x129EA8 +signed int zAnimListGetNumUsed(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x129E50 -> 0x129EA8 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zAnimList.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00129EB0 -> 0x00129F08 +*/ +// Range: 0x129EB0 -> 0x129F08 +class xAnimTable * zAnimListGetTable(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x129EB0 -> 0x129F08 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zAnimList.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00129F10 -> 0x00129F24 +*/ +// Range: 0x129F10 -> 0x129F24 +void zAnimListExit() { + // Blocks + /* anonymous block */ { + // Range: 0x129F10 -> 0x129F24 + } +} + +/* + Compile unit: C:\SB\Game\zAnimList.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00129F30 -> 0x0012A2EC +*/ +// Range: 0x129F30 -> 0x12A2EC +void zAnimListInit() { + // Blocks + /* anonymous block */ { + // Range: 0x129F30 -> 0x12A2EC + signed int i; // r23 + unsigned int size; // r29+0xDC + class zAnimListAsset * zala; // r16 + class st_PKR_ASSET_TOCINFO ainfo; // r29+0xC0 + class xAnimTable * atbl; // r20 + void * buf; // r22 + class xAnimFile * afile; // r18 + signed int idle_exists; // r2 + signed int j; // r19 + class xAnimFile * afile; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zAnimList.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A2F0 -> 0x0012A2F8 +*/ +// Range: 0x12A2F0 -> 0x12A2F8 +static unsigned int AlwaysConditional() { + // Blocks + /* anonymous block */ { + // Range: 0x12A2F0 -> 0x12A2F8 + } +} + diff --git a/dwarf/SB/Game/zAssetTypes.cpp b/dwarf/SB/Game/zAssetTypes.cpp new file mode 100644 index 000000000..52bb5d0c2 --- /dev/null +++ b/dwarf/SB/Game/zAssetTypes.cpp @@ -0,0 +1,2937 @@ +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class st_PACKER_ASSETTYPE assetTypeHandlers[78]; // size: 0xC30, address: 0x4056C0 +static class HackModelRadius hackRadiusTable[3]; // size: 0x18, address: 0x4062F0 +static class xJSPHeader * sTempJSP; // size: 0x4, address: 0x50F210 +static class xJSPHeader sDummyEmptyJSP; // size: 0x18, address: 0x517980 +static char * jsp_shadow_hack_textures[5]; // size: 0x14, address: 0x406310 +static char * * jsp_shadow_hack_end_textures; // size: 0x4, address: 0x50E580 +class AnimTableList animTable[33]; // size: 0x18C, address: 0x406340 +static class xAnimTable * (* tableFuncList[48])(); // size: 0xC0, address: 0x4064D0 +static unsigned int s_sbFootSoundA; // size: 0x4, address: 0x50F214 +static unsigned int s_sbFootSoundB; // size: 0x4, address: 0x50F218 +static unsigned int s_scFootSoundA; // size: 0x4, address: 0x50F21C +static unsigned int s_scFootSoundB; // size: 0x4, address: 0x50F220 +static unsigned int s_patFootSoundA; // size: 0x4, address: 0x50F224 +static unsigned int s_patFootSoundB; // size: 0x4, address: 0x50F228 +static unsigned int (* effectFuncList[2])(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x8, address: 0x50E588 +unsigned int gxAnimUseGrowAlloc; // size: 0x4, address: 0x50FB9C +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +void * FindAssetCB(unsigned int, char *); // size: 0x0, address: 0x12A8C0 +class RwTexture * TexCB(class RwTexture *, void *); // size: 0x0, address: 0x12AD70 +class RpAtomic * jsp_shadow_hack_atomic_cb(class RpAtomic *, void *); // size: 0x0, address: 0x12AE80 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwStreamCustom { + // total size: 0x14 +public: + signed int (* sfnclose)(void *); // offset 0x0, size 0x4 + unsigned int (* sfnread)(void *, void *, unsigned int); // offset 0x4, size 0x4 + signed int (* sfnwrite)(void *, void *, unsigned int); // offset 0x8, size 0x4 + signed int (* sfnskip)(void *, unsigned int); // offset 0xC, size 0x4 + void * data; // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class jsp_shadow_hack_atomic_context { + // total size: 0xC +public: + class xJSPHeader * jsp; // offset 0x0, size 0x4 + signed int index; // offset 0x4, size 0x4 + signed int last_material; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xFFX { + // total size: 0x0 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class rxReq { + // total size: 0x0 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zAssetPickupTable { + // total size: 0x8 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Count; // offset 0x4, size 0x4 +}; +class RwStreamUnion { + // total size: 0x14 +public: + union { // inferred + class RwStreamMemory memory; // offset 0x0, size 0xC + class RwStreamFile file; // offset 0x0, size 0x4 + class RwStreamCustom custom; // offset 0x0, size 0x14 + }; +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwStream { + // total size: 0x24 +public: + enum RwStreamType type; // offset 0x0, size 0x4 + enum RwStreamAccessType accessType; // offset 0x4, size 0x4 + signed int position; // offset 0x8, size 0x4 + class RwStreamUnion Type; // offset 0xC, size 0x14 + signed int rwOwned; // offset 0x20, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xCurveAsset { + // total size: 0x14 +public: + enum xCurveType type; // offset 0x0, size 0x4 + enum xCurveClamp clamp; // offset 0x4, size 0x4 + float delta; // offset 0x8, size 0x4 + signed int numPoints; // offset 0xC, size 0x4 + float * points; // offset 0x10, size 0x4 +}; +class xAnimAssetEffect { + // total size: 0x18 +public: + unsigned int StateID; // offset 0x0, size 0x4 + float StartTime; // offset 0x4, size 0x4 + float EndTime; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int EffectType; // offset 0x10, size 0x4 + unsigned int UserDataSize; // offset 0x14, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimAssetFile { + // total size: 0x20 +public: + unsigned int FileFlags; // offset 0x0, size 0x4 + float Duration; // offset 0x4, size 0x4 + float TimeOffset; // offset 0x8, size 0x4 + unsigned short NumAnims[2]; // offset 0xC, size 0x4 + void * * RawData; // offset 0x10, size 0x4 + signed int Physics; // offset 0x14, size 0x4 + signed int StartPose; // offset 0x18, size 0x4 + signed int EndPose; // offset 0x1C, size 0x4 +}; +class zAnimFxSound { + // total size: 0x18 +public: + unsigned int ID; // offset 0x0, size 0x4 + float vol; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 + unsigned int priority; // offset 0xC, size 0x4 + unsigned int flags; // offset 0x10, size 0x4 + float radius; // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum RwStreamType { + rwNASTREAM = 0, + rwSTREAMFILE = 1, + rwSTREAMFILENAME = 2, + rwSTREAMMEMORY = 3, + rwSTREAMCUSTOM = 4, + rwSTREAMTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwChunkHeaderInfo { + // total size: 0x14 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 + unsigned int version; // offset 0x8, size 0x4 + unsigned int buildNum; // offset 0xC, size 0x4 + signed int isComplex; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimAssetTable { + // total size: 0x14 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int NumRaw; // offset 0x4, size 0x4 + unsigned int NumFiles; // offset 0x8, size 0x4 + unsigned int NumStates; // offset 0xC, size 0x4 + unsigned int ConstructFunc; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +enum RwStreamAccessType { + rwNASTREAMACCESS = 0, + rwSTREAMREAD = 1, + rwSTREAMWRITE = 2, + rwSTREAMAPPEND = 3, + rwSTREAMACCESSTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimAssetState { + // total size: 0x1C +public: + unsigned int StateID; // offset 0x0, size 0x4 + unsigned int FileIndex; // offset 0x4, size 0x4 + unsigned int EffectCount; // offset 0x8, size 0x4 + unsigned int EffectOffset; // offset 0xC, size 0x4 + float Speed; // offset 0x10, size 0x4 + unsigned int SubStateID; // offset 0x14, size 0x4 + unsigned int SubStateCount; // offset 0x18, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class AnimTableList { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + class xAnimTable * (* constructor)(); // offset 0x4, size 0x4 + unsigned int id; // offset 0x8, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class HackModelRadius { + // total size: 0x8 +public: + unsigned int assetid; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwError { + // total size: 0x8 +public: + signed int pluginID; // offset 0x0, size 0x4 + signed int errorCode; // offset 0x4, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwMemory { + // total size: 0x8 +public: + unsigned char * start; // offset 0x0, size 0x4 + unsigned int length; // offset 0x4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwStreamMemory { + // total size: 0xC +public: + unsigned int position; // offset 0x0, size 0x4 + unsigned int nSize; // offset 0x4, size 0x4 + unsigned char * memBlock; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum xCurveType { + xCVT_BAKED = 0, +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum xCurveClamp { + xCC_CONSTANT = 0, + xCC_CYCLE = 1, + xCC_OSCILLATE = 2, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwStreamFile { + // total size: 0x4 +public: + union { // inferred + void * fpFile; // offset 0x0, size 0x4 + void * constfpFile; // offset 0x0, size 0x4 + }; +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A300 -> 0x0012A308 +*/ +// Range: 0x12A300 -> 0x12A308 +static void MovePoint_Unload(void * userdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12A300 -> 0x12A308 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A310 -> 0x0012A318 +*/ +// Range: 0x12A310 -> 0x12A318 +static void LightKit_Unload(void * userdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12A310 -> 0x12A318 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A320 -> 0x0012A328 +*/ +// Range: 0x12A320 -> 0x12A328 +static void Anim_Unload() { + // Blocks + /* anonymous block */ { + // Range: 0x12A320 -> 0x12A328 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A330 -> 0x0012A8B8 +*/ +// Range: 0x12A330 -> 0x12A8B8 +static void * ATBL_Read(void * indata /* r2 */, unsigned int * outsize /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12A330 -> 0x12A8B8 + unsigned int i; // r20 + unsigned int j; // r7 + unsigned int debugNum; // r29+0xC0 + unsigned int tmpsize; // r29+0xFC + class xAnimTable * table; // r18 + class xAnimState * astate; // r20 + class xAnimTransition * atran; // r2 + unsigned char * zaBytes; // r23 + class xAnimAssetTable * zaTbl; // r17 + void * * zaRaw; // r18 + class xAnimAssetFile * zaFile; // r21 + class xAnimAssetState * zaState; // r16 + signed int k; // r4 + class xAnimFile * * fList; // r2 + class xAnimTable * (* constructor)(); // r6 + signed int i; // r5 + char tmpstr[32]; // r29+0xD0 + class xAnimFile * foundFile; // r5 + class xAnimState * state; // r22 + class xAnimAssetEffect * zaEffect; // r21 + class xAnimEffect * effect; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A8C0 -> 0x0012A8DC +*/ +// Range: 0x12A8C0 -> 0x12A8DC +static void * FindAssetCB(unsigned int ID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12A8C0 -> 0x12A8DC + unsigned int size; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012A8E0 -> 0x0012AB50 +*/ +// Range: 0x12A8E0 -> 0x12AB50 +static unsigned int soundEffectCB(unsigned int cbenum /* r19 */, class xAnimActiveEffect * acteffect /* r18 */, void * object /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12A8E0 -> 0x12AB50 + unsigned int sndhandle; // r16 + unsigned int vil_SID; // r29+0x5C + signed int vil_result; // r2 + class xEnt * ent_tmp; // r2 + class zAnimFxSound * snd; // r16 + unsigned int id; // r5 + unsigned int newId; // r2 + float volFactor; // r3 + unsigned int footSelector; // @ 0x0050F22C + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012AB50 -> 0x0012AB58 +*/ +// Range: 0x12AB50 -> 0x12AB58 +static unsigned int dummyEffectCB() { + // Blocks + /* anonymous block */ { + // Range: 0x12AB50 -> 0x12AB58 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012AB60 -> 0x0012ABD4 +*/ +// Range: 0x12AB60 -> 0x12ABD4 +void FootstepHackSceneEnter() { + // Blocks + /* anonymous block */ { + // Range: 0x12AB60 -> 0x12ABD4 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012ABE0 -> 0x0012AC04 +*/ +// Range: 0x12ABE0 -> 0x12AC04 +static void TextureRW3_Unload(void * userdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12ABE0 -> 0x12AC04 + class RwTexture * tex; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012AC10 -> 0x0012AD64 +*/ +// Range: 0x12AC10 -> 0x12AD64 +static void * RWTX_Read(void * indata /* r2 */, unsigned int insize /* r19 */, unsigned int * outsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12AC10 -> 0x12AD64 + class RwTexDictionary * txd; // r18 + class RwMemory rwmem; // r29+0x60 + class RwStream * stream; // r17 + class RwTexture * tex; // r29+0x6C + class RwError error; // r29+0x58 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012AD70 -> 0x0012AD88 +*/ +// Range: 0x12AD70 -> 0x12AD88 +static class RwTexture * TexCB(class RwTexture * texture /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12AD70 -> 0x12AD88 + class RwTexture * * texFound; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012AD90 -> 0x0012ADBC +*/ +// Range: 0x12AD90 -> 0x12ADBC +static void JSP_Unload(void * userdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12AD90 -> 0x12ADBC + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012ADC0 -> 0x0012AE80 +*/ +// Range: 0x12ADC0 -> 0x12AE80 +static void * JSP_Read(void * indata /* r2 */, unsigned int insize /* r2 */, unsigned int * outsize /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12ADC0 -> 0x12AE80 + class xJSPHeader * retjsp; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012AE80 -> 0x0012B018 +*/ +// Range: 0x12AE80 -> 0x12B018 +static class RpAtomic * jsp_shadow_hack_atomic_cb(class RpAtomic * atomic /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12AE80 -> 0x12B018 + class jsp_shadow_hack_atomic_context & context; // r22 + signed int index; // r29+0xA0 + class xClumpCollBSPTree * colltree; // r6 + signed int material_index; // r5 + class xClumpCollBSPTriangle * tri; // r4 + class xClumpCollBSPTriangle * end_tri; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B020 -> 0x0012B030 +*/ +// Range: 0x12B020 -> 0x12B030 +static void BSP_Unload() { + // Blocks + /* anonymous block */ { + // Range: 0x12B020 -> 0x12B030 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B030 -> 0x0012B118 +*/ +// Range: 0x12B030 -> 0x12B118 +static void * BSP_Read(void * indata /* r2 */, unsigned int insize /* r2 */, unsigned int * outsize /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B030 -> 0x12B118 + class RwStream * stream; // r17 + class RwMemory rwmem; // r29+0x58 + class RwChunkHeaderInfo chunkHeaderInfo; // r29+0x40 + class RpWorld * bsp; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B120 -> 0x0012B144 +*/ +// Range: 0x12B120 -> 0x12B144 +static void Model_Unload(void * userdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B120 -> 0x12B144 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B150 -> 0x0012B1B8 +*/ +// Range: 0x12B150 -> 0x12B1B8 +static void * Curve_Read(void * indata /* r18 */, unsigned int insize /* r17 */, unsigned int * outsize /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B150 -> 0x12B1B8 + class xCurveAsset * curve_asset; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B1C0 -> 0x0012B294 +*/ +// Range: 0x12B1C0 -> 0x12B294 +static void * Model_Read(unsigned int assetid /* r17 */, void * indata /* r2 */, unsigned int insize /* r2 */, unsigned int * outsize /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B1C0 -> 0x12B294 + class RpAtomic * model; // r16 + unsigned int i; // r5 + class RpAtomic * tmpModel; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B2A0 -> 0x0012B2A8 +*/ +// Range: 0x12B2A0 -> 0x12B2A8 +void zAssetShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x12B2A0 -> 0x12B2A8 + } +} + +/* + Compile unit: C:\SB\Game\zAssetTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B2B0 -> 0x0012B308 +*/ +// Range: 0x12B2B0 -> 0x12B308 +void zAssetStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x12B2B0 -> 0x12B308 + } +} + diff --git a/dwarf/SB/Game/zBusStop.cpp b/dwarf/SB/Game/zBusStop.cpp new file mode 100644 index 000000000..a4f1c8cfc --- /dev/null +++ b/dwarf/SB/Game/zBusStop.cpp @@ -0,0 +1,2427 @@ +/* + Compile unit: C:\SB\Game\zBusStop.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +unsigned int gBusStopIsRunning; // size: 0x4, address: 0x510080 +static class zUIFont * sBusStopUI; // size: 0x4, address: 0x510084 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zBusStopEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x319F90 +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zBusStop : public xBase { + // total size: 0x30 +public: + class busstop_asset * basset; // offset 0x10, size 0x4 + class zEnt * bus; // offset 0x14, size 0x4 + class xVec3 pos; // offset 0x18, size 0xC + unsigned int currState; // offset 0x24, size 0x4 + unsigned int prevState; // offset 0x28, size 0x4 + float switchTimer; // offset 0x2C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zUIFontAsset : public zUIAsset { + // total size: 0xA4 +public: + unsigned short uiFontFlags; // offset 0x80, size 0x2 + unsigned char mode; // offset 0x82, size 0x1 + unsigned char fontID; // offset 0x83, size 0x1 + unsigned int textAssetID; // offset 0x84, size 0x4 + unsigned char bcolor[4]; // offset 0x88, size 0x4 + unsigned char color[4]; // offset 0x8C, size 0x4 + unsigned short inset[4]; // offset 0x90, size 0x8 + unsigned short space[2]; // offset 0x98, size 0x4 + unsigned short cdim[2]; // offset 0x9C, size 0x4 + unsigned int max_height; // offset 0xA0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class busstop_asset : public xDynAsset { + // total size: 0x24 +public: + unsigned int marker; // offset 0x10, size 0x4 + unsigned int character; // offset 0x14, size 0x4 + unsigned int cameraID; // offset 0x18, size 0x4 + unsigned int busID; // offset 0x1C, size 0x4 + float delay; // offset 0x20, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zUIFont : public _zUI { + // total size: 0xFC +public: + class zUIFontAsset * fasset; // offset 0xE4, size 0x4 + unsigned short uiFontFlags; // offset 0xE8, size 0x2 + unsigned short uiFontHackFlags; // offset 0xEA, size 0x2 + unsigned int text_id; // offset 0xEC, size 0x4 + float yscroll; // offset 0xF0, size 0x4 + unsigned int text_index; // offset 0xF4, size 0x4 + char * text; // offset 0xF8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xFFX { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zBusStop.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319F90 -> 0x00319F98 +*/ +// Range: 0x319F90 -> 0x319F98 +signed int zBusStopEventCB() { + // Blocks + /* anonymous block */ { + // Range: 0x319F90 -> 0x319F98 + } +} + +/* + Compile unit: C:\SB\Game\zBusStop.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319FA0 -> 0x0031A38C +*/ +// Range: 0x319FA0 -> 0x31A38C +void zBusStop_Update(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319FA0 -> 0x31A38C + class zBusStop * bstop; // r16 + class zEnt * player; // r5 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + class xAnimSingle * single; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zBusStop.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A390 -> 0x0031A3EC +*/ +// Range: 0x31A390 -> 0x31A3EC +void zBusStop_Setup(class zBusStop * bstop /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A390 -> 0x31A3EC + class xBase * simpPtr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zBusStop.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A3F0 -> 0x0031A494 +*/ +// Range: 0x31A3F0 -> 0x31A494 +void zBusStop_Init(class zBusStop * bstop /* r16 */, class busstop_asset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A3F0 -> 0x31A494 + unsigned int size; // r29+0x3C + class xMarkerAsset * marker; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zBusStop.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A4A0 -> 0x0031A4A8 +*/ +// Range: 0x31A4A0 -> 0x31A4A8 +void zBusStop_Init(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A4A0 -> 0x31A4A8 + } +} + diff --git a/dwarf/SB/Game/zCamMarker.cpp b/dwarf/SB/Game/zCamMarker.cpp new file mode 100644 index 000000000..7b1198f5f --- /dev/null +++ b/dwarf/SB/Game/zCamMarker.cpp @@ -0,0 +1,182 @@ +/* + Compile unit: C:\SB\Game\zCamMarker.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int zCamMarkerEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x310910 +class xCamAsset : public xBaseAsset { + // total size: 0x88 +public: + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xVec3 up; // offset 0x20, size 0xC + class xVec3 right; // offset 0x2C, size 0xC + class xVec3 view_offset; // offset 0x38, size 0xC + signed short offset_start_frames; // offset 0x44, size 0x2 + signed short offset_end_frames; // offset 0x46, size 0x2 + float fov; // offset 0x48, size 0x4 + float trans_time; // offset 0x4C, size 0x4 + enum _tagTransType trans_type; // offset 0x50, size 0x4 + unsigned int flags; // offset 0x54, size 0x4 + float fade_up; // offset 0x58, size 0x4 + float fade_down; // offset 0x5C, size 0x4 + union { // inferred + class _tagxCamFollowAsset cam_follow; // offset 0x60, size 0x18 + class _tagxCamShoulderAsset cam_shoulder; // offset 0x60, size 0x10 + class _tagp2CamStaticAsset cam_static; // offset 0x60, size 0x4 + class _tagxCamPathAsset cam_path; // offset 0x60, size 0xC + class _tagp2CamStaticFollowAsset cam_staticFollow; // offset 0x60, size 0x4 + }; + unsigned int valid_flags; // offset 0x78, size 0x4 + unsigned int markerid[2]; // offset 0x7C, size 0x8 + unsigned char cam_type; // offset 0x84, size 0x1 + unsigned char pad[3]; // offset 0x85, size 0x3 +}; +class zCamMarker : public xBase { + // total size: 0x14 +public: + class xCamAsset * asset; // offset 0x10, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class _tagxCamFollowAsset { + // total size: 0x18 +public: + float rotation; // offset 0x0, size 0x4 + float distance; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float rubber_band; // offset 0xC, size 0x4 + float start_speed; // offset 0x10, size 0x4 + float end_speed; // offset 0x14, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class _tagxCamShoulderAsset { + // total size: 0x10 +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float realign_speed; // offset 0x8, size 0x4 + float realign_delay; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagp2CamStaticAsset { + // total size: 0x4 +public: + unsigned int unused; // offset 0x0, size 0x4 +}; +class _tagp2CamStaticFollowAsset { + // total size: 0x4 +public: + float rubber_band; // offset 0x0, size 0x4 +}; +enum _tagTransType { + eTransType_None = 0, + eTransType_Interp1 = 1, + eTransType_Interp2 = 2, + eTransType_Interp3 = 3, + eTransType_Interp4 = 4, + eTransType_Linear = 5, + eTransType_Interp1Rev = 6, + eTransType_Interp2Rev = 7, + eTransType_Interp3Rev = 8, + eTransType_Interp4Rev = 9, + eTransType_Total = 10, +}; +class _tagxCamPathAsset { + // total size: 0xC +public: + unsigned int assetID; // offset 0x0, size 0x4 + float time_end; // offset 0x4, size 0x4 + float time_delay; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zCamMarker.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310910 -> 0x00310988 +*/ +// Range: 0x310910 -> 0x310988 +signed int zCamMarkerEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310910 -> 0x310988 + } +} + +/* + Compile unit: C:\SB\Game\zCamMarker.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310990 -> 0x00310998 +*/ +// Range: 0x310990 -> 0x310998 +void zCamMarkerLoad(class zCamMarker * m /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310990 -> 0x310998 + } +} + +/* + Compile unit: C:\SB\Game\zCamMarker.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003109A0 -> 0x003109A8 +*/ +// Range: 0x3109A0 -> 0x3109A8 +void zCamMarkerSave(class zCamMarker * m /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3109A0 -> 0x3109A8 + } +} + +/* + Compile unit: C:\SB\Game\zCamMarker.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003109B0 -> 0x00310A04 +*/ +// Range: 0x3109B0 -> 0x310A04 +void zCamMarkerInit(class xBase * b /* r17 */, class xCamAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3109B0 -> 0x310A04 + } +} + diff --git a/dwarf/SB/Game/zCamera.cpp b/dwarf/SB/Game/zCamera.cpp new file mode 100644 index 000000000..381847e20 --- /dev/null +++ b/dwarf/SB/Game/zCamera.cpp @@ -0,0 +1,3116 @@ +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +float zcam_pad_pyaw_scale; // size: 0x4, address: 0x50E590 +float zcam_pad_pitch_scale; // size: 0x4, address: 0x50E594 +float zcam_near_d; // size: 0x4, address: 0x50E598 +float zcam_near_h; // size: 0x4, address: 0x50E59C +float zcam_near_pitch; // size: 0x4, address: 0x50E5A0 +float zcam_far_d; // size: 0x4, address: 0x50E5A4 +float zcam_far_h; // size: 0x4, address: 0x50E5A8 +float zcam_far_pitch; // size: 0x4, address: 0x50E5AC +float zcam_wall_d; // size: 0x4, address: 0x50E5B0 +float zcam_wall_h; // size: 0x4, address: 0x50E5B4 +float zcam_wall_pitch; // size: 0x4, address: 0x50E5B8 +float zcam_above_d; // size: 0x4, address: 0x50E5BC +float zcam_above_h; // size: 0x4, address: 0x50E5C0 +float zcam_above_pitch; // size: 0x4, address: 0x50E5C4 +float zcam_below_d; // size: 0x4, address: 0x50E5C8 +float zcam_below_h; // size: 0x4, address: 0x50E5CC +float zcam_below_pitch; // size: 0x4, address: 0x50E5D0 +float zcam_highbounce_d; // size: 0x4, address: 0x50E5D4 +float zcam_highbounce_h; // size: 0x4, address: 0x50E5D8 +float zcam_highbounce_pitch; // size: 0x4, address: 0x50E5DC +float zcam_overrot_min; // size: 0x4, address: 0x50E5E0 +float zcam_overrot_mid; // size: 0x4, address: 0x50E5E4 +float zcam_overrot_max; // size: 0x4, address: 0x50E5E8 +float zcam_overrot_rate; // size: 0x4, address: 0x50E5EC +float zcam_overrot_tstart; // size: 0x4, address: 0x50E5F0 +float zcam_overrot_tend; // size: 0x4, address: 0x50E5F4 +float zcam_overrot_velmin; // size: 0x4, address: 0x50E5F8 +float zcam_overrot_velmax; // size: 0x4, address: 0x50E5FC +float zcam_overrot_tmanual; // size: 0x4, address: 0x50E600 +float zcam_overrot_tmr; // size: 0x4, address: 0x50F230 +class xCamera zcam_backupcam; // size: 0x330, address: 0x5179A0 +class xCamera zcam_backupconvers; // size: 0x330, address: 0x517CD0 +signed int zcam_near; // size: 0x4, address: 0x50F234 +signed int zcam_mode; // size: 0x4, address: 0x50F238 +signed int zcam_bbounce; // size: 0x4, address: 0x50F23C +signed int zcam_lbbounce; // size: 0x4, address: 0x50F240 +signed int zcam_convers; // size: 0x4, address: 0x50F244 +signed int zcam_lconvers; // size: 0x4, address: 0x50F248 +signed int zcam_longbounce; // size: 0x4, address: 0x50F24C +signed int zcam_highbounce; // size: 0x4, address: 0x50F250 +signed int zcam_cutscene; // size: 0x4, address: 0x50F254 +signed int zcam_reward; // size: 0x4, address: 0x50F258 +class xVec3 * zcam_playervel; // size: 0x4, address: 0x50F25C +float zcam_mintgtheight; // size: 0x4, address: 0x50E604 +signed int zcam_fly; // size: 0x4, address: 0x50F260 +signed int zcam_flypaused; // size: 0x4, address: 0x50F264 +void * zcam_flydata; // size: 0x4, address: 0x50F268 +unsigned int zcam_flysize; // size: 0x4, address: 0x50F26C +float zcam_flytime; // size: 0x4, address: 0x50F270 +unsigned int zcam_flyasset_current; // size: 0x4, address: 0x50F274 +class xCamAsset * zcam_dest; // size: 0x4, address: 0x50F278 +class xQuat zcam_quat; // size: 0x10, address: 0x518000 +float zcam_tmr; // size: 0x4, address: 0x50F27C +float zcam_ttm; // size: 0x4, address: 0x50F280 +float zcam_fovcurr; // size: 0x4, address: 0x50F284 +float zcam_fovdest; // size: 0x4, address: 0x50F288 +static unsigned int stop_track; // size: 0x4, address: 0x50F28C +static unsigned char input_enabled; // size: 0x1, address: 0x50E608 +static unsigned char lassocam_enabled; // size: 0x1, address: 0x50F290 +static float lassocam_factor; // size: 0x4, address: 0x50F294 +static enum WallJumpViewState wall_jump_enabled; // size: 0x4, address: 0x50F298 +static class xVec3 wall_jump_view; // size: 0xC, address: 0x518010 +static float dMultiplier; // size: 0x4, address: 0x50F29C +static float dOffset; // size: 0x4, address: 0x50F2A0 +static float hMultiplier; // size: 0x4, address: 0x50F2A4 +static float hOffset; // size: 0x4, address: 0x50F2A8 +static float rewardMove; // size: 0x4, address: 0x50E60C +static float rewardMoveSpeed; // size: 0x4, address: 0x50E610 +static float rewardZoomSpeed; // size: 0x4, address: 0x50E614 +static float rewardZoomAmount; // size: 0x4, address: 0x50E618 +static float rewardTiltTime; // size: 0x4, address: 0x50E61C +static float rewardTiltAmount; // size: 0x4, address: 0x50E620 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +float gSkipTimeFlythrough; // size: 0x4, address: 0x50E79C +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class _tagp2CamStaticFollowAsset { + // total size: 0x4 +public: + float rubber_band; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum _tagTransType { + eTransType_None = 0, + eTransType_Interp1 = 1, + eTransType_Interp2 = 2, + eTransType_Interp3 = 3, + eTransType_Interp4 = 4, + eTransType_Linear = 5, + eTransType_Interp1Rev = 6, + eTransType_Interp2Rev = 7, + eTransType_Interp3Rev = 8, + eTransType_Interp4Rev = 9, + eTransType_Total = 10, +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xCamAsset : public xBaseAsset { + // total size: 0x88 +public: + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xVec3 up; // offset 0x20, size 0xC + class xVec3 right; // offset 0x2C, size 0xC + class xVec3 view_offset; // offset 0x38, size 0xC + signed short offset_start_frames; // offset 0x44, size 0x2 + signed short offset_end_frames; // offset 0x46, size 0x2 + float fov; // offset 0x48, size 0x4 + float trans_time; // offset 0x4C, size 0x4 + enum _tagTransType trans_type; // offset 0x50, size 0x4 + unsigned int flags; // offset 0x54, size 0x4 + float fade_up; // offset 0x58, size 0x4 + float fade_down; // offset 0x5C, size 0x4 + union { // inferred + class _tagxCamFollowAsset cam_follow; // offset 0x60, size 0x18 + class _tagxCamShoulderAsset cam_shoulder; // offset 0x60, size 0x10 + class _tagp2CamStaticAsset cam_static; // offset 0x60, size 0x4 + class _tagxCamPathAsset cam_path; // offset 0x60, size 0xC + class _tagp2CamStaticFollowAsset cam_staticFollow; // offset 0x60, size 0x4 + }; + unsigned int valid_flags; // offset 0x78, size 0x4 + unsigned int markerid[2]; // offset 0x7C, size 0x8 + unsigned char cam_type; // offset 0x84, size 0x1 + unsigned char pad[3]; // offset 0x85, size 0x3 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class _tagxCamPathAsset { + // total size: 0xC +public: + unsigned int assetID; // offset 0x0, size 0x4 + float time_end; // offset 0x4, size 0x4 + float time_delay; // offset 0x8, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zFlyKey { + // total size: 0x40 +public: + signed int frame; // offset 0x0, size 0x4 + float matrix[12]; // offset 0x4, size 0x30 + float aperture[2]; // offset 0x34, size 0x8 + float focal; // offset 0x3C, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class _tagxCamFollowAsset { + // total size: 0x18 +public: + float rotation; // offset 0x0, size 0x4 + float distance; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float rubber_band; // offset 0xC, size 0x4 + float start_speed; // offset 0x10, size 0x4 + float end_speed; // offset 0x14, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum camera_owner_enum { + CO_BOULDER = 1, + CO_CRUISE_BUBBLE = 2, + CO_BUNGEE = 4, + CO_BOSS = 8, + CO_OOB = 16, + CO_ZIPLINE = 32, + CO_TURRET = 64, + CO_REWARDANIM = 128, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagxCamShoulderAsset { + // total size: 0x10 +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float realign_speed; // offset 0x8, size 0x4 + float realign_delay; // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class _tagp2CamStaticAsset { + // total size: 0x4 +public: + unsigned int unused; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +enum WallJumpViewState { + WJVS_DISABLED = 0, + WJVS_DISABLING = 1, + WJVS_ENABLED = 2, + WJVS_ENABLING = 3, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B310 -> 0x0012B388 +*/ +// Range: 0x12B310 -> 0x12B388 +unsigned int zCamera_FlyOnly() { + // Blocks + /* anonymous block */ { + // Range: 0x12B310 -> 0x12B388 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B390 -> 0x0012B3A0 +*/ +// Range: 0x12B390 -> 0x12B3A0 +void zCameraMinTargetHeightClear() { + // Blocks + /* anonymous block */ { + // Range: 0x12B390 -> 0x12B3A0 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B3A0 -> 0x0012B3A8 +*/ +// Range: 0x12B3A0 -> 0x12B3A8 +void zCameraMinTargetHeightSet(float height /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B3A0 -> 0x12B3A8 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B3B0 -> 0x0012B3D8 +*/ +// Range: 0x12B3B0 -> 0x12B3D8 +void zCameraSetReward(signed int on /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B3B0 -> 0x12B3D8 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B3E0 -> 0x0012B3F8 +*/ +// Range: 0x12B3E0 -> 0x12B3F8 +void zCameraDisableWallJump() { + // Blocks + /* anonymous block */ { + // Range: 0x12B3E0 -> 0x12B3F8 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B400 -> 0x0012B53C +*/ +// Range: 0x12B400 -> 0x12B53C +void zCameraEnableWallJump(class xVec3 & collNormal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B400 -> 0x12B53C + class xVec3 up; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B540 -> 0x0012B58C +*/ +// Range: 0x12B540 -> 0x12B58C +void zCameraTranslate(class xCamera * cam /* r2 */, float dposx /* r29 */, float dposy /* r29 */, float dposz /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B540 -> 0x12B58C + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B590 -> 0x0012B6E8 +*/ +// Range: 0x12B590 -> 0x12B6E8 +void zCameraDoTrans(class xCamAsset * asset /* r16 */, float ttime /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B590 -> 0x12B6E8 + class xMat3x3 m; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012B6F0 -> 0x0012BC98 +*/ +// Range: 0x12B6F0 -> 0x12BC98 +void zCameraSetConvers(signed int on /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12B6F0 -> 0x12BC98 + class xCamera & cam; // r16 + unsigned char saved; // @ 0x0050F2B0 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BCE0 -> 0x0012BCE8 +*/ +// Range: 0x12BCE0 -> 0x12BCE8 +signed int zCameraGetConvers() { + // Blocks + /* anonymous block */ { + // Range: 0x12BCE0 -> 0x12BCE8 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BCF0 -> 0x0012BCF8 +*/ +// Range: 0x12BCF0 -> 0x12BCF8 +float zCameraGetLassoCamFactor() { + // Blocks + /* anonymous block */ { + // Range: 0x12BCF0 -> 0x12BCF8 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD00 -> 0x0012BD08 +*/ +// Range: 0x12BD00 -> 0x12BD08 +void zCameraSetLassoCamFactor(float factor /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BD00 -> 0x12BD08 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD10 -> 0x0012BD1C +*/ +// Range: 0x12BD10 -> 0x12BD1C +void zCameraEnableLassoCam() { + // Blocks + /* anonymous block */ { + // Range: 0x12BD10 -> 0x12BD1C + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD20 -> 0x0012BD28 +*/ +// Range: 0x12BD20 -> 0x12BD28 +void zCameraDisableLassoCam() { + // Blocks + /* anonymous block */ { + // Range: 0x12BD20 -> 0x12BD28 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD30 -> 0x0012BD3C +*/ +// Range: 0x12BD30 -> 0x12BD3C +void zCameraEnableInput() { + // Blocks + /* anonymous block */ { + // Range: 0x12BD30 -> 0x12BD3C + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD40 -> 0x0012BD48 +*/ +// Range: 0x12BD40 -> 0x12BD48 +void zCameraDisableInput() { + // Blocks + /* anonymous block */ { + // Range: 0x12BD40 -> 0x12BD48 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD50 -> 0x0012BD58 +*/ +// Range: 0x12BD50 -> 0x12BD58 +unsigned int zCameraIsTrackingDisabled() { + // Blocks + /* anonymous block */ { + // Range: 0x12BD50 -> 0x12BD58 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD60 -> 0x0012BD74 +*/ +// Range: 0x12BD60 -> 0x12BD74 +void zCameraEnableTracking(enum camera_owner_enum owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BD60 -> 0x12BD74 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD80 -> 0x0012BD90 +*/ +// Range: 0x12BD80 -> 0x12BD90 +void zCameraDisableTracking(enum camera_owner_enum owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BD80 -> 0x12BD90 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BD90 -> 0x0012BD98 +*/ +// Range: 0x12BD90 -> 0x12BD98 +void zCameraSetPlayerVel(class xVec3 * vel /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BD90 -> 0x12BD98 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BDA0 -> 0x0012BDCC +*/ +// Range: 0x12BDA0 -> 0x12BDCC +void zCameraSetHighbounce(signed int hbounce /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BDA0 -> 0x12BDCC + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BDD0 -> 0x0012BDFC +*/ +// Range: 0x12BDD0 -> 0x12BDFC +void zCameraSetLongbounce(signed int lbounce /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BDD0 -> 0x12BDFC + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BE00 -> 0x0012BE08 +*/ +// Range: 0x12BE00 -> 0x12BE08 +void zCameraSetBbounce(signed int bbouncing /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BE00 -> 0x12BE08 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012BE10 -> 0x0012D778 +*/ +// Range: 0x12BE10 -> 0x12D778 +void zCameraUpdate(class xCamera * cam /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12BE10 -> 0x12D778 + class xVec3 tran_accum; // r29+0x68 + float minDist; // r2 + float dist; // r29+0x80 + float tgtHeight; // r21 + float oldTgtHeight; // r20 + float plerp; // r10 + float dlerp; // r23 + float vertical_lerp; // r29+0x80 + class xVec3 delta; // r29+0x58 + float mvtm_acc; // r27 + float mvtm_dec; // r29+0x80 + float lktm_acc; // r29+0x80 + float lktm_dec; // r29+0x80 + unsigned int button; // r3 + float dgoal; // r29+0x7C + float hgoal; // r29+0x78 + float pgoal; // r26 + float yaw_goal; // r23 + float pitch_goal; // r29+0x74 + float roll_goal; // r25 + signed int x; // r2 + float dp; // r2 + signed int x; // r2 + float dp; // r2 + signed int y; // r2 + signed int y; // r2 + float velx; // r3 + float velz; // r2 + float camx; // r1 + float camz; // r29+0x80 + float cammag; // r7 + float velmag; // r24 + float velcos; // r29+0x80 + float velsin; // r23 + float velang; // r29+0x80 + float angle_factor; // r5 + float vel_factor; // r4 + float time_factor; // r2 + float dp; // r1 + float dist; // r1 + float dirx; // r29+0x80 + float diry; // r4 + float dirz; // r29+0x80 + float dx__; // r29+0x80 + float dy__; // r29+0x80 + float dz__; // r29+0x80 + float dist2; // r2 + float dist_inv; // r29+0x80 + class xVec3 destPosition; // r29+0x48 + float lktm; // @ 0x0050E628 + float mvtm; // @ 0x0050E624 + float pitch_s; // @ 0x0050F2AC + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012D780 -> 0x0012DCB8 +*/ +// Range: 0x12D780 -> 0x12DCB8 +static void zCameraFreeLookSetGoals(class xCamera * cam /* r20 */, float pitch_s /* r23 */, float & dgoal /* r19 */, float & hgoal /* r18 */, float & pitch_goal /* r17 */, float & lktm /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12D780 -> 0x12DCB8 + float s; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012DCC0 -> 0x0012DFEC +*/ +// Range: 0x12DCC0 -> 0x12DFEC +static signed int zCameraRewardUpdate(class xCamera * cam /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12DCC0 -> 0x12DFEC + class xVec3 v; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012DFF0 -> 0x0012E640 +*/ +// Range: 0x12DFF0 -> 0x12E640 +static void zCameraFlyRestoreBackup(class xCamera * backup /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12DFF0 -> 0x12E640 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012E640 -> 0x0012EDA0 +*/ +// Range: 0x12E640 -> 0x12EDA0 +void zCameraFlyStart(unsigned int assetID /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12E640 -> 0x12EDA0 + class st_PKR_ASSET_TOCINFO ainfo; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012EDA0 -> 0x0012F410 +*/ +// Range: 0x12EDA0 -> 0x12F410 +static signed int zCameraFlyUpdate(class xCamera * cam /* r20 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12EDA0 -> 0x12F410 + signed int i; // r19 + signed int flyIdx; // r18 + signed int numKeys; // r2 + float flyLerp; // r20 + float flyFrame; // r20 + class zFlyKey keys[4]; // r29+0x110 + float matdiff1; // r23 + float matdiff2; // r22 + float matdiff3; // r29+0x210 + class xMat3x3 tmpMat; // r29+0xE0 + class xQuat quats[2]; // r29+0xC0 + class xQuat qresult; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012F410 -> 0x0012F578 +*/ +// Range: 0x12F410 -> 0x12F578 +static float MatrixSpeed(class zFlyKey * keys /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12F410 -> 0x12F578 + float dot; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012F580 -> 0x0012F798 +*/ +// Range: 0x12F580 -> 0x12F798 +static void zCameraConversUpdate(class xCamera * cam /* r16 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12F580 -> 0x12F798 + float s; // r20 + class xQuat a; // r29+0x40 + class xQuat c; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zCamera.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012F7A0 -> 0x0012F908 +*/ +// Range: 0x12F7A0 -> 0x12F908 +void zCameraReset(class xCamera * cam /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12F7A0 -> 0x12F908 + } +} + diff --git a/dwarf/SB/Game/zCameraFly.cpp b/dwarf/SB/Game/zCameraFly.cpp new file mode 100644 index 000000000..ffcf11f18 --- /dev/null +++ b/dwarf/SB/Game/zCameraFly.cpp @@ -0,0 +1,2117 @@ +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int zcam_flyasset_current; // size: 0x4, address: 0x50F274 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zCameraFlyEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x3ADC40 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zCameraFly : public xBase { + // total size: 0x14 +public: + class CameraFly_asset * casset; // offset 0x10, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class CameraFly_asset : public xDynAsset { + // total size: 0x14 +public: + unsigned int flyID; // offset 0x10, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADC40 -> 0x003ADCD0 +*/ +// Range: 0x3ADC40 -> 0x3ADCD0 +signed int zCameraFlyEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3ADC40 -> 0x3ADCD0 + class zCameraFly * fly; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADCD0 -> 0x003ADDA8 +*/ +// Range: 0x3ADCD0 -> 0x3ADDA8 +unsigned int zCameraFlyProcessStopEvent() { + // Blocks + /* anonymous block */ { + // Range: 0x3ADCD0 -> 0x3ADDA8 + class zScene * s; // r16 + unsigned short i; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADDB0 -> 0x003ADDB8 +*/ +// Range: 0x3ADDB0 -> 0x3ADDB8 +void zCameraFly_Load(class zCameraFly * fly /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3ADDB0 -> 0x3ADDB8 + } +} + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADDC0 -> 0x003ADDC8 +*/ +// Range: 0x3ADDC0 -> 0x3ADDC8 +void zCameraFly_Save(class zCameraFly * fly /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3ADDC0 -> 0x3ADDC8 + } +} + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADDD0 -> 0x003ADDD8 +*/ +// Range: 0x3ADDD0 -> 0x3ADDD8 +void zCameraFly_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x3ADDD0 -> 0x3ADDD8 + } +} + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADDE0 -> 0x003ADDF0 +*/ +// Range: 0x3ADDE0 -> 0x3ADDF0 +void zCameraFly_Setup(class zCameraFly * fly /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3ADDE0 -> 0x3ADDF0 + } +} + +/* + Compile unit: C:\SB\Game\zCameraFly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003ADDF0 -> 0x003ADE4C +*/ +// Range: 0x3ADDF0 -> 0x3ADE4C +void zCameraFly_Init(class xBase & data /* r17 */, class xDynAsset & asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3ADDF0 -> 0x3ADE4C + } +} + diff --git a/dwarf/SB/Game/zCameraTweak.cpp b/dwarf/SB/Game/zCameraTweak.cpp new file mode 100644 index 000000000..4a30b9cee --- /dev/null +++ b/dwarf/SB/Game/zCameraTweak.cpp @@ -0,0 +1,270 @@ +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int sCamTweakCount; // size: 0x4, address: 0x510284 +static class zCamTweak sCamTweakList[8]; // size: 0xA0, address: 0x5E6560 +static float sCamTweakLerp; // size: 0x4, address: 0x510288 +static float sCamTweakTime; // size: 0x4, address: 0x51028C +static float sCamTweakPitch[2]; // size: 0x8, address: 0x510290 +static float sCamTweakDistMult[2]; // size: 0x8, address: 0x510298 +static float sCamTweakPitchCur; // size: 0x4, address: 0x5102A0 +static float sCamTweakDistMultCur; // size: 0x4, address: 0x5102A4 +static float sCamD; // size: 0x4, address: 0x5102A8 +static float sCamH; // size: 0x4, address: 0x5102AC +static float sCamPitch; // size: 0x4, address: 0x5102B0 +static class zCamTweakLook zcam_neartweak; // size: 0xC, address: 0x5E6600 +static class zCamTweakLook zcam_fartweak; // size: 0xC, address: 0x5E6610 +signed int zCameraTweak_EventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x3B33B0 +signed int zcam_near; // size: 0x4, address: 0x50F234 +float zcam_far_d; // size: 0x4, address: 0x50E5A4 +float zcam_far_h; // size: 0x4, address: 0x50E5A8 +float zcam_far_pitch; // size: 0x4, address: 0x50E5AC +float zcam_near_d; // size: 0x4, address: 0x50E598 +float zcam_near_h; // size: 0x4, address: 0x50E59C +float zcam_near_pitch; // size: 0x4, address: 0x50E5A0 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zCameraTweak : public xBase { + // total size: 0x14 +public: + class CameraTweak_asset * casset; // offset 0x10, size 0x4 +}; +class CameraTweak_asset : public xDynAsset { + // total size: 0x20 +public: + signed int priority; // offset 0x10, size 0x4 + float time; // offset 0x14, size 0x4 + float pitch_adjust; // offset 0x18, size 0x4 + float dist_adjust; // offset 0x1C, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class zCamTweak { + // total size: 0x14 +public: + unsigned int owner; // offset 0x0, size 0x4 + float priority; // offset 0x4, size 0x4 + float time; // offset 0x8, size 0x4 + float pitch; // offset 0xC, size 0x4 + float distMult; // offset 0x10, size 0x4 +}; +class zCamTweakLook { + // total size: 0xC +public: + float h; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B33B0 -> 0x003B3468 +*/ +// Range: 0x3B33B0 -> 0x3B3468 +signed int zCameraTweak_EventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B33B0 -> 0x3B3468 + class zCameraTweak * tweak; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3470 -> 0x003B3478 +*/ +// Range: 0x3B3470 -> 0x3B3478 +void zCameraTweak_Load(class zCameraTweak * tweak /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3470 -> 0x3B3478 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3480 -> 0x003B3488 +*/ +// Range: 0x3B3480 -> 0x3B3488 +void zCameraTweak_Save(class zCameraTweak * tweak /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3480 -> 0x3B3488 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3490 -> 0x003B34EC +*/ +// Range: 0x3B3490 -> 0x3B34EC +void zCameraTweak_Init(class xBase & data /* r17 */, class xDynAsset & asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3490 -> 0x3B34EC + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B34F0 -> 0x003B34F8 +*/ +// Range: 0x3B34F0 -> 0x3B34F8 +float zCameraTweakGlobal_GetPitch() { + // Blocks + /* anonymous block */ { + // Range: 0x3B34F0 -> 0x3B34F8 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3500 -> 0x003B3508 +*/ +// Range: 0x3B3500 -> 0x3B3508 +float zCameraTweakGlobal_GetH() { + // Blocks + /* anonymous block */ { + // Range: 0x3B3500 -> 0x3B3508 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3510 -> 0x003B3518 +*/ +// Range: 0x3B3510 -> 0x3B3518 +float zCameraTweakGlobal_GetD() { + // Blocks + /* anonymous block */ { + // Range: 0x3B3510 -> 0x3B3518 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3520 -> 0x003B3614 +*/ +// Range: 0x3B3520 -> 0x3B3614 +void zCameraTweakGlobal_Update(float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3520 -> 0x3B3614 + class zCamTweakLook * tlook; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3620 -> 0x003B3654 +*/ +// Range: 0x3B3620 -> 0x3B3654 +void zCameraTweakGlobal_Reset() { + // Blocks + /* anonymous block */ { + // Range: 0x3B3620 -> 0x3B3654 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3660 -> 0x003B3788 +*/ +// Range: 0x3B3660 -> 0x3B3788 +void zCameraTweakGlobal_Remove(unsigned int owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3660 -> 0x3B3788 + signed int i; // r7 + signed int j; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3790 -> 0x003B39A8 +*/ +// Range: 0x3B3790 -> 0x3B39A8 +void zCameraTweakGlobal_Add(unsigned int owner /* r2 */, float priority /* r29 */, float time /* r29 */, float pitch /* r29 */, float distMult /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3790 -> 0x3B39A8 + signed int i; // r6 + signed int j; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zCameraTweak.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B39B0 -> 0x003B3AA0 +*/ +// Range: 0x3B39B0 -> 0x3B3AA0 +void zCameraTweakGlobal_Init() { + // Blocks + /* anonymous block */ { + // Range: 0x3B39B0 -> 0x3B3AA0 + } +} + diff --git a/dwarf/SB/Game/zCollGeom.cpp b/dwarf/SB/Game/zCollGeom.cpp new file mode 100644 index 000000000..51e97357d --- /dev/null +++ b/dwarf/SB/Game/zCollGeom.cpp @@ -0,0 +1,1232 @@ +/* + Compile unit: C:\SB\Game\zCollGeom.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int sNumTables; // size: 0x4, address: 0x50FFB4 +static unsigned int sTableCount[3]; // size: 0xC, address: 0x5CDDD8 +static class zCollGeomTable * sTableList[3]; // size: 0xC, address: 0x5CDDE8 +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xFFX { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xSurface { + // total size: 0x0 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zCollGeomTable { + // total size: 0xC +public: + class RpAtomic * baseModel; // offset 0x0, size 0x4 + class RpAtomic * colModel[1]; // offset 0x4, size 0x4 + class RpAtomic * camcolModel; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zCollGeom.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F32E0 -> 0x002F32E8 +*/ +// Range: 0x2F32E0 -> 0x2F32E8 +void zCollGeom_CamDisable(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F32E0 -> 0x2F32E8 + } +} + +/* + Compile unit: C:\SB\Game\zCollGeom.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F32F0 -> 0x002F3310 +*/ +// Range: 0x2F32F0 -> 0x2F3310 +void zCollGeom_CamEnable(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F32F0 -> 0x2F3310 + } +} + +/* + Compile unit: C:\SB\Game\zCollGeom.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3310 -> 0x002F34A0 +*/ +// Range: 0x2F3310 -> 0x2F34A0 +void zCollGeom_Init() { + // Blocks + /* anonymous block */ { + // Range: 0x2F3310 -> 0x2F34A0 + unsigned int tmpsize; // r29+0x6C + unsigned int i; // r20 + unsigned int k; // r19 + void * data; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCollGeom.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F34A0 -> 0x002F3710 +*/ +// Range: 0x2F34A0 -> 0x2F3710 +unsigned int zCollGeom_EntSetup(class xEnt * ent /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F34A0 -> 0x2F3710 + unsigned int i; // r17 + unsigned int j; // r16 + signed int auto_cam_coll; // r30 + class RpAtomic * imodel; // r19 + class xModelInstance * model; // r21 + class xModelInstance * model; // r21 + } +} + diff --git a/dwarf/SB/Game/zCombo.cpp b/dwarf/SB/Game/zCombo.cpp new file mode 100644 index 000000000..612d77d13 --- /dev/null +++ b/dwarf/SB/Game/zCombo.cpp @@ -0,0 +1,2746 @@ +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static class xVec3 sUnderCamPos; // size: 0xC, address: 0x61DE00 +static class zComboReward comboReward[16]; // size: 0x380, address: 0x4EA380 +class widget_chunk * comboHUD; // size: 0x4, address: 0x51030C +static class ztextbox * sHideText[5]; // size: 0x14, address: 0x61DE10 +static class zUIFont * sHideUIF[1]; // size: 0x4, address: 0x510310 +static float comboMaxTime; // size: 0x4, address: 0x50F180 +static float comboDisplayTime; // size: 0x4, address: 0x50F184 +static signed int comboPending; // size: 0x4, address: 0x510314 +static signed int comboLastCounter; // size: 0x4, address: 0x510318 +static signed int comboCounter; // size: 0x4, address: 0x51031C +static float comboTimer; // size: 0x4, address: 0x510320 +void zComboHideMessage(class widget &, class motive &); // size: 0x0, address: 0x3D5080 +unsigned char delay_motive_update(class widget &, class motive &, float); // size: 0x0, address: 0x2981F0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class /* @class */ { + // total size: 0x10 +public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class widget_chunk : public xBase { + // total size: 0x17C +public: + class text_widget w; // offset 0x10, size 0x16C +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class zUIFont : public _zUI { + // total size: 0xFC +public: + class zUIFontAsset * fasset; // offset 0xE4, size 0x4 + unsigned short uiFontFlags; // offset 0xE8, size 0x2 + unsigned short uiFontHackFlags; // offset 0xEA, size 0x2 + unsigned int text_id; // offset 0xEC, size 0x4 + float yscroll; // offset 0xF0, size 0x4 + unsigned int text_index; // offset 0xF4, size 0x4 + char * text; // offset 0xF8, size 0x4 +}; +enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zUIFontAsset : public zUIAsset { + // total size: 0xA4 +public: + unsigned short uiFontFlags; // offset 0x80, size 0x2 + unsigned char mode; // offset 0x82, size 0x1 + unsigned char fontID; // offset 0x83, size 0x1 + unsigned int textAssetID; // offset 0x84, size 0x4 + unsigned char bcolor[4]; // offset 0x88, size 0x4 + unsigned char color[4]; // offset 0x8C, size 0x4 + unsigned short inset[4]; // offset 0x90, size 0x8 + unsigned short space[2]; // offset 0x98, size 0x4 + unsigned short cdim[2]; // offset 0x9C, size 0x4 + unsigned int max_height; // offset 0xA0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class ztextbox : public xBase { + // total size: 0xD0 +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class xtextbox tb; // offset 0x18, size 0x68 + char * segments[16]; // offset 0x80, size 0x40 + unsigned int segments_size; // offset 0xC0, size 0x4 + class ztextbox * next; // offset 0xC4, size 0x4 + class ztextbox * prev; // offset 0xC8, size 0x4 + class RwRaster * bgtex; // offset 0xCC, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xFFX { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class asset_type : public xDynAsset { + // total size: 0x64 +public: + unsigned int text; // offset 0x10, size 0x4 + class basic_rect bounds; // offset 0x14, size 0x10 + unsigned int font; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } size; // offset 0x28, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + } space; // offset 0x30, size 0x8 + class color_type color; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 + } inset; // offset 0x3C, size 0x10 + enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, + } xjustify; // offset 0x4C, size 0x4 + enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, + } expand; // offset 0x50, size 0x4 + float max_height; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 + } backdrop; // offset 0x58, size 0xC +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class zComboReward { + // total size: 0x38 +public: + signed int reward; // offset 0x0, size 0x4 + char * textName; // offset 0x4, size 0x4 + unsigned int rewardList[10]; // offset 0x8, size 0x28 + unsigned int rewardNum; // offset 0x30, size 0x4 + class xTextAsset * textAsset; // offset 0x34, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class color_type { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class /* @class */ { + // total size: 0x8 +public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class text_widget : public widget { + // total size: 0x16C +public: + char text[128]; // offset 0x84, size 0x80 + class xtextbox tb; // offset 0x104, size 0x68 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xTextAsset { + // total size: 0x4 +public: + unsigned int len; // offset 0x0, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4C30 -> 0x003D5060 +*/ +// Range: 0x3D4C30 -> 0x3D5060 +void zCombo_Update(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4C30 -> 0x3D5060 + signed int toShow; // r17 + class zComboReward * c; // r16 + signed int i; // r5 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5060 -> 0x003D5078 +*/ +// Range: 0x3D5060 -> 0x3D5078 +void zCombo_HideImmediately() { + // Blocks + /* anonymous block */ { + // Range: 0x3D5060 -> 0x3D5078 + } +} + +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5080 -> 0x003D5088 +*/ +// Range: 0x3D5080 -> 0x3D5088 +void zComboHideMessage(class widget & w /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5080 -> 0x3D5088 + } +} + +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5090 -> 0x003D50F8 +*/ +// Range: 0x3D5090 -> 0x3D50F8 +void zCombo_Add(signed int points /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5090 -> 0x3D50F8 + } +} + +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5100 -> 0x003D5380 +*/ +// Range: 0x3D5100 -> 0x3D5380 +void zCombo_Setup() { + // Blocks + /* anonymous block */ { + // Range: 0x3D5100 -> 0x3D5380 + signed int i; // r17 + unsigned int id; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCombo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D5380 -> 0x003D5490 +*/ +// Range: 0x3D5380 -> 0x3D5490 +static void fillCombo(class zComboReward * r /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D5380 -> 0x3D5490 + signed int rewardLeft; // r5 + signed int j; // r3 + } +} + diff --git a/dwarf/SB/Game/zConditional.cpp b/dwarf/SB/Game/zConditional.cpp new file mode 100644 index 000000000..9e0086a64 --- /dev/null +++ b/dwarf/SB/Game/zConditional.cpp @@ -0,0 +1,147 @@ +/* + Compile unit: C:\SB\Game\zConditional.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class zVarEntry zVarEntryTable[]; // size: 0x0, address: 0x416B70 +signed int zConditionalEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x12F910 +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _zConditional : public xBase { + // total size: 0x14 +public: + class zCondAsset * asset; // offset 0x10, size 0x4 +}; +class zVarEntry { + // total size: 0x10 +public: + unsigned int entry; // offset 0x0, size 0x4 + unsigned int varNameID; // offset 0x4, size 0x4 + char * varName; // offset 0x8, size 0x4 + unsigned int (* varCB)(void *); // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class zCondAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int constNum; // offset 0x8, size 0x4 + unsigned int expr1; // offset 0xC, size 0x4 + unsigned int op; // offset 0x10, size 0x4 + unsigned int value_asset; // offset 0x14, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zConditional.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012F910 -> 0x0012F9B4 +*/ +// Range: 0x12F910 -> 0x12F9B4 +signed int zConditionalEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12F910 -> 0x12F9B4 + class _zConditional * t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zConditional.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012F9C0 -> 0x0012FB14 +*/ +// Range: 0x12F9C0 -> 0x12FB14 +unsigned int zConditional_Evaluate(class _zConditional * c /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12F9C0 -> 0x12FB14 + unsigned int temp; // r2 + class zVarEntry * v; // r18 + void * context; // r2 + signed int i; // r17 + unsigned int id; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zConditional.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012FB20 -> 0x0012FB28 +*/ +// Range: 0x12FB20 -> 0x12FB28 +void zConditionalLoad(class _zConditional * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12FB20 -> 0x12FB28 + } +} + +/* + Compile unit: C:\SB\Game\zConditional.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012FB30 -> 0x0012FB38 +*/ +// Range: 0x12FB30 -> 0x12FB38 +void zConditionalSave(class _zConditional * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12FB30 -> 0x12FB38 + } +} + +/* + Compile unit: C:\SB\Game\zConditional.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012FB40 -> 0x0012FBB0 +*/ +// Range: 0x12FB40 -> 0x12FBB0 +void zConditionalInit(void * b /* r2 */, void * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12FB40 -> 0x12FBB0 + } +} + diff --git a/dwarf/SB/Game/zCutsceneMgr.cpp b/dwarf/SB/Game/zCutsceneMgr.cpp new file mode 100644 index 000000000..e58c5759f --- /dev/null +++ b/dwarf/SB/Game/zCutsceneMgr.cpp @@ -0,0 +1,2793 @@ +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zCutsceneHack cutsceneHackTable[58]; // size: 0x658, address: 0x4065A0 +static class zCutSceneNames zCutSceneNamesTable[14]; // size: 0x3F0, address: 0x406C00 +static signed int gCutsceneSkipOK; // size: 0x4, address: 0x50F2B4 +static signed int donpcfx; // size: 0x4, address: 0x50F2B8 +static unsigned char ents_hidden; // size: 0x1, address: 0x50F2BC +static signed int s_atomicNumber; // size: 0x4, address: 0x50F2C0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +float gSkipTimeCutscene; // size: 0x4, address: 0x50E798 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * HackAlphaCB(class RpAtomic *, void *); // size: 0x0, address: 0x130730 +class RpAtomic * HackBoundCB(class RpAtomic *, void *); // size: 0x0, address: 0x1307F0 +class RpMaterial * HackAlphaSetMaterialAlphaCB(class RpMaterial *, void *); // size: 0x0, address: 0x130790 +signed int zCutsceneMgrEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x1302F0 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xFFX { + // total size: 0x0 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class rxReq { + // total size: 0x0 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zCutSceneNames { + // total size: 0x48 +public: + char name[64]; // offset 0x0, size 0x40 + signed int played; // offset 0x40, size 0x4 + signed int skipOK; // offset 0x44, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zCutsceneHack { + // total size: 0x1C +public: + char * cinname; // offset 0x0, size 0x4 + char * modelname; // offset 0x4, size 0x4 + float radius; // offset 0x8, size 0x4 + unsigned int tworoot; // offset 0xC, size 0x4 + unsigned int noshadow; // offset 0x10, size 0x4 + unsigned int alphaBits; // offset 0x14, size 0x4 + class RpAtomic * (* renderCB)(class RpAtomic *); // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012FBB0 -> 0x0012FC88 +*/ +// Range: 0x12FBB0 -> 0x12FC88 +static void check_hide_entities() { + // Blocks + /* anonymous block */ { + // Range: 0x12FBB0 -> 0x12FC88 + class zScene & scene; // r3 + class zEnt * * it; // r7 + class zEnt * * end; // r6 + class zEnt * ent; // r5 + class zEnt * ent; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0012FC90 -> 0x0012FFF4 +*/ +// Range: 0x12FC90 -> 0x12FFF4 +void zCutsceneMgrUpdate(class xBase * to /* r17 */, class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x12FC90 -> 0x12FFF4 + class zCutsceneMgr * t; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130000 -> 0x001300B8 +*/ +// Range: 0x130000 -> 0x1300B8 +static void zCutsceneMgrUpdateFX(class zCutsceneMgr * t /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130000 -> 0x1300B8 + class xCutsceneMgrAsset * a; // r18 + class xCutscene * csn; // r17 + signed int i; // r16 + class zParEmitter * e; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001300C0 -> 0x00130220 +*/ +// Range: 0x1300C0 -> 0x130220 +void zCutsceneMgrFinishExit(class xBase * to /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1300C0 -> 0x130220 + class zCutsceneMgr * t; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130220 -> 0x001302E4 +*/ +// Range: 0x130220 -> 0x1302E4 +void zCutsceneMgrFinishLoad(class xBase * to /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130220 -> 0x1302E4 + class zCutsceneMgr * t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001302F0 -> 0x00130404 +*/ +// Range: 0x1302F0 -> 0x130404 +signed int zCutsceneMgrEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1302F0 -> 0x130404 + class zCutsceneMgr * t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130410 -> 0x001306A4 +*/ +// Range: 0x130410 -> 0x1306A4 +static void zCutsceneMgrPlayStart(class zCutsceneMgr * t /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130410 -> 0x1306A4 + unsigned int i; // r18 + unsigned int j; // r21 + unsigned int cinid; // r2 + unsigned int hackid; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001306B0 -> 0x00130730 +*/ +// Range: 0x1306B0 -> 0x130730 +void zCutSceneNamesTable_clearAll() { + // Blocks + /* anonymous block */ { + // Range: 0x1306B0 -> 0x130730 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130730 -> 0x00130788 +*/ +// Range: 0x130730 -> 0x130788 +static class RpAtomic * HackAlphaCB(class RpAtomic * atomic /* r16 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130730 -> 0x130788 + class RpGeometry * pGeom; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130790 -> 0x001307E8 +*/ +// Range: 0x130790 -> 0x1307E8 +static class RpMaterial * HackAlphaSetMaterialAlphaCB(class RpMaterial * material /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130790 -> 0x1307E8 + class RwRGBA new_col; // r29+0xC + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001307F0 -> 0x00130828 +*/ +// Range: 0x1307F0 -> 0x130828 +static class RpAtomic * HackBoundCB(class RpAtomic * atomic /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1307F0 -> 0x130828 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130830 -> 0x0013088C +*/ +// Range: 0x130830 -> 0x13088C +void zCutsceneMgrLoad(class xSerial * s /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130830 -> 0x13088C + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130890 -> 0x00130910 +*/ +// Range: 0x130890 -> 0x130910 +void zCutsceneMgrSave(class xSerial * s /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130890 -> 0x130910 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zCutsceneMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130910 -> 0x00130980 +*/ +// Range: 0x130910 -> 0x130980 +void zCutsceneMgrInit(void * b /* r17 */, void * tasset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130910 -> 0x130980 + } +} + diff --git a/dwarf/SB/Game/zDiscoFloor.cpp b/dwarf/SB/Game/zDiscoFloor.cpp new file mode 100644 index 000000000..5817ced5e --- /dev/null +++ b/dwarf/SB/Game/zDiscoFloor.cpp @@ -0,0 +1,2759 @@ +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static float close_encounters[5]; // size: 0x14, address: 0x5016A0 +static float blues_scale[6]; // size: 0x18, address: 0x5016C0 +static class /* @class */ { + // total size: 0x70 +public: + class xLightKit kit; // offset 0x0, size 0x10 + class xLightKitLight light[1]; // offset 0x10, size 0x60 +} glow_light; // size: 0x70, address: 0x5E23E0 +static unsigned int current_disco_floor; // size: 0x4, address: 0x510150 +unsigned char off_flag[3]; // size: 0x3, address: 0x5016D8 +unsigned char transition_flag[3]; // size: 0x3, address: 0x5016E0 +unsigned char on_flag[3]; // size: 0x3, address: 0x5016E8 +unsigned char mask; // size: 0x1, address: 0x0 +unsigned char off_flag[3]; // size: 0x3, address: 0x5016F0 +unsigned char transition_flag[3]; // size: 0x3, address: 0x5016F8 +unsigned char on_flag[3]; // size: 0x3, address: 0x501700 +unsigned char mask; // size: 0x1, address: 0x0 +unsigned char off_flag[3]; // size: 0x3, address: 0x501708 +unsigned char transition_flag[3]; // size: 0x3, address: 0x501710 +unsigned char on_flag[3]; // size: 0x3, address: 0x501718 +unsigned char mask; // size: 0x1, address: 0x0 +static class clone_pipe_data clone_pipe; // size: 0x10, address: 0x5E26C0 +float radd; // size: 0x4, address: 0x0 +float rmul; // size: 0x4, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int event_handler(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x337140 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +signed int compare_buckets(void *, void *); // size: 0x0, address: 0x339CB0 +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class z_disco_floor : public xBase { + // total size: 0x98 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled; // offset 0x0, size 0x1 + unsigned char forward; // offset 0x1, size 0x1 + unsigned char culled; // offset 0x2, size 0x1 + unsigned char glow_culled; // offset 0x3, size 0x1 + } flag; // offset 0x10, size 0x4 + class z_disco_floor_asset * asset; // offset 0x14, size 0x4 + unsigned char * * state_masks; // offset 0x18, size 0x4 + unsigned char * active_state_mask; // offset 0x1C, size 0x4 + unsigned char * next_state_mask; // offset 0x20, size 0x4 + char * prefix[3]; // offset 0x24, size 0xC + class tile_data * tiles[3]; // offset 0x30, size 0xC + unsigned int tiles_size; // offset 0x3C, size 0x4 + unsigned int min_state; // offset 0x40, size 0x4 + unsigned int max_state; // offset 0x44, size 0x4 + unsigned int state; // offset 0x48, size 0x4 + unsigned int next_state; // offset 0x4C, size 0x4 + unsigned int state_counter; // offset 0x50, size 0x4 + float transition_delay; // offset 0x54, size 0x4 + float state_delay; // offset 0x58, size 0x4 + float transition_time; // offset 0x5C, size 0x4 + float state_time; // offset 0x60, size 0x4 + class xSphere bound; // offset 0x64, size 0x10 + float pulse_time; // offset 0x74, size 0x4 + float pulse_glow[3]; // offset 0x78, size 0xC + float cull_dist_glow; // offset 0x84, size 0x4 + float cull_dist_update; // offset 0x88, size 0x4 + float glow_fade; // offset 0x8C, size 0x4 + float sound_delay; // offset 0x90, size 0x4 + signed int curr_note; // offset 0x94, size 0x4 +}; +class clone_pipe_data { + // total size: 0x10 +public: + class bucket_data * buckets; // offset 0x0, size 0x4 + unsigned int buckets_size; // offset 0x4, size 0x4 + class RwFrame * * frames; // offset 0x8, size 0x4 + class RwRGBAReal * colors; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class z_disco_floor_asset : public xBaseAsset { + // total size: 0x2C +public: + unsigned int flags; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float transition; // offset 0x0, size 0x4 + float state; // offset 0x4, size 0x4 + } interval; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0xC + public: + unsigned int off; // offset 0x0, size 0x4 + unsigned int transition; // offset 0x4, size 0x4 + unsigned int on; // offset 0x8, size 0x4 + } prefix_offset; // offset 0x14, size 0xC + unsigned int state_mask_size; // offset 0x20, size 0x4 + unsigned int states_offset; // offset 0x24, size 0x4 + unsigned int states_size; // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class bucket_data { + // total size: 0x10 +public: + class RpAtomic * atomic; // offset 0x0, size 0x4 + class RpAtomic * atomic_clone; // offset 0x4, size 0x4 + class render_context * rc; // offset 0x8, size 0x4 + unsigned short size; // offset 0xC, size 0x2 + unsigned short used; // offset 0xE, size 0x2 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class tile_data { + // total size: 0x18 +public: + unsigned char culled; // offset 0x0, size 0x1 + class zEntSimpleObj * ent; // offset 0x4, size 0x4 + class xSphere sphere; // offset 0x8, size 0x10 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zEntSimpleObj : public zEnt { + // total size: 0xE4 +public: + class xSimpleObjAsset * sasset; // offset 0xD4, size 0x4 + unsigned int sflags; // offset 0xD8, size 0x4 + void * anim; // offset 0xDC, size 0x4 + float animTime; // offset 0xE0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled; // offset 0x0, size 0x1 + unsigned char forward; // offset 0x1, size 0x1 + unsigned char culled; // offset 0x2, size 0x1 + unsigned char glow_culled; // offset 0x3, size 0x1 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zLODTable { + // total size: 0x20 +public: + class xModelBucket * * baseBucket; // offset 0x0, size 0x4 + float noRenderDist; // offset 0x4, size 0x4 + class xModelBucket * * lodBucket[3]; // offset 0x8, size 0xC + float lodDist[3]; // offset 0x14, size 0xC +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xSimpleObjAsset { + // total size: 0xC +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned char collType; // offset 0x8, size 0x1 + unsigned char flags; // offset 0x9, size 0x1 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x70 +public: + class xLightKit kit; // offset 0x0, size 0x10 + class xLightKitLight light[1]; // offset 0x10, size 0x60 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class render_context { + // total size: 0x50 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class iColor_tag color; // offset 0x40, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float transition; // offset 0x0, size 0x4 + float state; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class anim_coll_data { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int off; // offset 0x0, size 0x4 + unsigned int transition; // offset 0x4, size 0x4 + unsigned int on; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class zPlatform { + // total size: 0x0 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337140 -> 0x003372EC +*/ +// Range: 0x337140 -> 0x3372EC +signed int event_handler(class xBase * to /* r2 */, unsigned int event /* r2 */, float * argf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337140 -> 0x3372EC + class z_disco_floor & f; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003372F0 -> 0x00337430 +*/ +// Range: 0x3372F0 -> 0x337430 +void distance_cull(class z_disco_floor * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3372F0 -> 0x337430 + class xVec3 & cam_loc; // r5 + class xVec3 offset; // r29+0x10 + float min_glow_dist; // r1 + float max_glow_dist; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337430 -> 0x00337BCC +*/ +// Range: 0x337430 -> 0x337BCC +void refresh_bound(class z_disco_floor * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337430 -> 0x337BCC + class xVec3 avg_center; // r29+0x1C0 + class xBox box; // r29+0xC0 + float itotal; // r29+0x1D0 + signed int group; // r22 + class tile_data * it; // r21 + class tile_data * end; // r20 + class xBox ent_box; // r29+0xA0 + class xVec3 box_center; // r29+0x1B0 + class xVec3 mid_center; // r29+0x1A0 + float avg_radius; // r9 + float box_radius; // r8 + float mid_radius; // r7 + signed int group; // r22 + class tile_data * it; // r21 + class tile_data * end; // r20 + float avg_r; // r10 + float box_r; // r10 + float mid_r; // r10 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337BD0 -> 0x00337D38 +*/ +// Range: 0x337BD0 -> 0x337D38 +void refresh_spheres(class z_disco_floor * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337BD0 -> 0x337D38 + signed int group; // r19 + class tile_data * it; // r18 + class tile_data * end; // r17 + class RwSphere & msphere; // r4 + class xVec3 & scale; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337D40 -> 0x00337D48 +*/ +// Range: 0x337D40 -> 0x337D48 +void set_state_delay(class z_disco_floor * this /* r2 */, float s /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337D40 -> 0x337D48 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337D50 -> 0x00337D58 +*/ +// Range: 0x337D50 -> 0x337D58 +void set_transition_delay(class z_disco_floor * this /* r2 */, float s /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337D50 -> 0x337D58 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337D60 -> 0x00337E54 +*/ +// Range: 0x337D60 -> 0x337E54 +void set_state_range(class z_disco_floor * this /* r17 */, signed int min /* r19 */, signed int max /* r18 */, unsigned char immediate /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337D60 -> 0x337E54 + unsigned int min_state; // r18 + unsigned int max_state; // r2 + unsigned int newstate; // r2 + unsigned int newstate; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00337E60 -> 0x003380E4 +*/ +// Range: 0x337E60 -> 0x3380E4 +void set_state(class z_disco_floor * this /* r21 */, unsigned int state /* r2 */, unsigned char immediate /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x337E60 -> 0x3380E4 + unsigned int r; // @ 0x00510154 + signed int bit_index; // @ 0x0050F0D8 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003380F0 -> 0x00338378 +*/ +// Range: 0x3380F0 -> 0x338378 +void update(class z_disco_floor * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3380F0 -> 0x338378 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00338380 -> 0x00338688 +*/ +// Range: 0x338380 -> 0x338688 +void setup(class z_disco_floor * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x338380 -> 0x338688 + unsigned int data_size; // r16 + unsigned char * buffer; // r20 + signed int group; // r19 + unsigned int i; // r17 + class xSurface * & surf; // r19 + signed int i; // r8 + unsigned int j; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00338690 -> 0x00338850 +*/ +// Range: 0x338690 -> 0x338850 +void load(class z_disco_floor * this /* r18 */, class z_disco_floor_asset & asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x338690 -> 0x338850 + unsigned char * data; // r16 + unsigned int * state_offsets; // r6 + unsigned int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00338850 -> 0x00338858 +*/ +// Range: 0x338850 -> 0x338858 +void init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x338850 -> 0x338858 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00338860 -> 0x00338EE4 +*/ +// Range: 0x338860 -> 0x338EE4 +void effects_render_all() { + // Blocks + /* anonymous block */ { + // Range: 0x338860 -> 0x338EE4 + class iColor_tag color; // r29+0x12C + class zScene & s; // r4 + class z_disco_floor * begin_floor; // r29+0x100 + class z_disco_floor * end_floor; // r29+0xF0 + class RpAtomic * atomic; // r21 + class bucket_data * bucket; // r20 + class z_disco_floor * floor; // r2 + signed int group; // r29+0xE0 + float glow; // r3 + float dalpha; // r24 + float dyoffset; // r23 + class tile_data * tile; // r19 + class tile_data * end_tile; // r30 + class xModelInstance * model; // r18 + float alpha; // r22 + float yoffset; // r21 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00338EF0 -> 0x00339200 +*/ +// Range: 0x338EF0 -> 0x339200 +static void clip_render(class RpAtomic * atomic /* r17 */, class xMat4x3 & mat /* r16 */, class xSphere & bound /* r2 */, class iColor_tag color /* r29+0x3C */) { + // Blocks + /* anonymous block */ { + // Range: 0x338EF0 -> 0x339200 + class RpGeometry * geom; // r10 + unsigned int flags; // r4 + signed int materials; // r9 + signed int i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339200 -> 0x00339380 +*/ +// Range: 0x339200 -> 0x339380 +static unsigned char sphere_hits_screen(class xSphere & o /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x339200 -> 0x339380 + class RwCamera * camera; // r6 + class xMat4x3 & cammat; // r4 + class xVec3 offset; // r29 + float radius; // r7 + float near_dist; // r9 + class xVec2 & window; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339400 -> 0x00339968 +*/ +// Range: 0x339400 -> 0x339968 +void render_all() { + // Blocks + /* anonymous block */ { + // Range: 0x339400 -> 0x339968 + class iColor_tag color; // r29+0xFC + class zScene & s; // r4 + class z_disco_floor * begin_floor; // r29+0xD0 + class z_disco_floor * end_floor; // r29+0xC0 + class RpAtomic * atomic; // r21 + class bucket_data * bucket; // r20 + class z_disco_floor * floor; // r2 + signed int group; // r19 + class tile_data * tile; // r18 + class tile_data * end_tile; // r29+0xB0 + class xModelInstance * model; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339970 -> 0x00339A48 +*/ +// Range: 0x339970 -> 0x339A48 +void destroy() { + // Blocks + /* anonymous block */ { + // Range: 0x339970 -> 0x339A48 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339A50 -> 0x00339CB0 +*/ +// Range: 0x339A50 -> 0x339CB0 +void post_setup() { + // Blocks + /* anonymous block */ { + // Range: 0x339A50 -> 0x339CB0 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339CB0 -> 0x00339CC0 +*/ +// Range: 0x339CB0 -> 0x339CC0 +static signed int compare_buckets(void * e1 /* r2 */, void * e2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x339CB0 -> 0x339CC0 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339CC0 -> 0x00339E28 +*/ +// Range: 0x339CC0 -> 0x339E28 +static void insert_atomic(class clone_pipe_data * this /* r2 */, class xModelInstance * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x339CC0 -> 0x339E28 + class RpAtomic * atomic; // r6 + class bucket_data * it; // r18 + class bucket_data * end; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339E30 -> 0x00339EC4 +*/ +// Range: 0x339E30 -> 0x339EC4 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x339E30 -> 0x339EC4 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00339ED0 -> 0x0033A270 +*/ +// Range: 0x339ED0 -> 0x33A270 +static class xSurface & get_damage_surface() { + // Blocks + /* anonymous block */ { + // Range: 0x339ED0 -> 0x33A270 + class xSurface & defsurf; // r2 + class xSurface surf; // @ 0x005E2450 + class zSurfAssetBase asset; // @ 0x005E2590 + class zSurfaceProps props; // @ 0x005E2480 + unsigned char inited; // @ 0x00510158 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033A2A0 -> 0x0033A504 +*/ +// Range: 0x33A2A0 -> 0x33A504 +static void update_state(class z_disco_floor & df /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33A2A0 -> 0x33A504 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033A510 -> 0x0033A748 +*/ +// Range: 0x33A510 -> 0x33A748 +static void play_sound(class z_disco_floor & df /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33A510 -> 0x33A748 + float pitch; // r20 + float pitch_offset; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033A750 -> 0x0033AF38 +*/ +// Range: 0x33A750 -> 0x33AF38 +static void refresh_state(class z_disco_floor & df /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33A750 -> 0x33AF38 + unsigned int i; // r20 + unsigned int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033AF40 -> 0x0033B074 +*/ +// Range: 0x33AF40 -> 0x33B074 +static unsigned int find_tiles(char * name /* r16 */, class tile_data * tiles /* r21 */, unsigned int size /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33AF40 -> 0x33B074 + char buffer[256]; // r29+0x70 + unsigned int prefix_size; // r29+0x17C + unsigned int start; // r29+0x178 + unsigned int i; // r19 + unsigned int total; // r18 + signed int j; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zDiscoFloor.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033B080 -> 0x0033B130 +*/ +// Range: 0x33B080 -> 0x33B130 +static void object_prefix(char * name /* r18 */, unsigned int & size /* r17 */, unsigned int & first /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33B080 -> 0x33B130 + unsigned int namelen; // r2 + signed int i; // r5 + } +} + diff --git a/dwarf/SB/Game/zDispatcher.cpp b/dwarf/SB/Game/zDispatcher.cpp new file mode 100644 index 000000000..c48cc215c --- /dev/null +++ b/dwarf/SB/Game/zDispatcher.cpp @@ -0,0 +1,2527 @@ +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static signed int g_zdsp_init; // size: 0x4, address: 0x50F2C4 +static signed int g_zdsp_dblog_init; // size: 0x4, address: 0x0 +static class st_ZDISPATCH_DEPOT g_zdsp_depot; // size: 0x8, address: 0x50F2C8 +static signed int oldVibrationOption; // size: 0x4, address: 0x50F2D4 +static unsigned int oldSoundMode; // size: 0x4, address: 0x50F2D8 +static unsigned int oldMusicVolume; // size: 0x4, address: 0x50F2DC +static unsigned int oldSFXVolume; // size: 0x4, address: 0x50F2E0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +char zEventLogBuf[20][256]; // size: 0x1400, address: 0x5C47B0 +unsigned char menu_fmv_played; // size: 0x1, address: 0x50F64C +signed int ZDSP_elcb_event(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x130980 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class st_ZDISPATCH_DATA : public xBase { + // total size: 0x18 +public: + class xBaseAsset * rawass; // offset 0x10, size 0x4 + signed int placeholder; // offset 0x14, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class st_ZDISPATCH_CONTEXT { + // total size: 0x10 +public: + enum en_DISPATCH_COMMAND cmd; // offset 0x0, size 0x4 + void * indata; // offset 0x4, size 0x4 + void * inxtra; // offset 0x8, size 0x4 + void * result; // offset 0xC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class st_ZDISPATCH_DEPOT { + // total size: 0x8 +public: + class st_ZDISPATCH_DATA * raw_pool; // offset 0x0, size 0x4 + signed int raw_cnt; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum en_DISPATCH_COMMAND { + ZDSP_CMD_INITDFLT = -1, + ZDSP_CMD_CTRL_CFGGET = 0, + ZDSP_CMD_CTRL_CFGSET = 1, + ZDSP_CMD_CTRL_VIBEGET = 2, + ZDSP_CMD_CTRL_VIBESET = 3, + ZDSP_CMD_SNDMOD_GET = 4, + ZDSP_CMD_SNDMOD_SET = 5, + ZDSP_CMD_SNDVOL_GET = 6, + ZDSP_CMD_SNDVOL_SET = 7, + ZDSP_CMD_SNDVOL_INCR = 8, + ZDSP_CMD_SNDVOL_DECR = 9, + ZDSP_CMD_MUSVOL_GET = 10, + ZDSP_CMD_MUSVOL_SET = 11, + ZDSP_CMD_MUSVOL_INCR = 12, + ZDSP_CMD_MUSVOL_DECR = 13, + ZDSP_CMD_SFXVOL_GET = 14, + ZDSP_CMD_SFXVOL_SET = 15, + ZDSP_CMD_SFXVOL_INCR = 16, + ZDSP_CMD_SFXVOL_DECR = 17, + ZDSP_CMD_GSTATE_GET = 18, + ZDSP_CMD_GSTATE_SET = 19, + ZDSP_CMD_GMODE_GET = 20, + ZDSP_CMD_GMODE_SET = 21, + ZDSP_CHECKPNT_SET = 22, + ZDSP_CMD_NOMORE = 23, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00130980 -> 0x00131510 +*/ +// Range: 0x130980 -> 0x131510 +static signed int ZDSP_elcb_event(class xBase * xb /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r18 */, class xBase * toParamWidget /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x130980 -> 0x131510 + class st_ZDISPATCH_DATA * dspdata; // r16 + class iColor_tag black; // r29+0x55C + class iColor_tag clear; // r29+0x558 + char events[512]; // r29+0x330 + unsigned int c; // r16 + unsigned int len; // r18 + unsigned int i; // r17 + char log[512]; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131510 -> 0x00131B3C +*/ +// Range: 0x131510 -> 0x131B3C +static signed int ZDSP_doCommand(class st_ZDISPATCH_CONTEXT * cmdCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131510 -> 0x131B3C + signed int iv; // r2 + enum en_DISPATCH_COMMAND cmd; // r3 + void * indata; // r17 + void * result; // r16 + signed int warned; // @ 0x0050F2D0 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131B40 -> 0x00131B48 +*/ +// Range: 0x131B40 -> 0x131B48 +void zDispatcher_Load(class st_ZDISPATCH_DATA * dspdata /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131B40 -> 0x131B48 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131B50 -> 0x00131B58 +*/ +// Range: 0x131B50 -> 0x131B58 +void zDispatcher_Save(class st_ZDISPATCH_DATA * dspdata /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131B50 -> 0x131B58 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131B60 -> 0x00131B70 +*/ +// Range: 0x131B60 -> 0x131B70 +void zDispatcher_InitDep(class st_ZDISPATCH_DATA * dspdata /* r4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131B60 -> 0x131B70 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131B70 -> 0x00131BE4 +*/ +// Range: 0x131B70 -> 0x131BE4 +void zDispatcher_Init(class st_ZDISPATCH_DATA * dspdata /* r17 */, class xBaseAsset * bass /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131B70 -> 0x131BE4 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131BF0 -> 0x00131C04 +*/ +// Range: 0x131BF0 -> 0x131C04 +class st_ZDISPATCH_DATA * zDispatcher_getInst(class st_ZDISPATCH_DATA * pool /* r2 */, signed int idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131BF0 -> 0x131C04 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131C10 -> 0x00131C90 +*/ +// Range: 0x131C10 -> 0x131C90 +class st_ZDISPATCH_DATA * zDispatcher_memPool(signed int cnt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131C10 -> 0x131C90 + class st_ZDISPATCH_DATA * pool; // r18 + class st_ZDISPATCH_DEPOT * depot; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131C90 -> 0x00131CC4 +*/ +// Range: 0x131C90 -> 0x131CC4 +void zDispatcher_sceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x131C90 -> 0x131CC4 + class st_ZDISPATCH_DEPOT * depot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131CD0 -> 0x00131D04 +*/ +// Range: 0x131CD0 -> 0x131D04 +void zDispatcher_scenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x131CD0 -> 0x131D04 + class st_ZDISPATCH_DEPOT * depot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131D10 -> 0x00131D18 +*/ +// Range: 0x131D10 -> 0x131D18 +void zDispatcher_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x131D10 -> 0x131D18 + } +} + +/* + Compile unit: C:\SB\Game\zDispatcher.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131D20 -> 0x00131D28 +*/ +// Range: 0x131D20 -> 0x131D28 +void zDispatcher_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x131D20 -> 0x131D28 + } +} + diff --git a/dwarf/SB/Game/zEGenerator.cpp b/dwarf/SB/Game/zEGenerator.cpp new file mode 100644 index 000000000..52a6f8fa6 --- /dev/null +++ b/dwarf/SB/Game/zEGenerator.cpp @@ -0,0 +1,2570 @@ +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +void zEGenerator_Render(class zEGenerator *); // size: 0x0, address: 0x1325F0 +signed int zEGeneratorEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x131D30 +void zEGenerator_Move(class zEGenerator *, class xScene *, float); // size: 0x0, address: 0x1328A0 +void zEGenerator_Update(class zEGenerator *, class xScene *, float); // size: 0x0, address: 0x132600 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zEGenerator : public zEnt { + // total size: 0x114 +public: + class zEGenAsset * zasset; // offset 0xD4, size 0x4 + unsigned short flags; // offset 0xD8, size 0x2 + unsigned short num_dsts; // offset 0xDA, size 0x2 + float tmr; // offset 0xDC, size 0x4 + class xAnimFile * afile; // offset 0xE0, size 0x4 + class xVec3 src_pos; // offset 0xE4, size 0xC + class xVec3 dst_pos; // offset 0xF0, size 0xC + class xVec3 dst_off; // offset 0xFC, size 0xC + class xBase * dst; // offset 0x108, size 0x4 + class zLightning * lfx[2]; // offset 0x10C, size 0x8 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zEGenAsset : public xEntAsset { + // total size: 0x6C +public: + class xVec3 src_dpos; // offset 0x54, size 0xC + unsigned char damage_type; // offset 0x60, size 0x1 + unsigned char flags; // offset 0x61, size 0x1 + float ontime; // offset 0x64, size 0x4 + unsigned int onAnimID; // offset 0x68, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zFrag { + // total size: 0x0 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xSpline3 { + // total size: 0x0 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00131D30 -> 0x00132078 +*/ +// Range: 0x131D30 -> 0x132078 +signed int zEGeneratorEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x131D30 -> 0x132078 + class zEGenerator * egen; // r17 + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132080 -> 0x001325E4 +*/ +// Range: 0x132080 -> 0x1325E4 +void zEGenerator_TurnOn(class zEGenerator * egen /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132080 -> 0x1325E4 + class zEGenAsset * zasset; // r5 + unsigned short itgt; // r2 + unsigned short imp; // r20 + signed int i; // r19 + class xLinkAsset * link; // r18 + class xBase * b; // r17 + signed int i; // r17 + class _tagLightningAdd add; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001325F0 -> 0x001325F8 +*/ +// Range: 0x1325F0 -> 0x1325F8 +void zEGenerator_Render(class zEGenerator * egen /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1325F0 -> 0x1325F8 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132600 -> 0x0013289C +*/ +// Range: 0x132600 -> 0x13289C +void zEGenerator_Update(class zEGenerator * egen /* r16 */, class xScene * sc /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132600 -> 0x13289C + class zEnt * ent; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001328A0 -> 0x001328A8 +*/ +// Range: 0x1328A0 -> 0x1328A8 +void zEGenerator_Move() { + // Blocks + /* anonymous block */ { + // Range: 0x1328A0 -> 0x1328A8 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001328B0 -> 0x001329AC +*/ +// Range: 0x1328B0 -> 0x1329AC +void zEGenerator_Reset(class zEGenerator * egen /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1328B0 -> 0x1329AC + class zEGenAsset * zasset; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001329B0 -> 0x001329B8 +*/ +// Range: 0x1329B0 -> 0x1329B8 +void zEGenerator_Load(class zEGenerator * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1329B0 -> 0x1329B8 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001329C0 -> 0x001329C8 +*/ +// Range: 0x1329C0 -> 0x1329C8 +void zEGenerator_Save(class zEGenerator * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1329C0 -> 0x1329C8 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001329D0 -> 0x00132AA4 +*/ +// Range: 0x1329D0 -> 0x132AA4 +void zEGenerator_Setup(class zEGenerator * egen /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1329D0 -> 0x132AA4 + signed int i; // r17 + class xLinkAsset * la; // r19 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132AB0 -> 0x00132C04 +*/ +// Range: 0x132AB0 -> 0x132C04 +void zEGenerator_Init(class zEGenerator * egen /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132AB0 -> 0x132C04 + class zEGenAsset * zasset; // r2 + void * buf; // r2 + unsigned int size; // r29+0x5C + } +} + +/* + Compile unit: C:\SB\Game\zEGenerator.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132C10 -> 0x00132C18 +*/ +// Range: 0x132C10 -> 0x132C18 +void zEGenerator_Init(void * egen /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132C10 -> 0x132C18 + } +} + diff --git a/dwarf/SB/Game/zEnt.cpp b/dwarf/SB/Game/zEnt.cpp new file mode 100644 index 000000000..91f14b550 --- /dev/null +++ b/dwarf/SB/Game/zEnt.cpp @@ -0,0 +1,3479 @@ +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int model_id; // size: 0x4, address: 0x50F2E4 +float xlower; // size: 0x4, address: 0x0 +float xupper; // size: 0x4, address: 0x0 +float ylower; // size: 0x4, address: 0x0 +float yupper; // size: 0x4, address: 0x0 +unsigned int g_hash_xentanim[5]; // size: 0x14, address: 0x518020 +char * g_strz_xentanim[5]; // size: 0x14, address: 0x407000 +class _ShadowParams gShadowParams[5]; // size: 0x3C, address: 0x407020 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +void zEntUpdate(class zEnt *, class zScene *, float); // size: 0x0, address: 0x1343B0 +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xModelAssetInfo { + // total size: 0x14 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int NumModelInst; // offset 0x4, size 0x4 + unsigned int AnimTableID; // offset 0x8, size 0x4 + unsigned int CombatID; // offset 0xC, size 0x4 + unsigned int BrainID; // offset 0x10, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xModelAssetParam { + // total size: 0x8 +public: + unsigned int HashID; // offset 0x0, size 0x4 + unsigned char WordLength; // offset 0x4, size 0x1 + unsigned char String[3]; // offset 0x5, size 0x3 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zAssetPickupTable { + // total size: 0x8 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Count; // offset 0x4, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xEntBoulder { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xModelAssetInst { + // total size: 0x38 +public: + unsigned int ModelID; // offset 0x0, size 0x4 + unsigned short Flags; // offset 0x4, size 0x2 + unsigned char Parent; // offset 0x6, size 0x1 + unsigned char Bone; // offset 0x7, size 0x1 + float MatRight[3]; // offset 0x8, size 0xC + float MatUp[3]; // offset 0x14, size 0xC + float MatAt[3]; // offset 0x20, size 0xC + float MatPos[3]; // offset 0x2C, size 0xC +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xPSYNote { + // total size: 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum radius_enum { + RADIUS_CACHE = 0, + RADIUS_RASTER = 1, + MAX_RADIUS = 2, +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class _ShadowParams { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + float at; // offset 0x4, size 0x4 + float rad; // offset 0x8, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132C20 -> 0x00132DC8 +*/ +// Range: 0x132C20 -> 0x132DC8 +void zEntGetShadowParams(class xEnt * ent /* r2 */, class xVec3 * center /* r2 */, float * radius /* r2 */, enum radius_enum rtype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132C20 -> 0x132DC8 + float r; // r1 + class xVec3 * lower; // r2 + class xVec3 * upper; // r2 + class zNPCCommon * zp; // r2 + class _ShadowParams * sp; // r9 + signed int i; // r8 + class xVec3 * at; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132DD0 -> 0x00132F18 +*/ +// Range: 0x132DD0 -> 0x132F18 +signed int zParamGetVector(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, class xVec3 * result /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132DD0 -> 0x132F18 + class xVec3 def; // r29+0x50 + signed int act; // r2 + float fltbuf[3]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00132F20 -> 0x00133068 +*/ +// Range: 0x132F20 -> 0x133068 +signed int zParamGetVector(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, class xVec3 * result /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x132F20 -> 0x133068 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133070 -> 0x001331E8 +*/ +// Range: 0x133070 -> 0x1331E8 +signed int zParamGetFloatList(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, signed int count /* r20 */, float * def /* r19 */, float * result /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133070 -> 0x1331E8 + signed int act; // r2 + signed int i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001331F0 -> 0x00133368 +*/ +// Range: 0x1331F0 -> 0x133368 +signed int zParamGetFloatList(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, signed int count /* r20 */, float * def /* r19 */, float * result /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1331F0 -> 0x133368 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133370 -> 0x00133418 +*/ +// Range: 0x133370 -> 0x133418 +float zParamGetFloat(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, float def /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133370 -> 0x133418 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133420 -> 0x001334C8 +*/ +// Range: 0x133420 -> 0x1334C8 +float zParamGetFloat(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, float def /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133420 -> 0x1334C8 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001334D0 -> 0x00133578 +*/ +// Range: 0x1334D0 -> 0x133578 +signed int zParamGetInt(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, signed int def /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1334D0 -> 0x133578 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133580 -> 0x00133628 +*/ +// Range: 0x133580 -> 0x133628 +signed int zParamGetInt(class xModelAssetParam * param /* r2 */, unsigned int size /* r2 */, char * tok /* r2 */, signed int def /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133580 -> 0x133628 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133630 -> 0x001336C8 +*/ +// Range: 0x133630 -> 0x1336C8 +class xModelAssetParam * zEntGetModelParams(unsigned int assetID /* r2 */, unsigned int * size /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133630 -> 0x1336C8 + unsigned int bufsize; // r29+0x2C + void * info; // r2 + class xModelAssetInfo * minf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001336D0 -> 0x001339E8 +*/ +// Range: 0x1336D0 -> 0x1339E8 +void zEntAnimEvent_AutoAnim(class zEnt * ent /* r20 */, unsigned int animEvent /* r19 */, float * animParam /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1336D0 -> 0x1339E8 + class xAnimSingle * single; // r18 + signed int anum; // r17 + class xAnimTable * tab; // r2 + class xAnimState * ast; // r2 + class xAnimTable * tab; // r2 + class xAnimState * ast; // r2 + signed int anum1; // r17 + signed int anum2; // r19 + signed int anum; // r17 + class xAnimTable * tab; // r2 + class xAnimState * ast; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001339F0 -> 0x00133BAC +*/ +// Range: 0x1339F0 -> 0x133BAC +class xAnimTable * xEnt_AnimTable_AutoEventSmall() { + // Blocks + /* anonymous block */ { + // Range: 0x1339F0 -> 0x133BAC + signed int i; // r18 + char * * names; // r20 + class xAnimTransition * deftran; // r19 + class xAnimTable * table; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133BB0 -> 0x00133F8C +*/ +// Range: 0x133BB0 -> 0x133F8C +void zEntAnimEvent(class zEnt * ent /* r19 */, unsigned int animEvent /* r16 */, float * animParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133BB0 -> 0x133F8C + class xAnimPlay * play; // r18 + class xAnimSingle * single; // r17 + signed int anum; // r2 + char name[12]; // r29+0xA0 + class xAnimState * ast; // r2 + char name[12]; // r29+0x90 + class xAnimState * ast; // r2 + signed int anum1; // r16 + signed int anum2; // r20 + signed int anum; // r2 + char name[12]; // r29+0x80 + class xAnimState * ast; // r2 + signed int anum; // r16 + float prob; // r20 + char name[12]; // r29+0x70 + class xAnimState * ast; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00133F90 -> 0x00134004 +*/ +// Range: 0x133F90 -> 0x134004 +void zEntParseModelInfo(class xEnt * ent /* r17 */, unsigned int assetID /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x133F90 -> 0x134004 + unsigned int bufsize; // r29+0x3C + void * info; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134010 -> 0x00134240 +*/ +// Range: 0x134010 -> 0x134240 +class xModelInstance * zEntRecurseModelInfo(void * info /* r2 */, class xEnt * ent /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134010 -> 0x134240 + unsigned int i; // r20 + unsigned int bufsize; // r29+0x17C + class RpAtomic * imodel; // r19 + class xModelInstance * tempInst[64]; // r29+0x70 + class xModelAssetInfo * zinfo; // r18 + class xModelAssetInst * zinst; // r17 + class xAnimTable * table; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134240 -> 0x001342F0 +*/ +// Range: 0x134240 -> 0x1342F0 +void zEntEventAllOfType(unsigned int toEvent /* r20 */, unsigned int type /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134240 -> 0x1342F0 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001342F0 -> 0x001343A8 +*/ +// Range: 0x1342F0 -> 0x1343A8 +void zEntEventAll(class xBase * from /* r22 */, unsigned int fromEvent /* r21 */, unsigned int toEvent /* r20 */, float * toParam /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1342F0 -> 0x1343A8 + class zScene * s; // r18 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001343B0 -> 0x001343B8 +*/ +// Range: 0x1343B0 -> 0x1343B8 +void zEntUpdate(class zEnt * ent /* r2 */, class zScene * scene /* r2 */, float elapsedSec /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1343B0 -> 0x1343B8 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001343C0 -> 0x00134618 +*/ +// Range: 0x1343C0 -> 0x134618 +void zEntReset(class zEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1343C0 -> 0x134618 + class xAnimState * ast; // r2 + class xAnimSingle * single; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134660 -> 0x00134668 +*/ +// Range: 0x134660 -> 0x134668 +void zEntLoad(class zEnt * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134660 -> 0x134668 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134670 -> 0x00134678 +*/ +// Range: 0x134670 -> 0x134678 +void zEntSave(class zEnt * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134670 -> 0x134678 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134680 -> 0x00134800 +*/ +// Range: 0x134680 -> 0x134800 +void zEntSetup(class zEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134680 -> 0x134800 + } +} + +/* + Compile unit: C:\SB\Game\zEnt.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134800 -> 0x00134F58 +*/ +// Range: 0x134800 -> 0x134F58 +void zEntInit(class zEnt * ent /* r18 */, class xEntAsset * asset /* r17 */, unsigned int type /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134800 -> 0x134F58 + signed int num_used; // r2 + class xAnimState * ast; // r2 + class xAnimSingle * single; // r4 + } +} + diff --git a/dwarf/SB/Game/zEntButton.cpp b/dwarf/SB/Game/zEntButton.cpp new file mode 100644 index 000000000..6d2190ea9 --- /dev/null +++ b/dwarf/SB/Game/zEntButton.cpp @@ -0,0 +1,2971 @@ +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static float sRedMultiplier; // size: 0x4, address: 0x50E630 +static float sGreenMultiplier; // size: 0x4, address: 0x50E634 +static float sBlueMultiplier; // size: 0x4, address: 0x50E638 +static float sColorMultiplier; // size: 0x4, address: 0x50E63C +static signed int sColorMultiplierSign; // size: 0x4, address: 0x50E640 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zEntButtonEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x134F60 +void zEntButton_Render(class _zEntButton *); // size: 0x0, address: 0x1356D0 +void zEntButton_Move(class _zEntButton *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x135BC0 +void zEntButton_Update(class _zEntButton *, class xScene *, float); // size: 0x0, address: 0x135770 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class _zEntButton : public zEnt { + // total size: 0x190 +public: + class zEntButtonAsset * basset; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned int state; // offset 0x160, size 0x4 + float speed; // offset 0x164, size 0x4 + unsigned int oldState; // offset 0x168, size 0x4 + signed int oldMotState; // offset 0x16C, size 0x4 + float counter; // offset 0x170, size 0x4 + class xModelInstance * modelPressed; // offset 0x174, size 0x4 + float holdTimer; // offset 0x178, size 0x4 + unsigned int hold; // offset 0x17C, size 0x4 + float topHeight; // offset 0x180, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zEntButtonAsset { + // total size: 0x18 +public: + unsigned int modelPressedInfoID; // offset 0x0, size 0x4 + unsigned int actMethod; // offset 0x4, size 0x4 + signed int initButtonState; // offset 0x8, size 0x4 + signed int isReset; // offset 0xC, size 0x4 + float resetDelay; // offset 0x10, size 0x4 + unsigned int buttonActFlags; // offset 0x14, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00134F60 -> 0x001353D0 +*/ +// Range: 0x134F60 -> 0x1353D0 +signed int zEntButtonEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r17 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x134F60 -> 0x1353D0 + class _zEntButton * s; // r16 + class FloatAndVoid dist; // r29+0x3C + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001353D0 -> 0x00135474 +*/ +// Range: 0x1353D0 -> 0x135474 +void zEntButton_SceneUpdate(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1353D0 -> 0x135474 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135480 -> 0x001355C8 +*/ +// Range: 0x135480 -> 0x1355C8 +void zEntButton_Hold(class _zEntButton * ent /* r16 */, unsigned int mask /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135480 -> 0x1355C8 + class xVec3 * player; // r2 + class xBound * bound; // r18 + class xVec3 lv; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001355D0 -> 0x001356D0 +*/ +// Range: 0x1355D0 -> 0x1356D0 +void zEntButton_Press(class _zEntButton * ent /* r2 */, unsigned int mask /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1355D0 -> 0x1356D0 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001356D0 -> 0x00135768 +*/ +// Range: 0x1356D0 -> 0x135768 +void zEntButton_Render(class _zEntButton * ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1356D0 -> 0x135768 + class xModelInstance * model; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135770 -> 0x001359B4 +*/ +// Range: 0x135770 -> 0x1359B4 +void zEntButton_Update(class _zEntButton * ent /* r16 */, class xScene * sc /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135770 -> 0x1359B4 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001359C0 -> 0x00135A90 +*/ +// Range: 0x1359C0 -> 0x135A90 +void zEntButton_Reset(class _zEntButton * ent /* r16 */, class xScene * sc /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1359C0 -> 0x135A90 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135A90 -> 0x00135B04 +*/ +// Range: 0x135A90 -> 0x135B04 +void zEntButton_Load(class _zEntButton * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135A90 -> 0x135B04 + signed int pressed; // r29+0x3C + signed int pushing; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135B10 -> 0x00135BA4 +*/ +// Range: 0x135B10 -> 0x135BA4 +void zEntButton_Save(class _zEntButton * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135B10 -> 0x135BA4 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135BB0 -> 0x00135BB8 +*/ +// Range: 0x135BB0 -> 0x135BB8 +void zEntButton_Setup(class _zEntButton * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135BB0 -> 0x135BB8 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135BC0 -> 0x00135C50 +*/ +// Range: 0x135BC0 -> 0x135C50 +void zEntButton_Move(class _zEntButton * ent /* r2 */, class xScene * s /* r2 */, float dt /* r29 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135BC0 -> 0x135C50 + class xEntFrame * dframe; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135C50 -> 0x00135DF0 +*/ +// Range: 0x135C50 -> 0x135DF0 +void zEntButton_Init(class _zEntButton * ent /* r17 */, class xEntAsset * asset /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135C50 -> 0x135DF0 + class zEntButtonAsset * passet; // r2 + class xEntMotionAsset * emasset; // r16 + unsigned int bufsize; // r29+0x5C + void * info; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntButton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135DF0 -> 0x00135DF8 +*/ +// Range: 0x135DF0 -> 0x135DF8 +void zEntButton_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135DF0 -> 0x135DF8 + } +} + diff --git a/dwarf/SB/Game/zEntCruiseBubble.cpp b/dwarf/SB/Game/zEntCruiseBubble.cpp new file mode 100644 index 000000000..8747f3d10 --- /dev/null +++ b/dwarf/SB/Game/zEntCruiseBubble.cpp @@ -0,0 +1,6395 @@ +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x4FBD10 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class tweak_group normal_tweak; // size: 0x1B8, address: 0x5CA630 +static class tweak_group cheat_tweak; // size: 0x1B8, address: 0x5CA7F0 +static class tweak_group * current_tweak; // size: 0x4, address: 0x50EF3C +static class xBase base; // size: 0x10, address: 0x4DCE60 +static char * start_anim_states[37]; // size: 0x94, address: 0x4DCE70 +static class /* @class */ { + // total size: 0x1A0 +public: + signed int flags; // offset 0x0, size 0x4 + class state_type * state[3]; // offset 0x4, size 0xC + class state_type * states[12]; // offset 0x10, size 0x30 + class xVec2 last_sp; // offset 0x40, size 0x8 + class xVec2 sp; // offset 0x48, size 0x8 + class xVec3 hit_loc; // offset 0x50, size 0xC + class xVec3 hit_norm; // offset 0x5C, size 0xC + class xModelInstance * missle_model; // offset 0x68, size 0x4 + class xEnt * hits[32]; // offset 0x6C, size 0x80 + signed int hits_size; // offset 0xEC, size 0x4 + unsigned int player_health; // offset 0xF0, size 0x4 + class xVec3 player_motion; // offset 0xF4, size 0xC + float fov_default; // offset 0x100, size 0x4 + class zShrapnelAsset * droplet_shrapnel; // offset 0x104, size 0x4 + float dialog_freq; // offset 0x108, size 0x4 + class /* @class */ { + // total size: 0x60 + public: + float samples; // offset 0x0, size 0x4 + float bubbles; // offset 0x4, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 + class xQuat dir; // offset 0x50, size 0x10 + } trail; // offset 0x110, size 0x60 + class /* @class */ { + // total size: 0x14 + public: + class /* @class */ { + // total size: 0xC + public: + class xAnimState * aim; // offset 0x0, size 0x4 + class xAnimState * fire; // offset 0x4, size 0x4 + class xAnimState * idle; // offset 0x8, size 0x4 + } player; // offset 0x0, size 0xC + class /* @class */ { + // total size: 0x8 + public: + class xAnimState * fire; // offset 0x0, size 0x4 + class xAnimState * fly; // offset 0x4, size 0x4 + } missle; // offset 0xC, size 0x8 + } astate; // offset 0x170, size 0x14 + class /* @class */ { + // total size: 0x14 + public: + class /* @class */ { + // total size: 0x10 + public: + class xAnimTransition * aim; // offset 0x0, size 0x4 + class xAnimTransition * fire; // offset 0x4, size 0x4 + class xAnimTransition * idle; // offset 0x8, size 0x4 + class xAnimTransition * end; // offset 0xC, size 0x4 + } player; // offset 0x0, size 0x10 + class /* @class */ { + // total size: 0x4 + public: + class xAnimTransition * fly; // offset 0x0, size 0x4 + } missle; // offset 0x10, size 0x4 + } atran; // offset 0x184, size 0x14 +} shared; // size: 0x1A0, address: 0x4DCF10 +static class xMat4x3 start_cam_mat; // size: 0x40, address: 0x5CA9B0 +static class fixed_queue missle_record; // size: 0x808, address: 0x5CA9F0 +static class xFXRibbon wake_ribbon[2]; // size: 0x280, address: 0x5CB200 +static class xDecalEmitter explode_decal; // size: 0x68, address: 0x5CB480 +static class curve_node wake_ribbon_curve[2]; // size: 0x18, address: 0x4FBD20 +static class curve_node cheat_wake_ribbon_curve[2]; // size: 0x18, address: 0x4FBD40 +static class curve_node explode_curve[3]; // size: 0x24, address: 0x4FBD60 +static class curve_node cheat_explode_curve[3]; // size: 0x24, address: 0x4FBD90 +static class sound_config sounds[4]; // size: 0xA0, address: 0x4DD0B0 +static class quadrant_set qzone; // size: 0x14, address: 0x5CB4F0 +static class /* @class */ { + // total size: 0x690 +public: + unsigned char hiding; // offset 0x0, size 0x1 + float alpha; // offset 0x4, size 0x4 + float alpha_vel; // offset 0x8, size 0x4 + float glow; // offset 0xC, size 0x4 + float glow_vel; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + class xModelInstance * reticle; // offset 0x0, size 0x4 + class xModelInstance * target; // offset 0x4, size 0x4 + class xModelInstance * swirl; // offset 0x8, size 0x4 + class xModelInstance * wind; // offset 0xC, size 0x4 + } model; // offset 0x14, size 0x10 + class hud_gizmo gizmo[33]; // offset 0x24, size 0x630 + unsigned int gizmos_used; // offset 0x654, size 0x4 + class uv_animated_model uv_swirl; // offset 0x658, size 0x1C + class uv_animated_model uv_wind; // offset 0x674, size 0x1C +} hud; // size: 0x690, address: 0x5CB890 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +unsigned int check_anim_aim(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2A4020 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * custom_bubble_render(class RpAtomic *); // size: 0x0, address: 0x2A6BE0 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +struct /* @anon0 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@20state_camera_restore; // size: 0x1C, address: 0x508E60 +struct /* @anon5 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@10state_type; // size: 0x1C, address: 0x0 +struct /* @anon6 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@19state_camera_survey; // size: 0x1C, address: 0x508E80 +struct /* @anon1 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@19state_camera_attach; // size: 0x1C, address: 0x508EA0 +struct /* @anon9 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@18state_camera_seize; // size: 0x1C, address: 0x508EC0 +struct /* @anon10 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@16state_camera_aim; // size: 0x1C, address: 0x508EE0 +struct /* @anon3 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@20state_missle_explode; // size: 0x1C, address: 0x508F00 +struct /* @anon7 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@16state_missle_fly; // size: 0x1C, address: 0x508F20 +struct /* @anon2 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@19state_missle_appear; // size: 0x1C, address: 0x508F40 +struct /* @anon4 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@17state_player_wait; // size: 0x1C, address: 0x508F60 +struct /* @anon8 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@17state_player_fire; // size: 0x1C, address: 0x508F80 +struct /* @anon11 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@16state_player_aim; // size: 0x1C, address: 0x508FA0 +struct /* @anon12 */ { + // total size: 0x1C +} __vt__Q313cruise_bubble30@unnamed@zEntCruiseBubble_cpp@17state_player_halt; // size: 0x1C, address: 0x508FC0 +class RpAtomic * (* gAtomicRenderCallBack)(class RpAtomic *); // size: 0x4, address: 0x50F9BC +unsigned int gFXSurfaceFlags; // size: 0x4, address: 0x50F4D8 +class xVec3 m_UnitAxisY; // size: 0xC, address: 0x4F9980 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +unsigned char hazard_check(class NPCHazard &, void *); // size: 0x0, address: 0x2A8740 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +void SweptSphereHitsCameraEnt(class xScene *, class xRay3 *, class xQCData *, class xEnt *, void *); // size: 0x0, address: 0x1C4520 +void cb_droplet(class zFrag *, class zFragAsset *); // size: 0x0, address: 0x2A9C30 +unsigned char hazard_check(class NPCHazard &, void *); // size: 0x0, address: 0x2AA3B0 +unsigned char hazard_check(class NPCHazard &, void *); // size: 0x0, address: 0x2AB420 +signed int gGridIterActive; // size: 0x4, address: 0x50FFC8 +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class fixed_queue { + // total size: 0x808 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _last; // offset 0x4, size 0x4 + class missle_record_data _buffer[128]; // offset 0x8, size 0x800 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float halt_time; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float turn_speed; // offset 0x0, size 0x4 + float anim_delta; // offset 0x4, size 0x4 + } aim; // offset 0x4, size 0x8 + class /* @class */ { + // total size: 0x4 + public: + float delay_wand; // offset 0x0, size 0x4 + } fire; // offset 0xC, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class state_player_fire : public state_type { + // total size: 0xC +public: + unsigned char wand_shown; // offset 0x8, size 0x1 +}; +class missle_record_data { + // total size: 0x10 +public: + class xVec3 loc; // offset 0x0, size 0xC + float roll; // offset 0xC, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class iterator { + // total size: 0x8 +public: + unsigned int _it; // offset 0x0, size 0x4 + class fixed_queue * _owner; // offset 0x4, size 0x4 +}; +class xPlatformFMData { + // total size: 0x4 +public: + signed int nothingyet; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class hud_gizmo { + // total size: 0x30 +public: + signed int flags; // offset 0x0, size 0x4 + class basic_rect bound; // offset 0x4, size 0x10 + float alpha; // offset 0x14, size 0x4 + float alpha_vel; // offset 0x18, size 0x4 + float glow; // offset 0x1C, size 0x4 + float glow_vel; // offset 0x20, size 0x4 + float opacity; // offset 0x24, size 0x4 + class xVec3 * target; // offset 0x28, size 0x4 + class xModelInstance * model; // offset 0x2C, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class state_camera_aim : public state_type { + // total size: 0x50 +public: + float phi; // offset 0x8, size 0x4 + float phi_vel; // offset 0xC, size 0x4 + float height; // offset 0x10, size 0x4 + float height_vel; // offset 0x14, size 0x4 + float dist; // offset 0x18, size 0x4 + float dist_vel; // offset 0x1C, size 0x4 + class xQuat facing; // offset 0x20, size 0x10 + class xQuat target; // offset 0x30, size 0x10 + float control_delay; // offset 0x40, size 0x4 + float seize_delay; // offset 0x44, size 0x4 +}; +class tier_queue { + // total size: 0x110 +public: + unsigned int first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int wrap_mask; // offset 0x8, size 0x4 + class tier_queue_allocator * alloc; // offset 0xC, size 0x4 + unsigned char blocks[256]; // offset 0x10, size 0x100 +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x1C +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xPlatformFallingData { + // total size: 0x8 +public: + float speed; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float turn_speed; // offset 0x0, size 0x4 + float anim_delta; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class state_player_halt : public state_type { + // total size: 0x1C +public: + unsigned char first_update; // offset 0x8, size 0x1 + float time; // offset 0xC, size 0x4 + class xVec3 last_motion; // offset 0x10, size 0xC +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xPlatformAsset { + // total size: 0x3C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char pad; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xPlatformERData er; // offset 0x4, size 0x4 + class xPlatformOrbitData orb; // offset 0x4, size 0x4 + class xPlatformSplineData spl; // offset 0x4, size 0x4 + class xPlatformMPData mp; // offset 0x4, size 0x4 + class xPlatformMechData mech; // offset 0x4, size 0x4 + class xPlatformPenData pen; // offset 0x4, size 0x4 + class xPlatformConvBeltData cb; // offset 0x4, size 0x4 + class xPlatformFallingData fall; // offset 0x4, size 0x8 + class xPlatformFRData fr; // offset 0x4, size 0x10 + class xPlatformBreakawayData ba; // offset 0x4, size 0x10 + class xPlatformSpringboardData sb; // offset 0x4, size 0x2C + class xPlatformTeeterData teet; // offset 0x4, size 0xC + class xPlatformPaddleData paddle; // offset 0x4, size 0x38 + class xPlatformFMData fm; // offset 0x4, size 0x4 + }; +}; +class /* @class */ { + // total size: 0xC +public: + float size; // offset 0x0, size 0x4 + float du; // offset 0x4, size 0x4 + float dv; // offset 0x8, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + class /* @class */ { + // total size: 0xC + public: + class xAnimState * aim; // offset 0x0, size 0x4 + class xAnimState * fire; // offset 0x4, size 0x4 + class xAnimState * idle; // offset 0x8, size 0x4 + } player; // offset 0x0, size 0xC + class /* @class */ { + // total size: 0x8 + public: + class xAnimState * fire; // offset 0x0, size 0x4 + class xAnimState * fly; // offset 0x4, size 0x4 + } missle; // offset 0xC, size 0x8 +}; +struct /* @anon1 */ { + // total size: 0x1C +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class /* @class */ { + // total size: 0xC +public: + class xAnimState * aim; // offset 0x0, size 0x4 + class xAnimState * fire; // offset 0x4, size 0x4 + class xAnimState * idle; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class state_missle_explode : public state_type { + // total size: 0xC +public: + float hit_time; // offset 0x8, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class state_camera_attach : public state_type { + // total size: 0xC +public: + float reticle_delay; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class state_missle_fly : public state_type { + // total size: 0x3C +public: + float life; // offset 0x8, size 0x4 + float vel; // offset 0xC, size 0x4 + class xVec3 rot; // offset 0x10, size 0xC + class xVec3 rot_vel; // offset 0x1C, size 0xC + float engine_pitch; // offset 0x28, size 0x4 + class xVec3 last_loc; // offset 0x2C, size 0xC + float flash_time; // offset 0x38, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float dist_min; // offset 0x0, size 0x4 + float dist_max; // offset 0x4, size 0x4 + float ang_show; // offset 0x8, size 0x4 + float ang_hide; // offset 0xC, size 0x4 + float delay_retarget; // offset 0x10, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xFFX { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x5C +public: + class /* @class */ { + // total size: 0x24 + public: + float dist; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + float stick_decel; // offset 0x14, size 0x4 + float stick_accel; // offset 0x18, size 0x4 + float stick_max_vel; // offset 0x1C, size 0x4 + float turn_speed; // offset 0x20, size 0x4 + } aim; // offset 0x0, size 0x24 + class /* @class */ { + // total size: 0x14 + public: + float delay; // offset 0x0, size 0x4 + float blend_time; // offset 0x4, size 0x4 + float fade_dist; // offset 0x8, size 0x4 + float hide_dist; // offset 0xC, size 0x4 + float fov; // offset 0x10, size 0x4 + } seize; // offset 0x24, size 0x14 + class /* @class */ { + // total size: 0x20 + public: + float duration; // offset 0x0, size 0x4 + float min_duration; // offset 0x4, size 0x4 + float min_dist; // offset 0x8, size 0x4 + float cut_dist; // offset 0xC, size 0x4 + float drift_dist; // offset 0x10, size 0x4 + float drift_softness; // offset 0x14, size 0x4 + float jerk_offset; // offset 0x18, size 0x4 + float jerk_deflect; // offset 0x1C, size 0x4 + } survey; // offset 0x38, size 0x20 + class /* @class */ { + // total size: 0x4 + public: + float control_delay; // offset 0x0, size 0x4 + } restore; // offset 0x58, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x1C +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +struct /* @anon3 */ { + // total size: 0x1C +}; +class xModelAssetInfo { + // total size: 0x0 +}; +class xPlatformFRData { + // total size: 0x10 +public: + float fspeed; // offset 0x0, size 0x4 + float rspeed; // offset 0x4, size 0x4 + float ret_delay; // offset 0x8, size 0x4 + float post_ret_delay; // offset 0xC, size 0x4 +}; +class state_missle_appear : public state_type { + // total size: 0x8 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0x4 +public: + float delay_wand; // offset 0x0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + float size; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x24 +public: + float dist; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + float stick_decel; // offset 0x14, size 0x4 + float stick_accel; // offset 0x18, size 0x4 + float stick_max_vel; // offset 0x1C, size 0x4 + float turn_speed; // offset 0x20, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class xPSYNote { + // total size: 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class tier_queue_allocator { + // total size: 0x1C +public: + class block_data * blocks; // offset 0x0, size 0x4 + unsigned int _unit_size; // offset 0x4, size 0x4 + unsigned int _block_size; // offset 0x8, size 0x4 + unsigned int _block_size_shift; // offset 0xC, size 0x4 + unsigned int _max_blocks; // offset 0x10, size 0x4 + unsigned int _max_blocks_shift; // offset 0x14, size 0x4 + unsigned char head; // offset 0x18, size 0x1 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class cb_damage_ent { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zEntTrigger : public zEnt { + // total size: 0x140 +public: + class xMat4x3 triggerMatrix; // offset 0xE0, size 0x40 + class xBox triggerBox; // offset 0x120, size 0x18 + unsigned int entered; // offset 0x138, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + class xAnimState * fire; // offset 0x0, size 0x4 + class xAnimState * fly; // offset 0x4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class /* @class */ { + // total size: 0x690 +public: + unsigned char hiding; // offset 0x0, size 0x1 + float alpha; // offset 0x4, size 0x4 + float alpha_vel; // offset 0x8, size 0x4 + float glow; // offset 0xC, size 0x4 + float glow_vel; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + class xModelInstance * reticle; // offset 0x0, size 0x4 + class xModelInstance * target; // offset 0x4, size 0x4 + class xModelInstance * swirl; // offset 0x8, size 0x4 + class xModelInstance * wind; // offset 0xC, size 0x4 + } model; // offset 0x14, size 0x10 + class hud_gizmo gizmo[33]; // offset 0x24, size 0x630 + unsigned int gizmos_used; // offset 0x654, size 0x4 + class uv_animated_model uv_swirl; // offset 0x658, size 0x1C + class uv_animated_model uv_wind; // offset 0x674, size 0x1C +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class state_camera_seize : public state_type { + // total size: 0x60 +public: + float blend_time; // offset 0x8, size 0x4 + class xVec3 start_loc; // offset 0xC, size 0xC + class xQuat start_dir; // offset 0x20, size 0x10 + class xQuat end_dir; // offset 0x30, size 0x10 + class xQuat cur_dir; // offset 0x40, size 0x10 + float last_s; // offset 0x50, size 0x4 + float fov; // offset 0x54, size 0x4 + float wipe_bubbles; // offset 0x58, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + float size; // offset 0x0, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class state_player_aim : public state_type { + // total size: 0x14 +public: + float yaw; // offset 0x8, size 0x4 + float yaw_vel; // offset 0xC, size 0x4 + float turn_delay; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x1C +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class uv_animated_model { + // total size: 0x1C +public: + class RpAtomic * model; // offset 0x0, size 0x4 + class RwTexCoords * uv; // offset 0x4, size 0x4 + signed int uvsize; // offset 0x8, size 0x4 + class xVec2 offset; // offset 0xC, size 0x8 + class xVec2 offset_vel; // offset 0x14, size 0x8 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xPlatformBreakawayData { + // total size: 0x10 +public: + float ba_delay; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 + float reset_delay; // offset 0x8, size 0x4 + unsigned int breakflags; // offset 0xC, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xParGroup { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x10 +public: + float sample_rate; // offset 0x0, size 0x4 + float bubble_rate; // offset 0x4, size 0x4 + float bubble_emit_radius; // offset 0x8, size 0x4 + float wake_emit_radius; // offset 0xC, size 0x4 +}; +class xPlatformERData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +enum thread_enum { + THREAD_PLAYER = 0, + THREAD_MISSLE = 1, + THREAD_CAMERA = 2, + MAX_THREAD = 3, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + class xModelInstance * reticle; // offset 0x0, size 0x4 + class xModelInstance * target; // offset 0x4, size 0x4 + class xModelInstance * swirl; // offset 0x8, size 0x4 + class xModelInstance * wind; // offset 0xC, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class /* @class */ { + // total size: 0x5C +public: + float life; // offset 0x0, size 0x4 + float hit_dist; // offset 0x4, size 0x4 + float crash_angle; // offset 0x8, size 0x4 + float collide_twist; // offset 0xC, size 0x4 + signed int hit_tests; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + float delay_show; // offset 0x0, size 0x4 + float delay_fly; // offset 0x4, size 0x4 + class xVec3 offset; // offset 0x8, size 0xC + } appear; // offset 0x14, size 0x14 + class /* @class */ { + // total size: 0x2C + public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float engine_pitch_max; // offset 0x8, size 0x4 + float engine_pitch_sensitivity; // offset 0xC, size 0x4 + float flash_interval; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + float xdelta; // offset 0x0, size 0x4 + float ydelta; // offset 0x4, size 0x4 + float xdecay; // offset 0x8, size 0x4 + float ydecay; // offset 0xC, size 0x4 + float ybound; // offset 0x10, size 0x4 + float roll_frac; // offset 0x14, size 0x4 + } turn; // offset 0x14, size 0x18 + } fly; // offset 0x28, size 0x2C + class /* @class */ { + // total size: 0x8 + public: + float hit_radius; // offset 0x0, size 0x4 + float hit_duration; // offset 0x4, size 0x4 + } explode; // offset 0x54, size 0x8 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class state_camera_restore : public state_type { + // total size: 0xC +public: + float control_delay; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + signed int font; // offset 0x0, size 0x4 + float font_width; // offset 0x4, size 0x4 + float font_height; // offset 0x8, size 0x4 + float x; // offset 0xC, size 0x4 + float y; // offset 0x10, size 0x4 + float glow_size; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float delay; // offset 0x0, size 0x4 + float blend_time; // offset 0x4, size 0x4 + float fade_dist; // offset 0x8, size 0x4 + float hide_dist; // offset 0xC, size 0x4 + float fov; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +class state_camera_survey : public state_type { + // total size: 0x210 +public: + float time; // offset 0x8, size 0x4 + class xVec2 start_sp; // offset 0xC, size 0x8 + float path_distance[127]; // offset 0x14, size 0x1FC +}; +class state_type { + // total size: 0x8 +public: + enum state_enum type; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class unit_data { + // total size: 0x50 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char curve_index; // offset 0x1, size 0x1 + unsigned char u; // offset 0x2, size 0x1 + unsigned char v; // offset 0x3, size 0x1 + float frac; // offset 0x4, size 0x4 + float age; // offset 0x8, size 0x4 + float cull_size; // offset 0xC, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RyzMemData { + // total size: 0x1 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + class /* @class */ { + // total size: 0x10 + public: + class xAnimTransition * aim; // offset 0x0, size 0x4 + class xAnimTransition * fire; // offset 0x4, size 0x4 + class xAnimTransition * idle; // offset 0x8, size 0x4 + class xAnimTransition * end; // offset 0xC, size 0x4 + } player; // offset 0x0, size 0x10 + class /* @class */ { + // total size: 0x4 + public: + class xAnimTransition * fly; // offset 0x0, size 0x4 + } missle; // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + BEGIN_STATE_PLAYER = 0, + BACKUP_STATE_PLAYER = -1, + STATE_PLAYER_HALT = 0, + STATE_PLAYER_AIM = 1, + STATE_PLAYER_FIRE = 2, + STATE_PLAYER_WAIT = 3, + END_STATE_PLAYER = 4, + BEGIN_STATE_MISSLE = 4, + BACKUP_STATE_MISSLE = 3, + STATE_MISSLE_APPEAR = 4, + STATE_MISSLE_FLY = 5, + STATE_MISSLE_EXPLODE = 6, + END_STATE_MISSLE = 7, + BEGIN_STATE_CAMERA = 7, + BACKUP_STATE_CAMERA = 6, + STATE_CAMERA_AIM = 7, + STATE_CAMERA_SEIZE = 8, + STATE_CAMERA_ATTACH = 9, + STATE_CAMERA_SURVEY = 10, + STATE_CAMERA_RESTORE = 11, + END_STATE_CAMERA = 12, + MAX_STATE = 12, +}; +class xPlatformOrbitData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float delay_show; // offset 0x0, size 0x4 + float delay_fly; // offset 0x4, size 0x4 + class xVec3 offset; // offset 0x8, size 0xC +}; +class xPlatformSpringboardData { + // total size: 0x2C +public: + float jmph[3]; // offset 0x0, size 0xC + float jmpbounce; // offset 0xC, size 0x4 + unsigned int animID[3]; // offset 0x10, size 0xC + class xVec3 jmpdir; // offset 0x1C, size 0xC + unsigned int springflags; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + class xAnimTransition * aim; // offset 0x0, size 0x4 + class xAnimTransition * fire; // offset 0x4, size 0x4 + class xAnimTransition * idle; // offset 0x8, size 0x4 + class xAnimTransition * end; // offset 0xC, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x1C +}; +struct /* @anon6 */ { + // total size: 0x1C +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class sound_config { + // total size: 0x28 +public: + char * name; // offset 0x0, size 0x4 + float volume; // offset 0x4, size 0x4 + float radius_inner; // offset 0x8, size 0x4 + float radius_outer; // offset 0xC, size 0x4 + unsigned char streamed; // offset 0x10, size 0x1 + unsigned char looping; // offset 0x11, size 0x1 + enum _tagSDRumbleType rumble; // offset 0x14, size 0x4 + signed int first; // offset 0x18, size 0x4 + signed int last; // offset 0x1C, size 0x4 + unsigned int id; // offset 0x20, size 0x4 + unsigned int handle; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int emit; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float rand_vel; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +struct /* @anon7 */ { + // total size: 0x1C +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xPlatformSplineData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xParSys { + // total size: 0x0 +}; +class block_data { + // total size: 0x8 +public: + unsigned char prev; // offset 0x0, size 0x1 + unsigned char next; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x20 +public: + float duration; // offset 0x0, size 0x4 + float min_duration; // offset 0x4, size 0x4 + float min_dist; // offset 0x8, size 0x4 + float cut_dist; // offset 0xC, size 0x4 + float drift_dist; // offset 0x10, size 0x4 + float drift_softness; // offset 0x14, size 0x4 + float jerk_offset; // offset 0x18, size 0x4 + float jerk_deflect; // offset 0x1C, size 0x4 +}; +class tweak_group { + // total size: 0x1B8 +public: + float aim_delay; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float halt_time; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float turn_speed; // offset 0x0, size 0x4 + float anim_delta; // offset 0x4, size 0x4 + } aim; // offset 0x4, size 0x8 + class /* @class */ { + // total size: 0x4 + public: + float delay_wand; // offset 0x0, size 0x4 + } fire; // offset 0xC, size 0x4 + } player; // offset 0x4, size 0x10 + class /* @class */ { + // total size: 0x5C + public: + float life; // offset 0x0, size 0x4 + float hit_dist; // offset 0x4, size 0x4 + float crash_angle; // offset 0x8, size 0x4 + float collide_twist; // offset 0xC, size 0x4 + signed int hit_tests; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + float delay_show; // offset 0x0, size 0x4 + float delay_fly; // offset 0x4, size 0x4 + class xVec3 offset; // offset 0x8, size 0xC + } appear; // offset 0x14, size 0x14 + class /* @class */ { + // total size: 0x2C + public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float engine_pitch_max; // offset 0x8, size 0x4 + float engine_pitch_sensitivity; // offset 0xC, size 0x4 + float flash_interval; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + float xdelta; // offset 0x0, size 0x4 + float ydelta; // offset 0x4, size 0x4 + float xdecay; // offset 0x8, size 0x4 + float ydecay; // offset 0xC, size 0x4 + float ybound; // offset 0x10, size 0x4 + float roll_frac; // offset 0x14, size 0x4 + } turn; // offset 0x14, size 0x18 + } fly; // offset 0x28, size 0x2C + class /* @class */ { + // total size: 0x8 + public: + float hit_radius; // offset 0x0, size 0x4 + float hit_duration; // offset 0x4, size 0x4 + } explode; // offset 0x54, size 0x8 + } missle; // offset 0x14, size 0x5C + class /* @class */ { + // total size: 0x5C + public: + class /* @class */ { + // total size: 0x24 + public: + float dist; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + float stick_decel; // offset 0x14, size 0x4 + float stick_accel; // offset 0x18, size 0x4 + float stick_max_vel; // offset 0x1C, size 0x4 + float turn_speed; // offset 0x20, size 0x4 + } aim; // offset 0x0, size 0x24 + class /* @class */ { + // total size: 0x14 + public: + float delay; // offset 0x0, size 0x4 + float blend_time; // offset 0x4, size 0x4 + float fade_dist; // offset 0x8, size 0x4 + float hide_dist; // offset 0xC, size 0x4 + float fov; // offset 0x10, size 0x4 + } seize; // offset 0x24, size 0x14 + class /* @class */ { + // total size: 0x20 + public: + float duration; // offset 0x0, size 0x4 + float min_duration; // offset 0x4, size 0x4 + float min_dist; // offset 0x8, size 0x4 + float cut_dist; // offset 0xC, size 0x4 + float drift_dist; // offset 0x10, size 0x4 + float drift_softness; // offset 0x14, size 0x4 + float jerk_offset; // offset 0x18, size 0x4 + float jerk_deflect; // offset 0x1C, size 0x4 + } survey; // offset 0x38, size 0x20 + class /* @class */ { + // total size: 0x4 + public: + float control_delay; // offset 0x0, size 0x4 + } restore; // offset 0x58, size 0x4 + } camera; // offset 0x70, size 0x5C + class /* @class */ { + // total size: 0x18 + public: + float env_alpha; // offset 0x0, size 0x4 + float env_coeff; // offset 0x4, size 0x4 + unsigned int env_texture; // offset 0x8, size 0x4 + float fresnel_alpha; // offset 0xC, size 0x4 + float fresnel_coeff; // offset 0x10, size 0x4 + unsigned int fresnel_texture; // offset 0x14, size 0x4 + } material; // offset 0xCC, size 0x18 + class /* @class */ { + // total size: 0x14 + public: + float dist_min; // offset 0x0, size 0x4 + float dist_max; // offset 0x4, size 0x4 + float ang_show; // offset 0x8, size 0x4 + float ang_hide; // offset 0xC, size 0x4 + float delay_retarget; // offset 0x10, size 0x4 + } reticle; // offset 0xE4, size 0x14 + class /* @class */ { + // total size: 0x10 + public: + float sample_rate; // offset 0x0, size 0x4 + float bubble_rate; // offset 0x4, size 0x4 + float bubble_emit_radius; // offset 0x8, size 0x4 + float wake_emit_radius; // offset 0xC, size 0x4 + } trail; // offset 0xF8, size 0x10 + class /* @class */ { + // total size: 0x10 + public: + unsigned int emit; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float rand_vel; // offset 0xC, size 0x4 + } blast; // offset 0x108, size 0x10 + class /* @class */ { + // total size: 0x24 + public: + float dist_min; // offset 0x0, size 0x4 + float dist_max; // offset 0x4, size 0x4 + unsigned int emit_min; // offset 0x8, size 0x4 + unsigned int emit_max; // offset 0xC, size 0x4 + float vel_min; // offset 0x10, size 0x4 + float vel_max; // offset 0x14, size 0x4 + float vel_perturb; // offset 0x18, size 0x4 + float vel_angle; // offset 0x1C, size 0x4 + float rot_vel_max; // offset 0x20, size 0x4 + } droplet; // offset 0x118, size 0x24 + class /* @class */ { + // total size: 0x44 + public: + float glow_size; // offset 0x0, size 0x4 + float time_fade; // offset 0x4, size 0x4 + float time_glow; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float size; // offset 0x0, size 0x4 + float du; // offset 0x4, size 0x4 + float dv; // offset 0x8, size 0x4 + } swirl; // offset 0xC, size 0xC + class /* @class */ { + // total size: 0xC + public: + float size; // offset 0x0, size 0x4 + float du; // offset 0x4, size 0x4 + float dv; // offset 0x8, size 0x4 + } wind; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x4 + public: + float size; // offset 0x0, size 0x4 + } reticle; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + float size; // offset 0x0, size 0x4 + } target; // offset 0x28, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + signed int font; // offset 0x0, size 0x4 + float font_width; // offset 0x4, size 0x4 + float font_height; // offset 0x8, size 0x4 + float x; // offset 0xC, size 0x4 + float y; // offset 0x10, size 0x4 + float glow_size; // offset 0x14, size 0x4 + } timer; // offset 0x2C, size 0x18 + } hud; // offset 0x13C, size 0x44 + class /* @class */ { + // total size: 0xC + public: + float freq; // offset 0x0, size 0x4 + float decay; // offset 0x4, size 0x4 + float min_freq; // offset 0x8, size 0x4 + } dialog; // offset 0x180, size 0xC + void * context; // offset 0x18C, size 0x4 + class tweak_callback cb_missle_model; // offset 0x190, size 0x28 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xDecalEmitter { + // total size: 0x68 +public: + class config cfg; // offset 0x0, size 0x28 + class /* @class */ { + // total size: 0x1C + public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 + } texture; // offset 0x28, size 0x1C + class static_queue units; // offset 0x44, size 0x14 + class curve_node * curve; // offset 0x58, size 0x4 + unsigned int curve_size; // offset 0x5C, size 0x4 + unsigned int curve_index; // offset 0x60, size 0x4 + float ilife; // offset 0x64, size 0x4 +}; +class /* @class */ { + // total size: 0x2C +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float engine_pitch_max; // offset 0x8, size 0x4 + float engine_pitch_sensitivity; // offset 0xC, size 0x4 + float flash_interval; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + float xdelta; // offset 0x0, size 0x4 + float ydelta; // offset 0x4, size 0x4 + float xdecay; // offset 0x8, size 0x4 + float ydecay; // offset 0xC, size 0x4 + float ybound; // offset 0x10, size 0x4 + float roll_frac; // offset 0x14, size 0x4 + } turn; // offset 0x14, size 0x18 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +struct /* @anon8 */ { + // total size: 0x1C +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + class xAnimTransition * fly; // offset 0x0, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float freq; // offset 0x0, size 0x4 + float decay; // offset 0x4, size 0x4 + float min_freq; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x24 +public: + float dist_min; // offset 0x0, size 0x4 + float dist_max; // offset 0x4, size 0x4 + unsigned int emit_min; // offset 0x8, size 0x4 + unsigned int emit_max; // offset 0xC, size 0x4 + float vel_min; // offset 0x10, size 0x4 + float vel_max; // offset 0x14, size 0x4 + float vel_perturb; // offset 0x18, size 0x4 + float vel_angle; // offset 0x1C, size 0x4 + float rot_vel_max; // offset 0x20, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xPlatformTeeterData { + // total size: 0xC +public: + float itilt; // offset 0x0, size 0x4 + float maxtilt; // offset 0x4, size 0x4 + float invmass; // offset 0x8, size 0x4 +}; +class xPlatformMPData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0x1A0 +public: + signed int flags; // offset 0x0, size 0x4 + class state_type * state[3]; // offset 0x4, size 0xC + class state_type * states[12]; // offset 0x10, size 0x30 + class xVec2 last_sp; // offset 0x40, size 0x8 + class xVec2 sp; // offset 0x48, size 0x8 + class xVec3 hit_loc; // offset 0x50, size 0xC + class xVec3 hit_norm; // offset 0x5C, size 0xC + class xModelInstance * missle_model; // offset 0x68, size 0x4 + class xEnt * hits[32]; // offset 0x6C, size 0x80 + signed int hits_size; // offset 0xEC, size 0x4 + unsigned int player_health; // offset 0xF0, size 0x4 + class xVec3 player_motion; // offset 0xF4, size 0xC + float fov_default; // offset 0x100, size 0x4 + class zShrapnelAsset * droplet_shrapnel; // offset 0x104, size 0x4 + float dialog_freq; // offset 0x108, size 0x4 + class /* @class */ { + // total size: 0x60 + public: + float samples; // offset 0x0, size 0x4 + float bubbles; // offset 0x4, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 + class xQuat dir; // offset 0x50, size 0x10 + } trail; // offset 0x110, size 0x60 + class /* @class */ { + // total size: 0x14 + public: + class /* @class */ { + // total size: 0xC + public: + class xAnimState * aim; // offset 0x0, size 0x4 + class xAnimState * fire; // offset 0x4, size 0x4 + class xAnimState * idle; // offset 0x8, size 0x4 + } player; // offset 0x0, size 0xC + class /* @class */ { + // total size: 0x8 + public: + class xAnimState * fire; // offset 0x0, size 0x4 + class xAnimState * fly; // offset 0x4, size 0x4 + } missle; // offset 0xC, size 0x8 + } astate; // offset 0x170, size 0x14 + class /* @class */ { + // total size: 0x14 + public: + class /* @class */ { + // total size: 0x10 + public: + class xAnimTransition * aim; // offset 0x0, size 0x4 + class xAnimTransition * fire; // offset 0x4, size 0x4 + class xAnimTransition * idle; // offset 0x8, size 0x4 + class xAnimTransition * end; // offset 0xC, size 0x4 + } player; // offset 0x0, size 0x10 + class /* @class */ { + // total size: 0x4 + public: + class xAnimTransition * fly; // offset 0x0, size 0x4 + } missle; // offset 0x10, size 0x4 + } atran; // offset 0x184, size 0x14 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum texture_mode { + TM_DEFAULT = 0, + TM_RANDOM = 1, + TM_CYCLE = 2, + MAX_TM = 3, + FORCE_INT_TM = -1, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xiMat4x3Union { + // total size: 0x40 +public: + union { // inferred + class xMat4x3 xm; // offset 0x0, size 0x40 + class RwMatrixTag im; // offset 0x0, size 0x40 + }; +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class state_player_wait : public state_type { + // total size: 0x8 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + float xdelta; // offset 0x0, size 0x4 + float ydelta; // offset 0x4, size 0x4 + float xdecay; // offset 0x8, size 0x4 + float ydecay; // offset 0xC, size 0x4 + float ybound; // offset 0x10, size 0x4 + float roll_frac; // offset 0x14, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +struct /* @anon9 */ { + // total size: 0x1C +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +class xPlatformMechData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class config { + // total size: 0x10 +public: + float life_time; // offset 0x0, size 0x4 + unsigned int blend_src; // offset 0x4, size 0x4 + unsigned int blend_dst; // offset 0x8, size 0x4 + float pivot; // offset 0xC, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + float control_delay; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +class config { + // total size: 0x28 +public: + unsigned int flags; // offset 0x0, size 0x4 + float life_time; // offset 0x4, size 0x4 + unsigned int blend_src; // offset 0x8, size 0x4 + unsigned int blend_dst; // offset 0xC, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 + } texture; // offset 0x10, size 0x18 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xPlatformPaddleData { + // total size: 0x38 +public: + signed int startOrient; // offset 0x0, size 0x4 + signed int countOrient; // offset 0x4, size 0x4 + float orientLoop; // offset 0x8, size 0x4 + float orient[6]; // offset 0xC, size 0x18 + unsigned int paddleFlags; // offset 0x24, size 0x4 + float rotateSpeed; // offset 0x28, size 0x4 + float accelTime; // offset 0x2C, size 0x4 + float decelTime; // offset 0x30, size 0x4 + float hubRadius; // offset 0x34, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class anim_coll_data { + // total size: 0x0 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xSweptSphere { + // total size: 0x150 +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 + float dist; // offset 0x1C, size 0x4 + class xiMat4x3Union basis; // offset 0x20, size 0x40 + class xiMat4x3Union invbasis; // offset 0x60, size 0x40 + class xBox box; // offset 0xA0, size 0x18 + class xQCData qcd; // offset 0xB8, size 0x20 + float boxsize; // offset 0xD8, size 0x4 + float curdist; // offset 0xDC, size 0x4 + class xVec3 contact; // offset 0xE0, size 0xC + class xVec3 polynorm; // offset 0xEC, size 0xC + unsigned int oid; // offset 0xF8, size 0x4 + void * optr; // offset 0xFC, size 0x4 + class xModelInstance * mptr; // offset 0x100, size 0x4 + signed int hitIt; // offset 0x104, size 0x4 + class xVec3 worldPos; // offset 0x108, size 0xC + class xVec3 worldContact; // offset 0x114, size 0xC + class xVec3 worldNormal; // offset 0x120, size 0xC + class xVec3 worldTangent; // offset 0x12C, size 0xC + class xVec3 worldPolynorm; // offset 0x138, size 0xC +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xFXRibbon { + // total size: 0x140 +public: + class config cfg; // offset 0x0, size 0x10 + unsigned char activated; // offset 0x10, size 0x1 + class RwRaster * raster; // offset 0x14, size 0x4 + class tier_queue joints; // offset 0x18, size 0x110 + class curve_node * curve; // offset 0x128, size 0x4 + unsigned int curve_size; // offset 0x12C, size 0x4 + unsigned int curve_index; // offset 0x130, size 0x4 + float ilife; // offset 0x134, size 0x4 + unsigned int mtime; // offset 0x138, size 0x4 + unsigned int mlife; // offset 0x13C, size 0x4 +}; +class xPlatformPenData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x44 +public: + float glow_size; // offset 0x0, size 0x4 + float time_fade; // offset 0x4, size 0x4 + float time_glow; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float size; // offset 0x0, size 0x4 + float du; // offset 0x4, size 0x4 + float dv; // offset 0x8, size 0x4 + } swirl; // offset 0xC, size 0xC + class /* @class */ { + // total size: 0xC + public: + float size; // offset 0x0, size 0x4 + float du; // offset 0x4, size 0x4 + float dv; // offset 0x8, size 0x4 + } wind; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x4 + public: + float size; // offset 0x0, size 0x4 + } reticle; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + float size; // offset 0x0, size 0x4 + } target; // offset 0x28, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + signed int font; // offset 0x0, size 0x4 + float font_width; // offset 0x4, size 0x4 + float font_height; // offset 0x8, size 0x4 + float x; // offset 0xC, size 0x4 + float y; // offset 0x10, size 0x4 + float glow_size; // offset 0x14, size 0x4 + } timer; // offset 0x2C, size 0x18 +}; +class /* @class */ { + // total size: 0x18 +public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x1C +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum _tagSDRumbleType { + SDR_None = 0, + SDR_Test = 1, + SDR_Damage = 2, + SDR_Bounce = 3, + SDR_EventLight = 4, + SDR_EventMedium = 5, + SDR_EventHeavy = 6, + SDR_DustDestroyedObj = 7, + SDR_XploDestroyedObj = 8, + SDR_WebDestroyed = 9, + SDR_Tiki = 10, + SDR_LassoDestroy = 11, + SDR_DamageByEGen = 12, + SDR_BounceHit = 13, + SDR_CruiseBubbleLaunch = 14, + SDR_CruiseBubbleExplode = 15, + SDR_TeleportStart = 16, + SDR_Teleport = 17, + SDR_TeleportEject = 18, + SDR_Total = 19, +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class quadrant_set { + // total size: 0x14 +public: + unsigned int index; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + unsigned int arcs; // offset 0x8, size 0x4 + float ring; // offset 0xC, size 0x4 + float arc; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x60 +public: + float samples; // offset 0x0, size 0x4 + float bubbles; // offset 0x4, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 + class xQuat dir; // offset 0x50, size 0x10 +}; +class /* @class */ { + // total size: 0xC +public: + float size; // offset 0x0, size 0x4 + float du; // offset 0x4, size 0x4 + float dv; // offset 0x8, size 0x4 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class unit_data * _buffer; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +struct /* @anon11 */ { + // total size: 0x1C +}; +class xPlatformConvBeltData { + // total size: 0x4 +public: + float speed; // offset 0x0, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0x1C +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + float env_alpha; // offset 0x0, size 0x4 + float env_coeff; // offset 0x4, size 0x4 + unsigned int env_texture; // offset 0x8, size 0x4 + float fresnel_alpha; // offset 0xC, size 0x4 + float fresnel_coeff; // offset 0x10, size 0x4 + unsigned int fresnel_texture; // offset 0x14, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float hit_radius; // offset 0x0, size 0x4 + float hit_duration; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0070 -> 0x002A01A8 +*/ +// Range: 0x2A0070 -> 0x2A01A8 +unsigned char event_handler(unsigned int event /* r2 */, float * fparam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A0070 -> 0x2A01A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A01B0 -> 0x002A0228 +*/ +// Range: 0x2A01B0 -> 0x2A0228 +class xEnt * * get_explode_hits(signed int & size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A01B0 -> 0x2A0228 + class state_missle_explode * state; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0230 -> 0x002A02B8 +*/ +// Range: 0x2A0230 -> 0x2A02B8 +void get_explode_sphere(class xVec3 & center /* r2 */, float & radius /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A0230 -> 0x2A02B8 + class state_missle_explode * state; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A02C0 -> 0x002A0308 +*/ +// Range: 0x2A02C0 -> 0x2A0308 +float exploding() { + // Blocks + /* anonymous block */ { + // Range: 0x2A02C0 -> 0x2A0308 + class state_missle_explode * state; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0310 -> 0x002A0324 +*/ +// Range: 0x2A0310 -> 0x2A0324 +unsigned char active() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0310 -> 0x2A0324 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0330 -> 0x002A0458 +*/ +// Range: 0x2A0330 -> 0x2A0458 +class xAnimTable * anim_table() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0330 -> 0x2A0458 + class xAnimTable & table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0460 -> 0x002A0748 +*/ +// Range: 0x2A0460 -> 0x2A0748 +void insert_player_animations(class xAnimTable & table /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A0460 -> 0x2A0748 + char * start_from; // r19 + char * s; // r18 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0750 -> 0x002A0784 +*/ +// Range: 0x2A0750 -> 0x2A0784 +void render_screen() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0750 -> 0x2A0784 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0790 -> 0x002A084C +*/ +// Range: 0x2A0790 -> 0x2A084C +unsigned char render() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0790 -> 0x2A084C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0850 -> 0x002A0858 +*/ +// Range: 0x2A0850 -> 0x2A0858 +static void render() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0850 -> 0x2A0858 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0860 -> 0x002A0A90 +*/ +// Range: 0x2A0860 -> 0x2A0A90 +unsigned char update(class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A0860 -> 0x2A0A90 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0A90 -> 0x002A0CC0 +*/ +// Range: 0x2A0A90 -> 0x2A0CC0 +void launch() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0A90 -> 0x2A0CC0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0CC0 -> 0x002A0CC8 +*/ +// Range: 0x2A0CC0 -> 0x2A0CC8 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0CC0 -> 0x2A0CC8 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0CD0 -> 0x002A0D04 +*/ +// Range: 0x2A0CD0 -> 0x2A0D04 +void reset() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0CD0 -> 0x2A0D04 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0D10 -> 0x002A0F34 +*/ +// Range: 0x2A0D10 -> 0x2A0F34 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0D10 -> 0x2A0F34 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0F40 -> 0x002A0FB8 +*/ +// Range: 0x2A0F40 -> 0x2A0FB8 +static void load_settings() { + // Blocks + /* anonymous block */ { + // Range: 0x2A0F40 -> 0x2A0FB8 + unsigned int params_size; // r29+0x1C + class xModelAssetParam * params; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A0FC0 -> 0x002A3E8C +*/ +// Range: 0x2A0FC0 -> 0x2A3E8C +static void register_tweaks(class tweak_group * this /* r19 */, unsigned char init /* r18 */, class xModelAssetParam * ap /* r17 */, unsigned int apsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A0FC0 -> 0x2A3E8C + class xVec3 V0; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A3E90 -> 0x002A401C +*/ +// Range: 0x2A3E90 -> 0x2A401C +static void load_cheat_tweak() { + // Blocks + /* anonymous block */ { + // Range: 0x2A3E90 -> 0x2A401C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A4020 -> 0x002A4028 +*/ +// Range: 0x2A4020 -> 0x2A4028 +static unsigned int check_anim_aim() { + // Blocks + /* anonymous block */ { + // Range: 0x2A4020 -> 0x2A4028 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A4030 -> 0x002A4280 +*/ +// Range: 0x2A4030 -> 0x2A4280 +static void check_lock_target(class xVec3 * target /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A4030 -> 0x2A4280 + class xMat4x3 & mat; // r8 + class xVec3 offset; // r29+0x30 + float ang; // r29+0x40 + float min_ang; // r3 + float max_ang; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A4280 -> 0x002A44B8 +*/ +// Range: 0x2A4280 -> 0x2A44B8 +static void lock_target(signed int index /* r2 */, class xVec3 * target /* r16 */, float opacity /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A4280 -> 0x2A44B8 + class hud_gizmo & gizmo; // r17 + class xVec3 screen_loc; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A44C0 -> 0x002A45BC +*/ +// Range: 0x2A44C0 -> 0x2A45BC +static class xVec3 world_to_screen(class xVec3 & loc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A44C0 -> 0x2A45BC + class xMat4x3 & view_mat; // r2 + float iz; // r29+0x40 + class xVec3 screen_loc; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A45C0 -> 0x002A46F0 +*/ +// Range: 0x2A45C0 -> 0x2A46F0 +static void show_hud() { + // Blocks + /* anonymous block */ { + // Range: 0x2A45C0 -> 0x2A46F0 + class basic_rect reticle_bound; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A46F0 -> 0x002A4B98 +*/ +// Range: 0x2A46F0 -> 0x2A4B98 +static void render_hud() { + // Blocks + /* anonymous block */ { + // Range: 0x2A46F0 -> 0x2A4B98 + class basic_rect bound; // r29+0x120 + unsigned int i; // r21 + class hud_gizmo & gizmo; // r20 + float alpha; // r4 + unsigned int i; // r17 + class hud_gizmo & gizmo; // r3 + float glow; // r29+0x170 + float alpha; // r29+0x170 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A4BA0 -> 0x002A5150 +*/ +// Range: 0x2A4BA0 -> 0x2A5150 +static void update_hud(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A4BA0 -> 0x2A5150 + float vel_frac; // r3 + unsigned int i; // r7 + unsigned int i; // r17 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A5150 -> 0x002A5754 +*/ +// Range: 0x2A5150 -> 0x2A5754 +static void render_timer(float alpha /* r21 */, float glow /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A5150 -> 0x2A5754 + class state_missle_fly * state; // r5 + float life; // r1 + char buffer[16]; // r29+0xA0 + float dsize; // r5 + class xfont font; // r29+0x70 + class basic_rect bound; // r29+0x60 + float x; // r21 + float y; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A5760 -> 0x002A5AAC +*/ +// Range: 0x2A5760 -> 0x2A5AAC +static void init_hud() { + // Blocks + /* anonymous block */ { + // Range: 0x2A5760 -> 0x2A5AAC + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A5AB0 -> 0x002A5D38 +*/ +// Range: 0x2A5AB0 -> 0x2A5D38 +static void render_glow(class xModelInstance * model /* r22 */, class basic_rect & r /* r2 */, float glow /* r29+0x120 */, float alpha /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A5AB0 -> 0x2A5D38 + float dsize; // r22 + float dloc; // r21 + float dalpha; // r20 + class basic_rect bound; // r29+0xF0 + signed int i; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A5D40 -> 0x002A61E4 +*/ +// Range: 0x2A5D40 -> 0x2A61E4 +static void update_trail(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A5D40 -> 0x2A61E4 + signed int samples; // r21 + class xMat4x3 end_mat; // r29+0x160 + class xQuat end_dir; // r29+0x150 + float ds; // r24 + float ddt; // r23 + class xVec3 dloc; // r29+0x1E0 + class xMat4x3 mat[2]; // r29+0xD0 + signed int flip; // r22 + float s; // r22 + signed int i; // r20 + class xMat4x3 & mat0; // r19 + class xMat4x3 & mat1; // r18 + class xQuat subdir; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A61F0 -> 0x002A6780 +*/ +// Range: 0x2A61F0 -> 0x2A6780 +static void add_trail_sample(class xVec3 & loc0 /* r20 */, class xVec3 & dir0 /* r19 */, class xVec3 & loc1 /* r18 */, class xVec3 & dir1 /* r17 */, float dt /* r29+0x1C0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A61F0 -> 0x2A6780 + unsigned int bubbles; // r16 + class xVec3 emit_range; // r29+0x1B0 + class xVec3 offset0; // r29+0x1A0 + class xVec3 offset1; // r29+0x190 + class xVec3 prop_loc0[2]; // r29+0x90 + class xVec3 prop_loc1[2]; // r29+0x70 + class xVec3 offset; // r29+0x180 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A6780 -> 0x002A6900 +*/ +// Range: 0x2A6780 -> 0x2A6900 +static void reset_wake_ribbons() { + // Blocks + /* anonymous block */ { + // Range: 0x2A6780 -> 0x2A6900 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A6900 -> 0x002A6BD4 +*/ +// Range: 0x2A6900 -> 0x2A6BD4 +static void init_states() { + // Blocks + /* anonymous block */ { + // Range: 0x2A6900 -> 0x2A6BD4 + class state_camera_restore camera_return; // @ 0x005CB880 + signed char @8149; // @ 0x0050FE50 + class state_camera_survey camera_survey; // @ 0x005CB670 + signed char @8146; // @ 0x0050FE4C + class state_camera_attach camera_attach; // @ 0x005CB660 + signed char @8143; // @ 0x0050FE48 + class state_camera_seize camera_seize; // @ 0x005CB600 + signed char @8140; // @ 0x0050FE44 + class state_camera_aim camera_aim; // @ 0x005CB5B0 + signed char @8137; // @ 0x0050FE40 + class state_missle_explode missle_explode; // @ 0x005CB5A0 + signed char @8134; // @ 0x0050FE3C + class state_missle_fly missle_fly; // @ 0x005CB560 + signed char @8131; // @ 0x0050FE38 + class state_missle_appear missle_appear; // @ 0x0050FE30 + signed char @8128; // @ 0x0050FE28 + class state_player_wait player_wait; // @ 0x0050FE20 + signed char @8125; // @ 0x0050FE1C + class state_player_fire player_fire; // @ 0x005CB548 + signed char @8122; // @ 0x0050FE18 + class state_player_aim player_aim; // @ 0x005CB530 + signed char @8119; // @ 0x0050FE14 + class state_player_halt player_halt; // @ 0x005CB510 + signed char @8116; // @ 0x0050FE10 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A6BE0 -> 0x002A6DD8 +*/ +// Range: 0x2A6BE0 -> 0x2A6DD8 +static class RpAtomic * custom_bubble_render(class RpAtomic * atomic /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A6BE0 -> 0x2A6DD8 + float fade; // r20 + enum RwCullMode old_cull_mode; // r29+0x3C + float fresnel_coeff; // r21 + float env_coeff; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A6DE0 -> 0x002A6ED0 +*/ +// Range: 0x2A6DE0 -> 0x2A6ED0 +static void update_state(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A6DE0 -> 0x2A6ED0 + signed int i; // r18 + class state_type * & state; // r17 + enum state_enum newtype; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A6ED0 -> 0x002A7084 +*/ +// Range: 0x2A6ED0 -> 0x2A7084 +static void update_player(class xScene & s /* r2 */, float dt /* r29+0x60 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A6ED0 -> 0x2A7084 + class xVec3 pre_update_loc; // r29+0x50 + class xVec3 drive_motion; // r29+0x40 + unsigned char stop; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7090 -> 0x002A7260 +*/ +// Range: 0x2A7090 -> 0x2A7260 +static void kill(unsigned char reset_camera /* r16 */, unsigned char abortive /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7090 -> 0x2A7260 + signed int i; // r18 + signed int i; // r19 + class xAnimPlay * aplay; // r2 + class xAnimState * astate; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7260 -> 0x002A7268 +*/ +// Range: 0x2A7260 -> 0x2A7268 +static void abort() { + // Blocks + /* anonymous block */ { + // Range: 0x2A7260 -> 0x2A7268 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7270 -> 0x002A7334 +*/ +// Range: 0x2A7270 -> 0x2A7334 +static void exit_triggers(class xScene & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7270 -> 0x2A7334 + class zEntTrigger * * it; // r17 + class zEntTrigger * * end; // r16 + class zEntTrigger & trig; // r2 + class xLinkAsset * link; // r7 + class xLinkAsset * end_link; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7340 -> 0x002A74F8 +*/ +// Range: 0x2A7340 -> 0x2A74F8 +static void notify_triggers(class xScene & s /* r2 */, class xSphere & o /* r22 */, class xVec3 & dir /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7340 -> 0x2A74F8 + class zEntTrigger * * it; // r20 + class zEntTrigger * * end; // r19 + class zEntTrigger & trig; // r18 + unsigned char want_enter; // r9 + unsigned char want_exit; // r8 + class xLinkAsset * link; // r7 + class xLinkAsset * end_link; // r6 + unsigned char inside; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7500 -> 0x002A75A8 +*/ +// Range: 0x2A7500 -> 0x2A75A8 +static unsigned char can_damage(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7500 -> 0x2A75A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A75B0 -> 0x002A79C0 +*/ +// Range: 0x2A75B0 -> 0x2A79C0 +static void damage_entity(class xEnt & ent /* r18 */, class xVec3 & loc /* r17 */, class xVec3 & dir /* r6 */, class xVec3 & hit_norm /* r2 */, float radius /* r29+0xF0 */, unsigned char explosive /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A75B0 -> 0x2A79C0 + class xCollis coll; // r29+0x50 + class xSphere o; // r29+0x40 + class xVec3 hit_dir; // r29+0xE0 + class xVec3 edir; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A79C0 -> 0x002A7A7C +*/ +// Range: 0x2A79C0 -> 0x2A7A7C +static void stop_sound(signed int which /* r2 */, unsigned int handle /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A79C0 -> 0x2A7A7C + class sound_config & s; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7A80 -> 0x002A7BDC +*/ +// Range: 0x2A7A80 -> 0x2A7BDC +static void start(class state_camera_restore * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7A80 -> 0x2A7BDC + class xVec3 loc; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7BE0 -> 0x002A7C44 +*/ +// Range: 0x2A7BE0 -> 0x2A7C44 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2A7BE0 -> 0x2A7C44 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7C50 -> 0x002A7C7C +*/ +// Range: 0x2A7C50 -> 0x2A7C7C +static enum state_enum update(class state_camera_restore * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7C50 -> 0x2A7C7C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7C80 -> 0x002A7F0C +*/ +// Range: 0x2A7C80 -> 0x2A7F0C +static void start(class state_camera_survey * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7C80 -> 0x2A7F0C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A7FE0 -> 0x002A81B0 +*/ +// Range: 0x2A7FE0 -> 0x2A81B0 +static void eval_missle_path(class state_camera_survey * this /* r2 */, float dist /* r29 */, class xVec3 & loc /* r2 */, float & roll /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A7FE0 -> 0x2A81B0 + signed int i; // r3 + class missle_record_data & r0; // r7 + class missle_record_data & r1; // r4 + float d0; // r5 + float d1; // r4 + float frac; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8310 -> 0x002A8340 +*/ +// Range: 0x2A8310 -> 0x2A8340 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2A8310 -> 0x2A8340 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8340 -> 0x002A856C +*/ +// Range: 0x2A8340 -> 0x2A856C +static enum state_enum update(class state_camera_survey * this /* r16 */, float dt /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8340 -> 0x2A856C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8570 -> 0x002A85F8 +*/ +// Range: 0x2A8570 -> 0x2A85F8 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x2A8570 -> 0x2A85F8 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8600 -> 0x002A8660 +*/ +// Range: 0x2A8600 -> 0x2A8660 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2A8600 -> 0x2A8660 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8660 -> 0x002A8720 +*/ +// Range: 0x2A8660 -> 0x2A8720 +static enum state_enum update(class state_camera_attach * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8660 -> 0x2A8720 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8720 -> 0x002A8738 +*/ +// Range: 0x2A8720 -> 0x2A8738 +static void lock_hazard_targets() { + // Blocks + /* anonymous block */ { + // Range: 0x2A8720 -> 0x2A8738 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8740 -> 0x002A8760 +*/ +// Range: 0x2A8740 -> 0x2A8760 +static unsigned char hazard_check(class NPCHazard & haz /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8740 -> 0x2A8760 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8760 -> 0x002A895C +*/ +// Range: 0x2A8760 -> 0x2A895C +static void get_view_bound(class xBound & bound /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8760 -> 0x2A895C + class xMat4x3 & mat; // r16 + float dist; // r20 + float r2; // r29+0xB0 + class xVec3 center; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8960 -> 0x002A89E0 +*/ +// Range: 0x2A8960 -> 0x2A89E0 +static void start(class state_camera_seize * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8960 -> 0x2A89E0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A89E0 -> 0x002A8A2C +*/ +// Range: 0x2A89E0 -> 0x2A8A2C +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2A89E0 -> 0x2A8A2C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8A30 -> 0x002A8ECC +*/ +// Range: 0x2A8A30 -> 0x2A8ECC +static enum state_enum update(class state_camera_seize * this /* r16 */, float dt /* r29+0x110 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8A30 -> 0x2A8ECC + float time_frac; // r2 + float s; // r20 + class xVec3 offset; // r29+0x100 + float dist; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A8ED0 -> 0x002A90F8 +*/ +// Range: 0x2A8ED0 -> 0x2A90F8 +static void start(class state_camera_aim * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A8ED0 -> 0x2A90F8 + class xMat4x3 & mat; // r17 + class xVec2 offset; // r29+0x58 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9100 -> 0x002A9130 +*/ +// Range: 0x2A9100 -> 0x2A9130 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2A9100 -> 0x2A9130 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9130 -> 0x002A97C4 +*/ +// Range: 0x2A9130 -> 0x2A97C4 +static enum state_enum update(class state_camera_aim * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A9130 -> 0x2A97C4 + unsigned char control; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9860 -> 0x002A9874 +*/ +// Range: 0x2A9860 -> 0x2A9874 +static class xVec3 & get_player_loc() { + // Blocks + /* anonymous block */ { + // Range: 0x2A9860 -> 0x2A9874 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9880 -> 0x002A9C30 +*/ +// Range: 0x2A9880 -> 0x2A9C30 +static void start(class state_missle_explode * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A9880 -> 0x2A9C30 + float min_dist; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002A9C30 -> 0x002AA124 +*/ +// Range: 0x2A9C30 -> 0x2AA124 +static void cb_droplet(class zFrag * frag /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2A9C30 -> 0x2AA124 + class zFragProjectile & proj; // r16 + float min_ring; // r20 + float max_ring; // r23 + float min_arc; // r22 + float rr; // r3 + float velmag; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA150 -> 0x002AA394 +*/ +// Range: 0x2AA150 -> 0x2AA394 +static void reset_quadrants(unsigned int size /* r19 */, float ring /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AA150 -> 0x2AA394 + unsigned int rings; // r16 + unsigned int max_size; // r18 + unsigned int i; // r17 + unsigned int end; // r16 + unsigned int r; // r9 + unsigned int j; // r8 + unsigned int count; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA3A0 -> 0x002AA3B0 +*/ +// Range: 0x2AA3A0 -> 0x2AA3B0 +static class xMat4x3 & get_missle_mat() { + // Blocks + /* anonymous block */ { + // Range: 0x2AA3A0 -> 0x2AA3B0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA3B0 -> 0x002AA474 +*/ +// Range: 0x2AA3B0 -> 0x2AA474 +static unsigned char hazard_check(class NPCHazard & haz /* r2 */, void * context /* r29+0xC */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AA3B0 -> 0x2AA474 + float radius; // r6 + class xVec3 offset; // r29+0x20 + float max_dist; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA480 -> 0x002AA49C +*/ +// Range: 0x2AA480 -> 0x2AA49C +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2AA480 -> 0x2AA49C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA4A0 -> 0x002AA5A4 +*/ +// Range: 0x2AA4A0 -> 0x2AA5A4 +static enum state_enum update(class state_missle_explode * this /* r2 */, float dt /* r29+0x80 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AA4A0 -> 0x2AA5A4 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA5B0 -> 0x002AA878 +*/ +// Range: 0x2AA5B0 -> 0x2AA878 +static void start(class state_missle_fly * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AA5B0 -> 0x2AA878 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA880 -> 0x002AA968 +*/ +// Range: 0x2AA880 -> 0x2AA968 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2AA880 -> 0x2AA968 + class xSphere o; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AA970 -> 0x002AAA14 +*/ +// Range: 0x2AA970 -> 0x2AAA14 +static void abort() { + // Blocks + /* anonymous block */ { + // Range: 0x2AA970 -> 0x2AAA14 + class xSphere o; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AAA20 -> 0x002AB418 +*/ +// Range: 0x2AAA20 -> 0x2AB418 +static enum state_enum update(class state_missle_fly * this /* r16 */, float dt /* r25 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AAA20 -> 0x2AB418 + class xMat4x3 & mat; // r3 + class xSphere o; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB420 -> 0x002AB4E8 +*/ +// Range: 0x2AB420 -> 0x2AB4E8 +static unsigned char hazard_check(class NPCHazard & haz /* r2 */, void * context /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB420 -> 0x2AB4E8 + class xVec3 & loc; // r2 + class xVec3 offset; // r29+0x10 + float max_dist; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB610 -> 0x002AB8C4 +*/ +// Range: 0x2AB610 -> 0x2AB8C4 +static unsigned char hit_test(class state_missle_fly * this /* r4 */, class xVec3 & hit_loc /* r20 */, class xVec3 & hit_norm /* r19 */, class xVec3 & hit_depen /* r18 */, class xEnt * & hit_ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB610 -> 0x2AB8C4 + class xScene & s; // r16 + class xVec3 & loc; // r21 + class xSweptSphere ss; // r29+0x70 + class xVec3 overshoot; // r29+0x220 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB8D0 -> 0x002AB988 +*/ +// Range: 0x2AB8D0 -> 0x2AB988 +static void calculate_rotation(class xVec2 & d1 /* r2 */, class xVec2 & v1 /* r2 */, float dt /* r29 */, class xVec2 & d0 /* r2 */, class xVec2 & v0 /* r2 */, class xVec2 & a0 /* r2 */, class xVec2 & a1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AB8D0 -> 0x2AB988 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AB9A0 -> 0x002ABA68 +*/ +// Range: 0x2AB9A0 -> 0x2ABA68 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x2AB9A0 -> 0x2ABA68 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABAE0 -> 0x002ABAF0 +*/ +// Range: 0x2ABAE0 -> 0x2ABAF0 +static class xMat4x3 & get_player_mat() { + // Blocks + /* anonymous block */ { + // Range: 0x2ABAE0 -> 0x2ABAF0 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABAF0 -> 0x002ABB08 +*/ +// Range: 0x2ABAF0 -> 0x2ABB08 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2ABAF0 -> 0x2ABB08 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABB10 -> 0x002ABC30 +*/ +// Range: 0x2ABB10 -> 0x2ABC30 +static enum state_enum update(float dt /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ABB10 -> 0x2ABC30 + float time; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABC30 -> 0x002ABC48 +*/ +// Range: 0x2ABC30 -> 0x2ABC48 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x2ABC30 -> 0x2ABC48 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABC50 -> 0x002ABC58 +*/ +// Range: 0x2ABC50 -> 0x2ABC58 +static enum state_enum update() { + // Blocks + /* anonymous block */ { + // Range: 0x2ABC50 -> 0x2ABC58 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABC60 -> 0x002ABE84 +*/ +// Range: 0x2ABC60 -> 0x2ABE84 +static void start(class state_player_fire * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ABC60 -> 0x2ABE84 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABE90 -> 0x002ABEA8 +*/ +// Range: 0x2ABE90 -> 0x2ABEA8 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2ABE90 -> 0x2ABEA8 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABEB0 -> 0x002ABF38 +*/ +// Range: 0x2ABEB0 -> 0x2ABF38 +static enum state_enum update(class state_player_fire * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ABEB0 -> 0x2ABF38 + class xAnimSingle * asingle; // r5 + class xAnimState * astate; // r3 + float max_time; // r2 + float time; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ABF40 -> 0x002AC000 +*/ +// Range: 0x2ABF40 -> 0x2AC000 +static void start(class state_player_aim * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ABF40 -> 0x2AC000 + class xVec3 & player_dir; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AC000 -> 0x002AC01C +*/ +// Range: 0x2AC000 -> 0x2AC01C +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2AC000 -> 0x2AC01C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AC020 -> 0x002AC2FC +*/ +// Range: 0x2AC020 -> 0x2AC2FC +static enum state_enum update(class state_player_aim * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AC020 -> 0x2AC2FC + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AC300 -> 0x002AC30C +*/ +// Range: 0x2AC300 -> 0x2AC30C +static void start(class state_player_halt * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AC300 -> 0x2AC30C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AC310 -> 0x002AC32C +*/ +// Range: 0x2AC310 -> 0x2AC32C +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2AC310 -> 0x2AC32C + } +} + +/* + Compile unit: C:\SB\Game\zEntCruiseBubble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AC330 -> 0x002AC448 +*/ +// Range: 0x2AC330 -> 0x2AC448 +static enum state_enum update(class state_player_halt * this /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AC330 -> 0x2AC448 + class xVec3 dmotion; // r29+0x10 + } +} + diff --git a/dwarf/SB/Game/zEntDestructObj.cpp b/dwarf/SB/Game/zEntDestructObj.cpp new file mode 100644 index 000000000..2300ea94d --- /dev/null +++ b/dwarf/SB/Game/zEntDestructObj.cpp @@ -0,0 +1,3046 @@ +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zParEmitter * sEmitDust; // size: 0x4, address: 0x50F2EC +static class zParEmitter * sEmitXplo; // size: 0x4, address: 0x50F2F0 +static class zParEmitter * sEmitWeb; // size: 0x4, address: 0x50F2F4 +static class zParEmitter * sEmitFire; // size: 0x4, address: 0x50F2F8 +static class zParEmitter * sEmitSmoke; // size: 0x4, address: 0x50F2FC +static class zShrapnelAsset * sShrapDefault; // size: 0x4, address: 0x50F300 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zEntDestructObjEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x135E00 +void zEntDestructObj_Update(class zEntDestructObj *, class xScene *, float); // size: 0x0, address: 0x136750 +void zEntDestructObj_Move(class zEntDestructObj *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x136830 +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zEntDestructObj : public zEnt { + // total size: 0x114 +public: + class zEntDestructObjAsset * dasset; // offset 0xD4, size 0x4 + unsigned int state; // offset 0xD8, size 0x4 + unsigned int healthCnt; // offset 0xDC, size 0x4 + float fx_timer; // offset 0xE0, size 0x4 + class zParEmitter * fx_emitter; // offset 0xE4, size 0x4 + float respawn_timer; // offset 0xE8, size 0x4 + unsigned int throw_target; // offset 0xEC, size 0x4 + class zShrapnelAsset * shrapnel_destroy; // offset 0xF0, size 0x4 + class zShrapnelAsset * shrapnel_hit; // offset 0xF4, size 0x4 + class xModelInstance * base_model; // offset 0xF8, size 0x4 + class xModelInstance * hit_model; // offset 0xFC, size 0x4 + class xModelInstance * destroy_model; // offset 0x100, size 0x4 + void (* destroy_notify)(class zEntDestructObj &, void *); // offset 0x104, size 0x4 + void * notify_context; // offset 0x108, size 0x4 + class xSFXAsset * sfx_destroy; // offset 0x10C, size 0x4 + class xSFXAsset * sfx_hit; // offset 0x110, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum _tagSDRumbleType { + SDR_None = 0, + SDR_Test = 1, + SDR_Damage = 2, + SDR_Bounce = 3, + SDR_EventLight = 4, + SDR_EventMedium = 5, + SDR_EventHeavy = 6, + SDR_DustDestroyedObj = 7, + SDR_XploDestroyedObj = 8, + SDR_WebDestroyed = 9, + SDR_Tiki = 10, + SDR_LassoDestroy = 11, + SDR_DamageByEGen = 12, + SDR_BounceHit = 13, + SDR_CruiseBubbleLaunch = 14, + SDR_CruiseBubbleExplode = 15, + SDR_TeleportStart = 16, + SDR_Teleport = 17, + SDR_TeleportEject = 18, + SDR_Total = 19, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class rxReq { + // total size: 0x0 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zEntDestructObjAsset { + // total size: 0x38 +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned int health; // offset 0x8, size 0x4 + unsigned int spawnItemID; // offset 0xC, size 0x4 + unsigned int dflags; // offset 0x10, size 0x4 + unsigned char collType; // offset 0x14, size 0x1 + unsigned char fxType; // offset 0x15, size 0x1 + unsigned char pad[2]; // offset 0x16, size 0x2 + float blast_radius; // offset 0x18, size 0x4 + float blast_strength; // offset 0x1C, size 0x4 + unsigned int shrapnelID_destroy; // offset 0x20, size 0x4 + unsigned int shrapnelID_hit; // offset 0x24, size 0x4 + unsigned int sfx_destroy; // offset 0x28, size 0x4 + unsigned int sfx_hit; // offset 0x2C, size 0x4 + unsigned int hitModel; // offset 0x30, size 0x4 + unsigned int destroyModel; // offset 0x34, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00135E00 -> 0x00136378 +*/ +// Range: 0x135E00 -> 0x136378 +signed int zEntDestructObjEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r17 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x135E00 -> 0x136378 + class zEntDestructObj * s; // r16 + class FloatAndVoid dist; // r29+0x3C + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136380 -> 0x001364F0 +*/ +// Range: 0x136380 -> 0x1364F0 +void zEntDestructObj_DestroyFX(class zEntDestructObj * o /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136380 -> 0x1364F0 + enum _tagSDRumbleType rt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001364F0 -> 0x00136500 +*/ +// Range: 0x1364F0 -> 0x136500 +unsigned int zEntDestructObj_isDestroyed(class zEntDestructObj * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1364F0 -> 0x136500 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136500 -> 0x001365E4 +*/ +// Range: 0x136500 -> 0x1365E4 +void zEntDestructObj_Reset(class zEntDestructObj * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136500 -> 0x1365E4 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001365F0 -> 0x001365F8 +*/ +// Range: 0x1365F0 -> 0x1365F8 +void zEntDestructObj_Setup(class zEntDestructObj * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1365F0 -> 0x1365F8 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136600 -> 0x0013663C +*/ +// Range: 0x136600 -> 0x13663C +void zEntDestructObj_Load(class zEntDestructObj * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136600 -> 0x13663C + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136640 -> 0x0013667C +*/ +// Range: 0x136640 -> 0x13667C +void zEntDestructObj_Save(class zEntDestructObj * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136640 -> 0x13667C + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136680 -> 0x00136694 +*/ +// Range: 0x136680 -> 0x136694 +unsigned int zEntDestructObj_GetHit(class zEntDestructObj * ent /* r2 */, unsigned int mask /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136680 -> 0x136694 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001366A0 -> 0x00136748 +*/ +// Range: 0x1366A0 -> 0x136748 +void zEntDestructObj_Hit(class zEntDestructObj * ent /* r16 */, unsigned int mask /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1366A0 -> 0x136748 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136750 -> 0x00136824 +*/ +// Range: 0x136750 -> 0x136824 +void zEntDestructObj_Update(class zEntDestructObj * ent /* r16 */, class xScene * sc /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136750 -> 0x136824 + class xParEmitterCustomSettings info; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136830 -> 0x00136838 +*/ +// Range: 0x136830 -> 0x136838 +void zEntDestructObj_Move() { + // Blocks + /* anonymous block */ { + // Range: 0x136830 -> 0x136838 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136840 -> 0x00136CA0 +*/ +// Range: 0x136840 -> 0x136CA0 +void zEntDestructObj_Init(class zEntDestructObj * ent /* r17 */, class xEntAsset * asset /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136840 -> 0x136CA0 + class zEntDestructObjAsset * dasset; // r16 + class RpAtomic * imodel; // r2 + class RpAtomic * imodel; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136CA0 -> 0x00136CA8 +*/ +// Range: 0x136CA0 -> 0x136CA8 +void zEntDestructObj_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136CA0 -> 0x136CA8 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136CB0 -> 0x00136D30 +*/ +// Range: 0x136CB0 -> 0x136D30 +void zEntDestructObj_FindFX() { + // Blocks + /* anonymous block */ { + // Range: 0x136CB0 -> 0x136D30 + } +} + +/* + Compile unit: C:\SB\Game\zEntDestructObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136D30 -> 0x00136EDC +*/ +// Range: 0x136D30 -> 0x136EDC +static void SwapModel(class zEntDestructObj * s /* r17 */, class xModelInstance * model /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136D30 -> 0x136EDC + } +} + diff --git a/dwarf/SB/Game/zEntHangable.cpp b/dwarf/SB/Game/zEntHangable.cpp new file mode 100644 index 000000000..9fc0188f0 --- /dev/null +++ b/dwarf/SB/Game/zEntHangable.cpp @@ -0,0 +1,2374 @@ +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zParEmitter * sCandleEmitter; // size: 0x4, address: 0x50F304 +static class zParEmitter * sCandleSmokeEmitter; // size: 0x4, address: 0x50F308 +static unsigned int sChandelierHash; // size: 0x4, address: 0x50F30C +static class zParEmitter * sMountEmitter; // size: 0x4, address: 0x50F310 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +signed int zEntHangableEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x137730 +void zEntHangable_Update(class zEntHangable *, class xScene *, float); // size: 0x0, address: 0x137A60 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zEntHangable : public zEnt { + // total size: 0x12C +public: + class xEntHangableAsset * hangInfo; // offset 0xD4, size 0x4 + class xVec3 pivot; // offset 0xD8, size 0xC + class xVec3 endpos; // offset 0xE4, size 0xC + class xVec3 vel; // offset 0xF0, size 0xC + class xVec3 swingplane; // offset 0xFC, size 0xC + float grabTimer; // offset 0x108, size 0x4 + float spin; // offset 0x10C, size 0x4 + unsigned int state; // offset 0x110, size 0x4 + class zEnt * shaggy; // offset 0x114, size 0x4 + signed int enabled; // offset 0x118, size 0x4 + class zEnt * follow; // offset 0x11C, size 0x4 + signed int moving; // offset 0x120, size 0x4 + float candle_timer; // offset 0x124, size 0x4 + signed int candle_state; // offset 0x128, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntHangableAsset { + // total size: 0x20 +public: + unsigned int flags; // offset 0x0, size 0x4 + float pivotOffset; // offset 0x4, size 0x4 + float leverArm; // offset 0x8, size 0x4 + float gravity; // offset 0xC, size 0x4 + float accel; // offset 0x10, size 0x4 + float decay; // offset 0x14, size 0x4 + float grabDelay; // offset 0x18, size 0x4 + float stopDecel; // offset 0x1C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xFFX { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00136EE0 -> 0x00137058 +*/ +// Range: 0x136EE0 -> 0x137058 +void zEntHangable_FollowUpdate(class zEntHangable * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x136EE0 -> 0x137058 + class xVec3 * center; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00137060 -> 0x001370B4 +*/ +// Range: 0x137060 -> 0x1370B4 +void zEntHangable_Reset(class zEntHangable * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x137060 -> 0x1370B4 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001370C0 -> 0x001370C8 +*/ +// Range: 0x1370C0 -> 0x1370C8 +void zEntHangable_Load(class zEntHangable * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1370C0 -> 0x1370C8 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001370D0 -> 0x001370D8 +*/ +// Range: 0x1370D0 -> 0x1370D8 +void zEntHangable_Save(class zEntHangable * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1370D0 -> 0x1370D8 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001370E0 -> 0x0013772C +*/ +// Range: 0x1370E0 -> 0x13772C +void zEntHangable_SetMatrix(class zEntHangable * ent /* r20 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1370E0 -> 0x13772C + class xMat4x3 tmpMat; // r29+0xE0 + class xMat3x3 spinMat; // r29+0xB0 + signed int moving; // r18 + class xVec3 * opos; // r17 + class xVec3 * pos; // r16 + class xVec3 * orot; // r18 + class xVec3 rot; // r29+0x120 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00137730 -> 0x00137A5C +*/ +// Range: 0x137730 -> 0x137A5C +signed int zEntHangableEventCB(class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x137730 -> 0x137A5C + class zEntHangable * ent; // r20 + class zEnt * follow; // r2 + class FloatAndVoid dist; // r29+0x20C + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00137A60 -> 0x00137E98 +*/ +// Range: 0x137A60 -> 0x137E98 +void zEntHangable_Update(class zEntHangable * ent /* r20 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x137A60 -> 0x137E98 + class xVec3 unitHang; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00137EA0 -> 0x00138060 +*/ +// Range: 0x137EA0 -> 0x138060 +static void zEntHangable_UpdateFX(class zEntHangable * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x137EA0 -> 0x138060 + class xVec3 offset_rlii0006[8]; // r29+0x1F0 + class xVec3 * local_offset; // r17 + class xParEmitterCustomSettings info; // r29+0x80 + class zParEmitter * emitter; // r16 + signed int i; // r22 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138060 -> 0x001380C8 +*/ +// Range: 0x138060 -> 0x1380C8 +void zEntHangable_Init(void * ent /* r17 */, void * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x138060 -> 0x1380C8 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001380D0 -> 0x001381CC +*/ +// Range: 0x1380D0 -> 0x1381CC +static void HangableSetup(class zEntHangable * ent /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1380D0 -> 0x1381CC + class xEntHangableAsset * hangAsset; // r7 + class xVec3 * center; // r2 + class xMat3x3 hackMat; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntHangable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001381D0 -> 0x00138224 +*/ +// Range: 0x1381D0 -> 0x138224 +void zEntHangable_SetupFX() { + // Blocks + /* anonymous block */ { + // Range: 0x1381D0 -> 0x138224 + } +} + diff --git a/dwarf/SB/Game/zEntPickup.cpp b/dwarf/SB/Game/zEntPickup.cpp new file mode 100644 index 000000000..3d165999b --- /dev/null +++ b/dwarf/SB/Game/zEntPickup.cpp @@ -0,0 +1,3347 @@ +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +class zParEmitter * gEmitShinySparkles; // size: 0x4, address: 0x50F314 +static float SPARKLE_MAX_RATE; // size: 0x4, address: 0x50E644 +static class ShinySparkly ShinySparklyTable[7]; // size: 0xE0, address: 0x4070C0 +unsigned int gEnableRewardsQueue; // size: 0x4, address: 0x50E648 +static float sSpatulaGrabbedSpinMult; // size: 0x4, address: 0x50F318 +static float sSpatulaGrabbedLife; // size: 0x4, address: 0x50E64C +static float sUnderwearFade; // size: 0x4, address: 0x50E650 +static class RwMatrixTag sPickupOrientation; // size: 0x40, address: 0x4071A0 +static class zEntPickup * rewardPickups[5][10]; // size: 0xC8, address: 0x518040 +static class RewardList sRewards[20]; // size: 0x8C0, address: 0x518110 +static class zLODTable sRewardLOD[5]; // size: 0xA0, address: 0x5189D0 +static class _tagKeyShake sKeyShake[4]; // size: 0x60, address: 0x518A70 +static class RpLight * sPickupDirectionalLight; // size: 0x4, address: 0x50F31C +static class RpLight * sPickupAmbientLight; // size: 0x4, address: 0x50F320 +static class xLightKit sPickupLightKit; // size: 0x10, address: 0x518AD0 +static class xLightKitLight sPickupLightKitLight[2]; // size: 0xC0, address: 0x518AE0 +static class xEntFrame gPickupFrame; // size: 0xF0, address: 0x518BA0 +static class xEntCollis gPickupCollis; // size: 0x5B4, address: 0x518C90 +static class _xCounter * keyCounter; // size: 0x4, address: 0x0 +static class zEntPickup * sSpatulaAlreadyGiven; // size: 0x4, address: 0x50F324 +static class zEntPickup * sSpatulaBungeeDeferred; // size: 0x4, address: 0x50F328 +class zPickupAuraInfo zPickupAuraTable[15]; // size: 0xB4, address: 0x4071F0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gPTankDisable; // size: 0x4, address: 0x505BB8 +signed int gSpongeBall; // size: 0x4, address: 0x50F340 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +signed int CheckPickupAgainstPlayer(class xEnt *, void *); // size: 0x0, address: 0x13BEE0 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +signed int zEntPickupEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x13C960 +void zEntPickup_Update(class zEntPickup *, class xScene *, float); // size: 0x0, address: 0x13ABD0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zEntPickup : public zEnt { + // total size: 0x268 +public: + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + unsigned int state; // offset 0x16C, size 0x4 + class zAssetPickup * p; // offset 0x170, size 0x4 + void * anim; // offset 0x174, size 0x4 + float animTime; // offset 0x178, size 0x4 + float timer; // offset 0x17C, size 0x4 + float shake_timer; // offset 0x180, size 0x4 + class xVec3 shake_pos; // offset 0x184, size 0xC + signed int snackGateInfoDisplayed; // offset 0x190, size 0x4 + float fx_timer; // offset 0x194, size 0x4 + class xPar * fx_par; // offset 0x198, size 0x4 + class zParEmitter * fx_emit; // offset 0x19C, size 0x4 + float fx_scale; // offset 0x1A0, size 0x4 + class xVec3 grab_pos; // offset 0x1A4, size 0xC + unsigned int flyflags; // offset 0x1B0, size 0x4 + signed int flg_opts; // offset 0x1B4, size 0x4 + class xVec3 vel; // offset 0x1B8, size 0xC + class xVec3 droppos; // offset 0x1C4, size 0xC + class xBase * followTarget; // offset 0x1D0, size 0x4 + class xVec3 followOffset; // offset 0x1D4, size 0xC + class xBase * dropParent; // offset 0x1E0, size 0x4 + class xEnt * useThisEntPos; // offset 0x1E4, size 0x4 + class xEntDrive drv; // offset 0x1E8, size 0x7C + unsigned short pickupFlags; // offset 0x264, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zLODTable { + // total size: 0x20 +public: + class xModelBucket * * baseBucket; // offset 0x0, size 0x4 + float noRenderDist; // offset 0x4, size 0x4 + class xModelBucket * * lodBucket[3]; // offset 0x8, size 0xC + float lodDist[3]; // offset 0x14, size 0xC +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +class _tagKeyShake { + // total size: 0x18 +public: + class xVec3 orig_pos; // offset 0x0, size 0xC + float shake_timer; // offset 0xC, size 0x4 + float shake_it; // offset 0x10, size 0x4 + class _zUI * ui; // offset 0x14, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xCounterAsset : public xBaseAsset { + // total size: 0xC +public: + signed short count; // offset 0x8, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RewardList { + // total size: 0x70 +public: + unsigned char active; // offset 0x0, size 0x1 + float timer; // offset 0x4, size 0x4 + class xVec3 * ppos; // offset 0x8, size 0x4 + class xVec3 pos; // offset 0xC, size 0xC + unsigned int num; // offset 0x18, size 0x4 + unsigned int currRequest; // offset 0x1C, size 0x4 + unsigned int pickups[20]; // offset 0x20, size 0x50 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class _xCounter : public xBase { + // total size: 0x18 +public: + class xCounterAsset * asset; // offset 0x10, size 0x4 + signed short count; // offset 0x14, size 0x2 + unsigned char state; // offset 0x16, size 0x1 + unsigned char counterFlags; // offset 0x17, size 0x1 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xEntPickupAsset { + // total size: 0x8 +public: + unsigned int pickupHash; // offset 0x0, size 0x4 + unsigned short pickupFlags; // offset 0x4, size 0x2 + unsigned short pickupValue; // offset 0x6, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class ShinySparkly { + // total size: 0x20 +public: + unsigned short pickupType; // offset 0x0, size 0x2 + unsigned short pickupIndex; // offset 0x2, size 0x2 + float radius; // offset 0x4, size 0x4 + float std_rate; // offset 0x8, size 0x4 + float fly_rate; // offset 0xC, size 0x4 + unsigned char br; // offset 0x10, size 0x1 + unsigned char bg; // offset 0x11, size 0x1 + unsigned char bb; // offset 0x12, size 0x1 + unsigned char ba; // offset 0x13, size 0x1 + unsigned char dr; // offset 0x14, size 0x1 + unsigned char dg; // offset 0x15, size 0x1 + unsigned char db; // offset 0x16, size 0x1 + unsigned char da; // offset 0x17, size 0x1 + unsigned int envmapID; // offset 0x18, size 0x4 + float shininess; // offset 0x1C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zAssetPickup { + // total size: 0x14 +public: + unsigned int pickupHash; // offset 0x0, size 0x4 + unsigned char pickupType; // offset 0x4, size 0x1 + unsigned char pickupIndex; // offset 0x5, size 0x1 + unsigned short pickupFlags; // offset 0x6, size 0x2 + unsigned int quantity; // offset 0x8, size 0x4 + unsigned int modelID; // offset 0xC, size 0x4 + unsigned int animID; // offset 0x10, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zEntPickup_cbData { + // total size: 0x8 +public: + class xScene * sc; // offset 0x0, size 0x4 + float dt; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x8 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Count; // offset 0x4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zPickupAuraInfo { + // total size: 0xC +public: + float size; // offset 0x0, size 0x4 + float yoffset; // offset 0x4, size 0x4 + class iColor_tag color; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class anim_coll_data { + // total size: 0x0 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class zEntHangable { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138230 -> 0x00138324 +*/ +// Range: 0x138230 -> 0x138324 +void zEntPickup_RewardPostSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x138230 -> 0x138324 + signed int i; // r20 + signed int j; // r19 + class zLODTable * lod; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138330 -> 0x0013836C +*/ +// Range: 0x138330 -> 0x13836C +void zEntPickup_SpawnNRewards(unsigned int * pickups /* r2 */, unsigned int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x138330 -> 0x13836C + class xVec3 pos; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138370 -> 0x001383AC +*/ +// Range: 0x138370 -> 0x1383AC +void zEntPickup_SpawnNRewards(unsigned int * pickups /* r2 */, unsigned int num /* r2 */, class xVec3 * ppos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x138370 -> 0x1383AC + class xVec3 pos; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001383B0 -> 0x00138568 +*/ +// Range: 0x1383B0 -> 0x138568 +static void spawnNRewards(unsigned int * pickups /* r2 */, unsigned int num /* r2 */, class xVec3 * ppos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1383B0 -> 0x138568 + class xVec3 pos; // r29 + signed int i; // r8 + unsigned int j; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138570 -> 0x001389BC +*/ +// Range: 0x138570 -> 0x1389BC +void zEntPickup_SceneUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x138570 -> 0x1389BC + signed int i; // r17 + unsigned int ret; // r2 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001389C0 -> 0x001389D4 +*/ +// Range: 0x1389C0 -> 0x1389D4 +void zEntPickup_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x1389C0 -> 0x1389D4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001389E0 -> 0x001389F4 +*/ +// Range: 0x1389E0 -> 0x1389F4 +void zEntPickup_SceneEnter() { + // Blocks + /* anonymous block */ { + // Range: 0x1389E0 -> 0x1389F4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138A00 -> 0x00138B30 +*/ +// Range: 0x138A00 -> 0x138B30 +static unsigned int rewardRequest(unsigned int shinyType /* r2 */, class xVec3 * ppos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x138A00 -> 0x138B30 + class xVec3 pos; // r29 + signed int i; // r8 + class zEntPickup * p; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00138B30 -> 0x00139414 +*/ +// Range: 0x138B30 -> 0x139414 +void zEntPickup_UpdateFlyToInterface(class zEntPickup * ent /* r20 */, unsigned int pcount /* r29+0xCC */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x138B30 -> 0x139414 + unsigned int i; // r29+0xB0 + class zPickupAuraInfo * ai; // r3 + class xVec3 pos; // r29+0x550 + class ShinySparkly * sp; // r3 + signed int j; // r8 + class xParEmitterCustomSettings info; // r29+0x3D0 + signed int i; // r8 + class ShinySparkly * sp; // r7 + class xVec3 pos; // r29+0x540 + signed int count; // r2 + class xVec3 plist[64]; // r29+0xD0 + class xVec3 * pp; // r19 + class RpGeometry * geom; // r3 + class xVec3 * verts; // r18 + signed int num_verts; // r21 + signed int j; // r17 + signed int n; // r3 + class xVec3 * ent_pos; // r18 + float ydist; // r22 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00139420 -> 0x00139860 +*/ +// Range: 0x139420 -> 0x139860 +void zEntPickup_RenderList(class zEntPickup * plist /* r16 */, unsigned int pcount /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x139420 -> 0x139860 + unsigned int i; // r21 + class RpAtomic * imodel; // r20 + signed int shadowResult; // r29+0xCC + class xVec3 shadVec; // r29+0xC0 + class RwFrame * frame; // r2 + class RwV3d vec_scale; // r29+0xB0 + signed int alpha; // r6 + float dist2; // r1 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00139860 -> 0x00139AA0 +*/ +// Range: 0x139860 -> 0x139AA0 +void zEntPickup_RenderOne(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x139860 -> 0x139AA0 + class zEntPickup * pickup; // r18 + class RpAtomic * imodel; // r17 + signed int shadowResult; // r29+0x5C + class xVec3 shadVec; // r29+0x50 + class RwFrame * frame; // r5 + class RwV3d vec_scale; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00139AA0 -> 0x00139C70 +*/ +// Range: 0x139AA0 -> 0x139C70 +void zEntPickup_Render(class zEntPickup * plist /* r21 */, unsigned int pcount /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x139AA0 -> 0x139C70 + unsigned int i; // r19 + class RwMatrixTag * imat; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00139C70 -> 0x0013A580 +*/ +// Range: 0x139C70 -> 0x13A580 +static void zEntPickup_UpdateFX(class zEntPickup * ent /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x139C70 -> 0x13A580 + class zPickupAuraInfo * ai; // r3 + class xVec3 pos; // r29+0x500 + class xParEmitterCustomSettings info; // r29+0x380 + class ShinySparkly * sp; // r3 + signed int i; // r9 + signed int i; // r9 + class ShinySparkly * sp; // r8 + class xVec3 pos; // r29+0x4F0 + signed int count; // r2 + class xVec3 plist[64]; // r29+0x80 + class xVec3 * pp; // r21 + class RpGeometry * geom; // r3 + class xVec3 * verts; // r20 + signed int num_verts; // r19 + signed int j; // r18 + signed int n; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013A580 -> 0x0013A718 +*/ +// Range: 0x13A580 -> 0x13A718 +void zEntPickup_Drop(class zEntPickup * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13A580 -> 0x13A718 + float c; // r29+0x40 + float sol[2]; // r29+0x38 + unsigned int solcnt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013A720 -> 0x0013A85C +*/ +// Range: 0x13A720 -> 0x13A85C +void zEntPickup_FlushGrabbed() { + // Blocks + /* anonymous block */ { + // Range: 0x13A720 -> 0x13A85C + class zScene * s; // r4 + class zEntPickup * it; // r17 + class zEntPickup * end; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013A860 -> 0x0013AA6C +*/ +// Range: 0x13A860 -> 0x13AA6C +void zEntPickup_Load(class zEntPickup * ent /* r17 */, class xSerial * s /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13A860 -> 0x13AA6C + signed int is_a_dropper; // r16 + unsigned int state; // r29+0x7C + signed int coll; // r29+0x78 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013AA70 -> 0x0013AADC +*/ +// Range: 0x13AA70 -> 0x13AADC +void zEntPickup_Save(class zEntPickup * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13AA70 -> 0x13AADC + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013AAE0 -> 0x0013ABC8 +*/ +// Range: 0x13AAE0 -> 0x13ABC8 +void zEntPickup_Reset(class zEntPickup * ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13AAE0 -> 0x13ABC8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013ABD0 -> 0x0013B6AC +*/ +// Range: 0x13ABD0 -> 0x13B6AC +void zEntPickup_Update(class zEntPickup * ent /* r18 */, class xScene * sc /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13ABD0 -> 0x13B6AC + class xEntFrame frame; // r29+0x2A0 + float duration; // r29+0x3B0 + class xQuat * q0; // r19 + class xVec3 * t0; // r17 + class xVec3 * p; // r3 + class xVec3 * player; // r2 + class xVec3 * player; // r2 + class zEnt * plent; // r6 + float distsqr; // r21 + float dx__; // r6 + float dy__; // r4 + float dz__; // r3 + float chkdist; // r29+0x3B0 + class xVec3 * dest; // r17 + class xVec3 * src; // r16 + class xVec3 vec; // r29+0x3A0 + float mult; // r20 + float distMult; // r2 + float yvel; // r2 + float ydiff; // r2 + class xVec3 dp; // r29+0x390 + float vel2; // r1 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013B6B0 -> 0x0013B8E4 +*/ +// Range: 0x13B6B0 -> 0x13B8E4 +void zEntPickup_GiveAllRewardsNow() { + // Blocks + /* anonymous block */ { + // Range: 0x13B6B0 -> 0x13B8E4 + unsigned int i; // r20 + unsigned int j; // r19 + unsigned int total; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013B8F0 -> 0x0013BBD0 +*/ +// Range: 0x13B8F0 -> 0x13BBD0 +static void collectPickup(class zEntPickup * ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13B8F0 -> 0x13BBD0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013BBD0 -> 0x0013BED4 +*/ +// Range: 0x13BBD0 -> 0x13BED4 +void zEntPickup_GivePickup(class zEntPickup * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13BBD0 -> 0x13BED4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013BEE0 -> 0x0013C908 +*/ +// Range: 0x13BEE0 -> 0x13C908 +static signed int CheckPickupAgainstPlayer(class xEnt * cbent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13BEE0 -> 0x13C908 + class zEntPickup * ent; // r17 + float distance; // r20 + class zEnt * plent; // r16 + float distsqr; // r29+0x240 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + float chkdist; // r29+0x240 + signed int i; // r16 + float dist2_1; // r29+0x240 + float dist2_2; // r29+0x240 + float dx__; // r1 + float dy__; // r29+0x240 + float dz__; // r4 + float dx__; // r29+0x240 + float dy__; // r29+0x240 + float dz__; // r29+0x240 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013C910 -> 0x0013C95C +*/ +// Range: 0x13C910 -> 0x13C95C +void zEntPickup_CheckAllPickupsAgainstPlayer(class xScene * sc /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13C910 -> 0x13C95C + class zEntPickup_cbData cbdata; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013C960 -> 0x0013CE2C +*/ +// Range: 0x13C960 -> 0x13CE2C +signed int zEntPickupEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13C960 -> 0x13CE2C + class zEntPickup * p; // r16 + class xEntFrame frame; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013CE30 -> 0x0013D030 +*/ +// Range: 0x13CE30 -> 0x13D030 +void zEntPickup_Setup() { + // Blocks + /* anonymous block */ { + // Range: 0x13CE30 -> 0x13D030 + class zScene * zsc; // r17 + unsigned int i; // r16 + unsigned int j; // r22 + class xBase * base; // r21 + class zEntPickup * p; // r2 + class xVec3 * srcPos; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013D030 -> 0x0013D038 +*/ +// Range: 0x13D030 -> 0x13D038 +void zEntPickup_Setup(class zEntPickup * p /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13D030 -> 0x13D038 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013D040 -> 0x0013D07C +*/ +// Range: 0x13D040 -> 0x13D07C +void zEntPickup_ShinySparklyInit(class RpAtomic * data /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13D040 -> 0x13D07C + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013D080 -> 0x0013D4E8 +*/ +// Range: 0x13D080 -> 0x13D4E8 +void zEntPickupInit(class zEntPickup * ent /* r21 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13D080 -> 0x13D4E8 + class xEntPickupAsset * pickupAsset; // r18 + unsigned int i; // r6 + unsigned int tmpsize; // r29+0x28C + class zAssetPickup * ptbl; // r17 + class RpAtomic * modelData; // r20 + void * animData; // r16 + class RxPipeline * fastAtmPipe; // r19 + class RxPipeline * fastMatPipe; // r18 + class ShinySparkly * sp; // r17 + signed int i; // r16 + class RpAtomic * atom; // r20 + signed int found; // r20 + signed int i; // r19 + char name[512]; // r29+0x80 + signed int j; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013D4F0 -> 0x0013D4F8 +*/ +// Range: 0x13D4F0 -> 0x13D4F8 +void zEntPickupInit(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13D4F0 -> 0x13D4F8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013D500 -> 0x0013D66C +*/ +// Range: 0x13D500 -> 0x13D66C +void zEntPickup_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x13D500 -> 0x13D66C + class RwFrame * frame; // r2 + class RwRGBAReal black; // @ 0x00519250 + class RwRGBAReal white; // @ 0x004071E0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPickup.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013D670 -> 0x0013DA48 +*/ +// Range: 0x13D670 -> 0x13DA48 +static void PickupFallPhysics(class zEntPickup * ent /* r16 */, class xScene * sc /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13D670 -> 0x13DA48 + } +} + diff --git a/dwarf/SB/Game/zEntPlayer.cpp b/dwarf/SB/Game/zEntPlayer.cpp new file mode 100644 index 000000000..0790d0100 --- /dev/null +++ b/dwarf/SB/Game/zEntPlayer.cpp @@ -0,0 +1,9364 @@ +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static float sHackStuckTimer; // size: 0x4, address: 0x50F32C +static class xVec3 sHackStuckDir; // size: 0xC, address: 0x519260 +static class xVec3 sHackStuckVel; // size: 0xC, address: 0x519270 +static unsigned int sHackStuckSetDir; // size: 0x4, address: 0x50F330 +static float CATCH_CAPSULE_RAD; // size: 0x4, address: 0x50E654 +static float CATCH_CAPSULE_BIAS; // size: 0x4, address: 0x50E658 +static float sCatchCapsuleTimer; // size: 0x4, address: 0x50F334 +static float stuck_timer; // size: 0x4, address: 0x50F338 +static float not_stuck_timer; // size: 0x4, address: 0x50F33C +static class xVec3 stuck_start_loc; // size: 0xC, address: 0x519280 +signed int sPlayerSurfaceType; // size: 0x4, address: 0x0 +class xEnt * sDebugPlayerPtr; // size: 0x4, address: 0x0 +signed int gSpongeBall; // size: 0x4, address: 0x50F340 +static unsigned int sPlayerSnd[3][47]; // size: 0x234, address: 0x519290 +static unsigned int sPlayerSndRand[3][47]; // size: 0x234, address: 0x5194D0 +static unsigned int sPlayerSndID[3][47]; // size: 0x234, address: 0x519710 +static enum _tagRumbleType sPlayerRumbleType[47]; // size: 0xBC, address: 0x519950 +static float sPlayerRumbleTime[47]; // size: 0xBC, address: 0x519A10 +static float sPlayerSndFxVolume[47]; // size: 0xBC, address: 0x519AD0 +static unsigned int sPlayerStreamSnd[3][118]; // size: 0x588, address: 0x519B90 +static unsigned int sPlayerStreamSndRand[3][118]; // size: 0x588, address: 0x51A120 +static unsigned int sCurrentStreamSndID; // size: 0x4, address: 0x50F344 +static float sPlayerSndStreamVolume[118]; // size: 0x1D8, address: 0x51A6B0 +static float sPlayerSndSneakDelay; // size: 0x4, address: 0x50F348 +static signed int sPlayerDiedLastTime; // size: 0x4, address: 0x50F34C +static signed int sPlayerIgnoreSound; // size: 0x4, address: 0x50F350 +static signed int sPlayerAttackInAir; // size: 0x4, address: 0x50F354 +static class zDelayedStreamSound sDelayedSound[8]; // size: 0x60, address: 0x51A890 +static class zPlayerSndTimer sPlayerStreamSndTimer[118]; // size: 0x3B0, address: 0x51A8F0 +float startJump; // size: 0x4, address: 0x50F358 +float startDouble; // size: 0x4, address: 0x50F35C +float startBounce; // size: 0x4, address: 0x50F360 +static float minVelmag; // size: 0x4, address: 0x50E65C +static float maxVelmag; // size: 0x4, address: 0x50E660 +static float curVelmag; // size: 0x4, address: 0x50F364 +static float curVelangle; // size: 0x4, address: 0x50F368 +static signed int surfSlickness; // size: 0x4, address: 0x50E664 +static float surfFriction; // size: 0x4, address: 0x50E668 +static float surfDamping; // size: 0x4, address: 0x50F36C +static signed int lastSlickness; // size: 0x4, address: 0x50E66C +static class xVec3 lastDeltaPos; // size: 0xC, address: 0x51ACA0 +static class xVec3 lastFloorNorm; // size: 0xC, address: 0x51ACB0 +static class xEnt * lastFloorEnt; // size: 0x4, address: 0x50F370 +static unsigned int surfSticky; // size: 0x4, address: 0x50F374 +static float surfSlideStart; // size: 0x4, address: 0x50E670 +static float surfSlideStop; // size: 0x4, address: 0x50E674 +float surfSlickRatio; // size: 0x4, address: 0x50F378 +static float surfSlickTimer; // size: 0x4, address: 0x50F37C +static float surfPeakRatio; // size: 0x4, address: 0x50E678 +static float surfAccelWalk; // size: 0x4, address: 0x50E67C +static float surfAccelRun; // size: 0x4, address: 0x50E680 +static float surfDecelIdle; // size: 0x4, address: 0x50E684 +static float surfDecelSkid; // size: 0x4, address: 0x50E688 +static float surfMaxSpeed; // size: 0x4, address: 0x50F380 +static float surfSlipTimer; // size: 0x4, address: 0x50F384 +static class xEnt * sGrabFound; // size: 0x4, address: 0x50F388 +static signed int sGrabFailed; // size: 0x4, address: 0x50F38C +static float sPlayerCollAdjust; // size: 0x4, address: 0x50F390 +static class zPlayerLassoInfo * sLassoInfo; // size: 0x4, address: 0x50F394 +static class zLasso * sLasso; // size: 0x4, address: 0x50F398 +static class xEnt * sHitch[32]; // size: 0x80, address: 0x51ACC0 +static signed int sNumHitches; // size: 0x4, address: 0x50F39C +static float sHitchAngle; // size: 0x4, address: 0x50F3A0 +static float sSwingTimeElapsed; // size: 0x4, address: 0x50F3A4 +static signed int sLassoCamLinger; // size: 0x4, address: 0x50F3A8 +static signed int sGooKnockedToSafety; // size: 0x4, address: 0x50F3AC +static float sGooKnockedTimer; // size: 0x4, address: 0x50F3B0 +class xEntBoulder * boulderVehicle; // size: 0x4, address: 0x50F3B4 +static float bvTimeToIdle; // size: 0x4, address: 0x50F3B8 +static signed int boulderRollShouldEnd; // size: 0x4, address: 0x50F3BC +static signed int boulderRollShouldStart; // size: 0x4, address: 0x50F3C0 +static class zParEmitter * sEmitSpinBubbles; // size: 0x4, address: 0x50F3C4 +static class zParEmitter * sEmitSundae; // size: 0x4, address: 0x50F3C8 +static class zParEmitter * sEmitStankBreath; // size: 0x4, address: 0x50F3CC +static class xModelTag sStankTag[3]; // size: 0x60, address: 0x51AD40 +static class RpAtomic * sReticleModel; // size: 0x4, address: 0x50F3D0 +static class RpAtomic * sReticleHandModel; // size: 0x4, address: 0x0 +static class RpAtomic * sReticleDuhModel; // size: 0x4, address: 0x0 +static class RpAtomic * sReticleYeeModel; // size: 0x4, address: 0x0 +static class RpAtomic * sReticleHawModel; // size: 0x4, address: 0x0 +static float sReticleRot; // size: 0x4, address: 0x50F3D4 +static float sReticleAlpha; // size: 0x4, address: 0x50F3D8 +static class xMat4x3 sReticleMat; // size: 0x40, address: 0x51ADA0 +static signed int sTypeOfTarget; // size: 0x4, address: 0x50F3DC +static float sTimeToRetarget; // size: 0x4, address: 0x50F3E0 +class xEnt * gReticleTarget; // size: 0x4, address: 0x50F3E4 +static class RwRaster * sBowlingLaneRast; // size: 0x4, address: 0x50F3E8 +char * sBowlBlendLabels[11]; // size: 0x2C, address: 0x0 +static unsigned int sBowlBlendValues[11]; // size: 0x2C, address: 0x0 +static unsigned int sBowlNumBlendModes; // size: 0x4, address: 0x0 +static class /* @class */ { + // total size: 0x8 +public: + unsigned int level; // offset 0x0, size 0x4 + unsigned int total; // offset 0x4, size 0x4 +} patsock_totals[11]; // size: 0x58, address: 0x4ED970 +static float update_dt; // size: 0x4, address: 0x50E68C +static float last_update_dt; // size: 0x4, address: 0x50E690 +static class xVec3 update_motion; // size: 0xC, address: 0x51ADE0 +static class xVec3 req_motion; // size: 0xC, address: 0x51ADF0 +static class xVec3 precollide_motion; // size: 0xC, address: 0x51AE00 +class zGustData gust_data; // size: 0x24, address: 0x51AE10 +class xMat4x3 gPlayerAbsMat; // size: 0x40, address: 0x51AE40 +class xMat4x3 rendermat; // size: 0x40, address: 0x51AE80 +class xMat4x3 sCameraLastMat; // size: 0x40, address: 0x51AEC0 +class xVec3 sDriveVel; // size: 0xC, address: 0x51AF00 +float default_player_radius; // size: 0x4, address: 0x50E694 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +enum _CurrentPlayer lastgCurrentPlayer; // size: 0x4, address: 0x50E698 +class xVec3 floor_supp[4]; // size: 0x30, address: 0x51AF10 +float floor_dist[4]; // size: 0x10, address: 0x51AF40 +float floor_tmr[4]; // size: 0x10, address: 0x51AF50 +class xVec3 floor_safe_vec; // size: 0xC, address: 0x51AF60 +float floor_safe_tmr; // size: 0x4, address: 0x50F3F0 +static float bbash_start_ht; // size: 0x4, address: 0x50F3F4 +static float bbash_end_tmr; // size: 0x4, address: 0x50F3F8 +static float bbash_tmr; // size: 0x4, address: 0x50F3FC +static float bbash_vel; // size: 0x4, address: 0x50F400 +static signed int bbash_hit; // size: 0x4, address: 0x50F404 +static signed int bbounce_hit; // size: 0x4, address: 0x50F408 +static float bbounce_tmr; // size: 0x4, address: 0x0 +static float idle_tmr; // size: 0x4, address: 0x50F40C +static float inact_tmr; // size: 0x4, address: 0x50F410 +static float stun_power_tmr; // size: 0x4, address: 0x50F414 +static float tslide_maxspd; // size: 0x4, address: 0x50F418 +static float tslide_maxspd_tmr; // size: 0x4, address: 0x50F41C +static float tslide_inair_tmr; // size: 0x4, address: 0x50F420 +static float tslide_dbl_tmr; // size: 0x4, address: 0x50F424 +static unsigned int tslide_ground; // size: 0x4, address: 0x50F428 +static class xVec3 tslide_lastrealvel; // size: 0xC, address: 0x51AF70 +static signed int in_goo; // size: 0x4, address: 0x50F42C +static signed int lin_goo; // size: 0x4, address: 0x50F430 +static float in_goo_tmr; // size: 0x4, address: 0x50F434 +static unsigned int player_hitlist_anim; // size: 0x4, address: 0x50F438 +signed int player_hit; // size: 0x4, address: 0x50F43C +static signed int player_hit_anim; // size: 0x4, address: 0x50E69C +static unsigned int player_dead_anim; // size: 0x4, address: 0x50E6A0 +static unsigned int player_idle_anim; // size: 0x4, address: 0x50F440 +static unsigned int mount_type; // size: 0x4, address: 0x50F444 +static class xEnt * mount_object; // size: 0x4, address: 0x50F448 +static float mount_tmr; // size: 0x4, address: 0x50F44C +static class xVec3 velbase; // size: 0xC, address: 0x0 +static class xVec3 velvar; // size: 0xC, address: 0x0 +static class xVec3 last_center; // size: 0xC, address: 0x51AF80 +static unsigned int last_frame; // size: 0x4, address: 0x50F450 +unsigned char default_PowerUp[2]; // size: 0x2, address: 0x0 +static unsigned int sShouldBubbleBowl; // size: 0x4, address: 0x50F454 +static float sBubbleBowlTimer; // size: 0x4, address: 0x50F458 +static float sBubbleBowlLastWindupTime; // size: 0x4, address: 0x50E6A4 +static float sBubbleBowlMultiplier; // size: 0x4, address: 0x50E6A8 +static unsigned int sSpatulaGrabbed; // size: 0x4, address: 0x50F45C +signed int gWaitingToAutoSave; // size: 0x4, address: 0x50F460 +static enum /* @enum */ { + WallJumpResult_NoJump = 0, + WallJumpResult_Jump = 1, +} sWallJumpResult; // size: 0x4, address: 0x50F464 +static class xVec3 sWallNormal; // size: 0xC, address: 0x51AF90 +static class zSurfaceProps * sWallCollisionSurface; // size: 0x4, address: 0x50F468 +static float sTongueDblSpeedMult; // size: 0x4, address: 0x50F46C +static class /* @class */ { + // total size: 0x10 +public: + signed int anim; // offset 0x0, size 0x4 + unsigned int sndid; // offset 0x4, size 0x4 + void * data; // offset 0x8, size 0x4 + float time; // offset 0xC, size 0x4 +} player_talk; // size: 0x10, address: 0x51AFA0 +static class zNPCLassoInfo * sCurrentNPCInfo; // size: 0x4, address: 0x50F470 +static unsigned int sShouldMelee; // size: 0x4, address: 0x50F474 +unsigned int sandyHitMax; // size: 0x4, address: 0x50F478 +unsigned int patrickHitMax; // size: 0x4, address: 0x50F47C +unsigned int sbHitMax; // size: 0x4, address: 0x0 +class xAnimTransition sandyHitTran[8]; // size: 0x160, address: 0x51AFB0 +class xAnimTransition patrickHitTran[8]; // size: 0x160, address: 0x51B110 +class xAnimTransition sbHitTran[8]; // size: 0x160, address: 0x0 +class zParEmitter * gEmitBFX; // size: 0x4, address: 0x50F480 +static float sLastBubbleEmit; // size: 0x4, address: 0x50F484 +static float sLastInvulnEmit; // size: 0x4, address: 0x50F488 +static class xModelTag sSandyLFoot; // size: 0x20, address: 0x51B270 +static class xModelTag sSandyRFoot; // size: 0x20, address: 0x51B290 +static class xModelTag sSandyLHand; // size: 0x20, address: 0x51B2B0 +static class xModelTag sSandyRHand; // size: 0x20, address: 0x51B2D0 +static class xModelTag sSandyLKnee; // size: 0x20, address: 0x51B2F0 +static class xModelTag sSandyRKnee; // size: 0x20, address: 0x51B310 +static class xModelTag sSandyLElbow; // size: 0x20, address: 0x51B330 +static class xModelTag sSandyRElbow; // size: 0x20, address: 0x51B350 +static class xModelTag sSpongeBobLKnee; // size: 0x20, address: 0x51B370 +static class xModelTag sSpongeBobRKnee; // size: 0x20, address: 0x51B390 +static class xModelTag sSpongeBobLElbow; // size: 0x20, address: 0x51B3B0 +static class xModelTag sSpongeBobRElbow; // size: 0x20, address: 0x51B3D0 +static class xModelTag sSpongeBobLFoot; // size: 0x20, address: 0x51B3F0 +static class xModelTag sSpongeBobRFoot; // size: 0x20, address: 0x51B410 +static class xModelTag sSpongeBobLHand; // size: 0x20, address: 0x51B430 +static class xModelTag sSpongeBobRHand; // size: 0x20, address: 0x51B450 +static class xModelTag sPatrickLFoot; // size: 0x20, address: 0x51B470 +static class xModelTag sPatrickRFoot; // size: 0x20, address: 0x51B490 +static class xModelTag sPatrickLHand; // size: 0x20, address: 0x51B4B0 +static class xModelTag sPatrickRHand; // size: 0x20, address: 0x51B4D0 +static class xModelTag sPatrickLKnee; // size: 0x20, address: 0x51B4F0 +static class xModelTag sPatrickRKnee; // size: 0x20, address: 0x51B510 +static class xModelTag sPatrickLElbow; // size: 0x20, address: 0x51B530 +static class xModelTag sPatrickRElbow; // size: 0x20, address: 0x51B550 +static class xModelTag sPatrickMelee; // size: 0x20, address: 0x51B570 +static class PlayerStreakInfo sStreakInfo[3][4]; // size: 0x2A0, address: 0x4072B0 +float sRingDelay; // size: 0x4, address: 0x50F494 +static unsigned char SBBBashBones[8]; // size: 0x8, address: 0x4EDB60 +static unsigned char SBBBounceBones[8]; // size: 0x8, address: 0x4EDB68 +float scaleChuck; // size: 0x4, address: 0x0 +class xVec3 offsetChuck; // size: 0xC, address: 0x4EDB70 +static float sPlayerNPC_KnockBackTime; // size: 0x4, address: 0x50E6D0 +static float sPlayerNPC_KnockBackVel; // size: 0x4, address: 0x50E6D4 +static unsigned int sTrackHash[20]; // size: 0x50, address: 0x4075C0 +static unsigned int cchkButtbounce; // size: 0x4, address: 0x50F4B0 +static unsigned int cchkSquish; // size: 0x4, address: 0x50F4B4 +static signed int g_flg_loaded; // size: 0x4, address: 0x50F4B8 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void dont_move(class xEnt *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x13DFB0 +class xEnt * PlayerCollCheckOneEnt(class xEnt *, class xScene *, void *); // size: 0x0, address: 0x1473B0 +class xEnt * PlayerCollCheckOneVillain(class xEnt *, class xScene *, void *); // size: 0x0, address: 0x1469D0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +void zEntPlayer_BoulderVehicleUpdate(class xEnt *, class xScene *, float); // size: 0x0, address: 0x157340 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +signed int xent_entent; // size: 0x4, address: 0x50F96C +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +void PlayerBoundUpdate(class xEnt *, class xVec3 *); // size: 0x0, address: 0x1494A0 +unsigned int PlayerDepenQuery(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // size: 0x0, address: 0x149540 +void zEntPlayer_Render(class zEnt *); // size: 0x0, address: 0x14E360 +void zEntPlayer_Move(class xEnt *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x14DE60 +void zEntPlayer_Update(class xEnt *, class xScene *, float); // size: 0x0, address: 0x150740 +unsigned char xClumpColl_FilterFlags; // size: 0x1, address: 0x50F070 +class RpCollisionTriangle * nearestTrackCB(class RpIntersection *, class RpCollisionTriangle *, float, void *); // size: 0x0, address: 0x14B440 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +unsigned int gEnableRewardsQueue; // size: 0x4, address: 0x50E648 +unsigned int gPTankDisable; // size: 0x4, address: 0x505BB8 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * xFXBubbleRender(class RpAtomic *); // size: 0x0, address: 0x1EA900 +float dutchman_reticle_radius; // size: 0x4, address: 0x510264 +class xVec3 dutchman_reticle_center; // size: 0xC, address: 0x5E64D0 +class xEnt * dutchman_reticle_ent; // size: 0x4, address: 0x510260 +float gShadowObjectRadius; // size: 0x4, address: 0x50FB30 +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +signed int zcam_bbounce; // size: 0x4, address: 0x50F23C +void zGustUpdateEnt(class xEnt *, class xScene *, float, void *); // size: 0x0, address: 0x17F550 +void zEntPlayer_BoulderVehicleMove(class xEnt *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x157CD0 +signed int BoulderVEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x157CF0 +void PlayerRotMatchUpdateEnt(class xEnt *, class xScene *, float, void *); // size: 0x0, address: 0x143020 +signed int zEntPlayerEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x143EA0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +unsigned int BoulderRollIdleCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C4E0 +unsigned int BoulderRollMoveCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C520 +unsigned int TalkDoneCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16AE50 +unsigned int TalkCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16AE70 +unsigned int IdleCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FE20 +unsigned int SlipRunCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FF90 +unsigned int BbowlRecoverRunSlipCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E380 +unsigned int BbowlRecoverRunOutOfWorldCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E410 +unsigned int BbowlRecoverRunVictoryCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E500 +unsigned int BbowlRecoverRunScaredCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E620 +unsigned int BbowlRecoverRunCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E780 +unsigned int BbowlRecoverWalkCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E8F0 +unsigned int BbowlTossEndCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E9F0 +unsigned int BbowlWindupEndCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16EB80 +unsigned int BbowlCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16EBC0 +unsigned int BbowlCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16EE00 +unsigned int LedgeFinishCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B580 +unsigned int LedgeGrabCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B5C0 +unsigned int LedgeGrabCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B730 +unsigned int RunSlipCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170910 +unsigned int RunOutOfWorldCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170850 +unsigned int RunVictoryCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170980 +unsigned int RunScaredCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170A80 +unsigned int RunStoicCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170BB0 +unsigned int WalkCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170780 +unsigned int IdleCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170390 +unsigned int IdleSlipCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1700A0 +unsigned int BBounceToJumpCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16EE90 +unsigned int BBounceToJumpCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F0D0 +unsigned int BBounceStrikeCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F0E0 +unsigned int BBounceStrikeCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F2A0 +unsigned int BBounceAttackCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F2C0 +unsigned int BBashToJumpCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F390 +unsigned int BBashStrikeCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F3C0 +unsigned int BBashStrikeCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F3E0 +unsigned int BubbleBounceCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F2E0 +unsigned int BubbleBounceCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F340 +unsigned int BubbleSpinCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F660 +unsigned int BubbleSpinCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F7F0 +unsigned int LandCallback(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F990 +unsigned int LandSlipIdleCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FB70 +unsigned int LandSlipRunCallback(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F890 +unsigned int LandSlipRunCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FB20 +unsigned int LandRunCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FC80 +unsigned int LandHighCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FCB0 +unsigned int LandCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FD60 +unsigned int WallJumpLandFlightCallback(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CFE0 +unsigned int WallJumpLandFlightCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D000 +unsigned int WallJumpFlightLandCallback(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D010 +unsigned int WallJumpFlightLandCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D030 +unsigned int WallJumpCallback(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D040 +unsigned int WallJumpLaunchCallback(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D390 +unsigned int WallJumpLaunchCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D3D0 +unsigned int DblJumpCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C710 +unsigned int DblJumpCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C960 +unsigned int JumpApexCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CC20 +unsigned int FallCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C560 +unsigned int BoulderRollCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16BE70 +unsigned int BoulderRollWindupCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C330 +unsigned int BoulderRollCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C4C0 +unsigned int TongueDblSpinCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C680 +unsigned int TongueDblJumpCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16C6A0 +unsigned int LandNoTrackSlipIdleCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F9C0 +unsigned int LandNoTrackSlipRunCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FA40 +unsigned int LandNoTrackWalkCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FBC0 +unsigned int LandNoTrackFastCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FAC0 +unsigned int NoslideTrackCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B880 +unsigned int LandNoTrackCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FCE0 +unsigned int SlideTrackCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B890 +unsigned int LandTrackCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FD20 +unsigned int JumpCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CD10 +unsigned int TrackPrefallJumpCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B760 +unsigned int JumpCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CF90 +unsigned int TrackFallCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B800 +unsigned int TrackFallCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B820 +unsigned int NoslideTrackCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B850 +unsigned int SlideTrackCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16BB10 +unsigned int GooDeathCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E2F0 +unsigned int GooCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E330 +unsigned int DefeatedCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16DE40 +unsigned int Defeated05Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16DF40 +unsigned int Defeated04Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16DFB0 +unsigned int Defeated03Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E020 +unsigned int Defeated02Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E090 +unsigned int Defeated01Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E100 +unsigned int Hit05CB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E160 +unsigned int Hit05Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E180 +unsigned int Hit04CB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E1B0 +unsigned int Hit04Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E1D0 +unsigned int Hit03CB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E200 +unsigned int Hit03Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E220 +unsigned int Hit02CB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E250 +unsigned int Hit02Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E270 +unsigned int Hit01CB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E2A0 +unsigned int Hit01Check(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16E2C0 +unsigned int BounceCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CBB0 +unsigned int BounceCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CC00 +unsigned int BubbleBashCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F3F0 +unsigned int BubbleBashCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F5C0 +unsigned int NoSlipCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FEE0 +unsigned int InactiveCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FDB0 +unsigned int InactiveCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FDD0 +unsigned int IdleScaredCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170110 +unsigned int IdleStoicCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1702A0 +unsigned int IdleVictoryCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1701F0 +unsigned int InactiveFinishedCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FD80 +unsigned int SpatulaGrabStopCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D8F0 +unsigned int SpatulaGrabCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16DAA0 +unsigned int SpatulaGrabCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16DE30 +unsigned int StunRadiusCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168300 +unsigned int StunStartFallCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1684E0 +unsigned int PatrickStunCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B440 +unsigned int WalkScaredCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170410 +unsigned int WalkVictoryCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170540 +unsigned int WalkStoicCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170640 +unsigned int PatrickMeleeCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B350 +unsigned int PatrickAttackCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B480 +unsigned int PatrickGrabKill(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B540 +unsigned int PatrickGrabFailed(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B560 +unsigned int PatrickGrabCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16AE90 +unsigned int PatrickGrabCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B570 +unsigned int PatrickGrabThrowCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A470 +unsigned int PatrickGrabThrow(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16B4F0 +unsigned int AnyStopCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170070 +unsigned int AnyMoveCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170090 +unsigned int LCopterCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D6D0 +unsigned int LCopterCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D890 +unsigned int SandyLandCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16F870 +unsigned int LandWalkCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FC50 +unsigned int LandFastCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16FC20 +unsigned int StopLCopterCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16D600 +unsigned int RunAnyCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x170CF0 +unsigned int LassoStopCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169020 +unsigned int LassoFailRunSlipCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169E20 +unsigned int LassoFailRunOutOfWorldCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169EB0 +unsigned int LassoFailRunCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169FA0 +unsigned int LassoFailWalkCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A090 +unsigned int LassoFailIdleCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A180 +unsigned int LassoFailIdleSlipCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A220 +unsigned int LassoYankCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169170 +unsigned int LassoDestroyCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A2C0 +unsigned int LassoDestroyCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1692A0 +unsigned int LassoAboutToDestroyCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A2D0 +unsigned int LassoReyankCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A2B0 +unsigned int LassoStraightToDestroyCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A2E0 +unsigned int LassoLostTargetCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A2F0 +unsigned int MeleeCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169BC0 +unsigned int MeleeCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A390 +unsigned int JumpMeleeCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169CE0 +unsigned int LassoStartCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169990 +unsigned int LassoStartCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16A310 +unsigned int BounceStopLCopterCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x16CAB0 +unsigned int SpatulaMeleeStopCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1690C0 +unsigned int MeleeStopCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169120 +unsigned int LassoFlyCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169480 +unsigned int LassoThrowCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x169760 +unsigned int LassoSwingReleaseCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168750 +unsigned int LassoSwingReleaseCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168EF0 +unsigned int LassoSwingGroundedCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168870 +unsigned int LassoSwingCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168950 +unsigned int LassoSwingTossCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x1689B0 +unsigned int LassoSwingBeginCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168CD0 +unsigned int LassoSwingBeginCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168F90 +unsigned int LassoSwingGroundedBeginCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168C60 +unsigned int LassoSwingGroundedBeginCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x168FC0 +signed int CheckObjectAgainstMeleeBound(class xEnt *, void *); // size: 0x0, address: 0x167BF0 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +void zEntPlayer_BoulderVehicleRender(class zEnt *); // size: 0x0, address: 0x157CE0 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zEntTrigger : public zEnt { + // total size: 0x140 +public: + class xMat4x3 triggerMatrix; // offset 0xE0, size 0x40 + class xBox triggerBox; // offset 0x120, size 0x18 + unsigned int entered; // offset 0x138, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RayBundle { + // total size: 0x9C +public: + class RwV3d delta; // offset 0x0, size 0xC + float rayup; // offset 0xC, size 0x4 + class RwV3d locdelta; // offset 0x10, size 0xC + class RwV3d raystart[4]; // offset 0x1C, size 0x30 + class RwV3d raylocal[4]; // offset 0x4C, size 0x30 + float raydist[4]; // offset 0x7C, size 0x10 + unsigned int rayhit[4]; // offset 0x8C, size 0x10 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xTriggerAsset { + // total size: 0x40 +public: + class xVec3 p[4]; // offset 0x0, size 0x30 + class xVec3 direction; // offset 0x30, size 0xC + unsigned int flags; // offset 0x3C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RyzMemData { + // total size: 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xFFX { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* doEffect)(class xEnt *, class xScene *, float, void *); // offset 0x4, size 0x4 + void * fdata; // offset 0x8, size 0x4 + class xFFX * next; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zEntHangable : public zEnt { + // total size: 0x12C +public: + class xEntHangableAsset * hangInfo; // offset 0xD4, size 0x4 + class xVec3 pivot; // offset 0xD8, size 0xC + class xVec3 endpos; // offset 0xE4, size 0xC + class xVec3 vel; // offset 0xF0, size 0xC + class xVec3 swingplane; // offset 0xFC, size 0xC + float grabTimer; // offset 0x108, size 0x4 + float spin; // offset 0x10C, size 0x4 + unsigned int state; // offset 0x110, size 0x4 + class zEnt * shaggy; // offset 0x114, size 0x4 + signed int enabled; // offset 0x118, size 0x4 + class zEnt * follow; // offset 0x11C, size 0x4 + signed int moving; // offset 0x120, size 0x4 + float candle_timer; // offset 0x124, size 0x4 + signed int candle_state; // offset 0x128, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum zControlOwner { + CONTROL_OWNER_GLOBAL = 1, + CONTROL_OWNER_EVENT = 2, + CONTROL_OWNER_OOB = 4, + CONTROL_OWNER_BOSS = 8, + CONTROL_OWNER_TALK_BOX = 16, + CONTROL_OWNER_TAXI = 32, + CONTROL_OWNER_BUS_STOP = 64, + CONTROL_OWNER_TELEPORT_BOX = 128, + CONTROL_OWNER_CRUISE_BUBBLE = 256, + CONTROL_OWNER_FLY_CAM = 512, + CONTROL_OWNER_FROZEN = 1024, + CONTROL_OWNER_TURRET = 2048, + CONTROL_OWNER_REWARDANIM = 4096, + CONTROL_OWNER_BUNGEE = 8192, + CONTROL_OWNER_SPRINGBOARD = 16384, + CONTROL_OWNER_CUTSCENE = 32768, +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xPlatformFRData { + // total size: 0x10 +public: + float fspeed; // offset 0x0, size 0x4 + float rspeed; // offset 0x4, size 0x4 + float ret_delay; // offset 0x8, size 0x4 + float post_ret_delay; // offset 0xC, size 0x4 +}; +class RpIntersection { + // total size: 0x1C +public: + class RpIntersectData t; // offset 0x0, size 0x18 + enum RpIntersectType type; // offset 0x18, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +enum _tagePlayerSnd { + ePlayerSnd_Invalid = 0, + ePlayerSnd_Land = 1, + ePlayerSnd_Jump = 2, + ePlayerSnd_DoubleJump = 3, + ePlayerSnd_BowlWindup = 4, + ePlayerSnd_BowlRelease = 5, + ePlayerSnd_BubbleBashStart = 6, + ePlayerSnd_BubbleBashHit1 = 7, + ePlayerSnd_BubbleBashHitStart = 7, + ePlayerSnd_BubbleBashHit2 = 8, + ePlayerSnd_BubbleBashHitEnd = 8, + ePlayerSnd_BubbleWand = 9, + ePlayerSnd_CruiseStart = 10, + ePlayerSnd_CruiseNavigate = 11, + ePlayerSnd_CruiseHit = 12, + ePlayerSnd_BounceStrike = 13, + ePlayerSnd_BoulderStart = 14, + ePlayerSnd_BoulderRoll = 15, + ePlayerSnd_BoulderEnd = 16, + ePlayerSnd_BellyMelee = 17, + ePlayerSnd_BellySmash = 18, + ePlayerSnd_Lift1 = 19, + ePlayerSnd_Throw = 20, + ePlayerSnd_Chop = 21, + ePlayerSnd_Kick = 22, + ePlayerSnd_Heli = 23, + ePlayerSnd_LassoThrow = 24, + ePlayerSnd_LassoYank = 25, + ePlayerSnd_LassoStretch = 26, + ePlayerSnd_Ouch1 = 27, + ePlayerSnd_OuchStart = 27, + ePlayerSnd_Ouch2 = 28, + ePlayerSnd_Ouch3 = 29, + ePlayerSnd_Ouch4 = 30, + ePlayerSnd_OuchEnd = 30, + ePlayerSnd_Death = 31, + ePlayerSnd_FruitCrackle = 32, + ePlayerSnd_CheckPoint = 33, + ePlayerSnd_PickupSpatula = 34, + ePlayerSnd_PickupUnderwear = 35, + ePlayerSnd_Bus = 36, + ePlayerSnd_Taxi = 37, + ePlayerSnd_SlideLoop = 38, + ePlayerSnd_BeginBungee = 39, + ePlayerSnd_BungeeWind = 39, + ePlayerSnd_BungeeAttach = 40, + ePlayerSnd_BungeeRelease = 41, + ePlayerSnd_EndBungee = 41, + ePlayerSnd_PickupSpatulaComment = 42, + ePlayerSnd_BungeeDive1 = 43, + ePlayerSnd_BungeeDive2 = 44, + ePlayerSnd_Sneak = 45, + ePlayerSnd_SlipLoop = 46, + ePlayerSnd_Total = 47, +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xFFXRotMatchState { + // total size: 0x44 +public: + signed int lgrounded; // offset 0x0, size 0x4 + class xVec3 lfup; // offset 0x4, size 0xC + class xVec3 lfat; // offset 0x10, size 0xC + class xVec3 plfat; // offset 0x1C, size 0xC + float tmr; // offset 0x28, size 0x4 + float mrate; // offset 0x2C, size 0x4 + float tmatch; // offset 0x30, size 0x4 + float rrate; // offset 0x34, size 0x4 + float trelax; // offset 0x38, size 0x4 + float max_decl; // offset 0x3C, size 0x4 + class xFFXRotMatchState * next; // offset 0x40, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zGustAsset { + // total size: 0x0 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zVolume : public xVolume { + // total size: 0x14 +}; +class xSweptSphere { + // total size: 0x150 +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 + float dist; // offset 0x1C, size 0x4 + class xiMat4x3Union basis; // offset 0x20, size 0x40 + class xiMat4x3Union invbasis; // offset 0x60, size 0x40 + class xBox box; // offset 0xA0, size 0x18 + class xQCData qcd; // offset 0xB8, size 0x20 + float boxsize; // offset 0xD8, size 0x4 + float curdist; // offset 0xDC, size 0x4 + class xVec3 contact; // offset 0xE0, size 0xC + class xVec3 polynorm; // offset 0xEC, size 0xC + unsigned int oid; // offset 0xF8, size 0x4 + void * optr; // offset 0xFC, size 0x4 + class xModelInstance * mptr; // offset 0x100, size 0x4 + signed int hitIt; // offset 0x104, size 0x4 + class xVec3 worldPos; // offset 0x108, size 0xC + class xVec3 worldContact; // offset 0x114, size 0xC + class xVec3 worldNormal; // offset 0x120, size 0xC + class xVec3 worldTangent; // offset 0x12C, size 0xC + class xVec3 worldPolynorm; // offset 0x138, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RpCollisionTriangle { + // total size: 0x28 +public: + class RwV3d normal; // offset 0x0, size 0xC + class RwV3d point; // offset 0xC, size 0xC + signed int index; // offset 0x18, size 0x4 + class RwV3d * vertices[3]; // offset 0x1C, size 0xC +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xPlatformBreakawayData { + // total size: 0x10 +public: + float ba_delay; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 + float reset_delay; // offset 0x8, size 0x4 + unsigned int breakflags; // offset 0xC, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class zNPCTiki : public zNPCCommon { + // total size: 0x378 +public: + unsigned int tikiFlag; // offset 0x2A0, size 0x4 + class xVec3 lastAt; // offset 0x2A4, size 0xC + class xBound origLocalBound; // offset 0x2B0, size 0x4C + class xVec3 deltaPos; // offset 0x2FC, size 0xC + float timeToLive; // offset 0x308, size 0x4 + float t1; // offset 0x30C, size 0x4 + float t2; // offset 0x310, size 0x4 + float t3; // offset 0x314, size 0x4 + class xVec3 v1; // offset 0x318, size 0xC + float vel; // offset 0x324, size 0x4 + float landHt; // offset 0x328, size 0x4 + class xEnt * nonTikiParent; // offset 0x32C, size 0x4 + class xVec3 nonTikiParentDisp; // offset 0x330, size 0xC + unsigned char numParents; // offset 0x33C, size 0x1 + class zNPCTiki * parents[4]; // offset 0x340, size 0x10 + unsigned char numChildren; // offset 0x350, size 0x1 + class zNPCTiki * children[4]; // offset 0x354, size 0x10 + class zNPCTiki * nextOrphan; // offset 0x364, size 0x4 + unsigned int updatedParents; // offset 0x368, size 0x4 + signed int contactParent; // offset 0x36C, size 0x4 + void * tikiAnim; // offset 0x370, size 0x4 + float tikiAnimTime; // offset 0x374, size 0x4 +}; +class zEGenAsset : public xEntAsset { + // total size: 0x6C +public: + class xVec3 src_dpos; // offset 0x54, size 0xC + unsigned char damage_type; // offset 0x60, size 0x1 + unsigned char flags; // offset 0x61, size 0x1 + float ontime; // offset 0x64, size 0x4 + unsigned int onAnimID; // offset 0x68, size 0x4 +}; +class xPlatformERData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +enum _tagePlayerStreamSnd { + ePlayerStreamSnd_Invalid = 0, + ePlayerStreamSnd_PickupSock1 = 1, + ePlayerStreamSnd_PickupSock2 = 2, + ePlayerStreamSnd_PickupSock3 = 3, + ePlayerStreamSnd_UnderwearComment1 = 4, + ePlayerStreamSnd_UnderwearComment2 = 5, + ePlayerStreamSnd_UnderwearComment3 = 6, + ePlayerStreamSnd_EnterScene1 = 7, + ePlayerStreamSnd_EnterScene2 = 8, + ePlayerStreamSnd_EnterScene3 = 9, + ePlayerStreamSnd_EnterScene4 = 10, + ePlayerStreamSnd_EnterScene5 = 11, + ePlayerStreamSnd_EnterScene6 = 12, + ePlayerStreamSnd_EnterScene7 = 13, + ePlayerStreamSnd_SpatulaComment1 = 14, + ePlayerStreamSnd_ShinyComment1 = 15, + ePlayerStreamSnd_ShinyComment2 = 16, + ePlayerStreamSnd_ShinyComment3 = 17, + ePlayerStreamSnd_ShinyComment4 = 18, + ePlayerStreamSnd_ShinyComment5 = 19, + ePlayerStreamSnd_SpongeBallComment1 = 20, + ePlayerStreamSnd_SpongeBallComment2 = 21, + ePlayerStreamSnd_SpongeBallComment3 = 22, + ePlayerStreamSnd_CruiseComment1 = 23, + ePlayerStreamSnd_CruiseComment2 = 24, + ePlayerStreamSnd_CruiseComment3 = 25, + ePlayerStreamSnd_BowlComment1 = 26, + ePlayerStreamSnd_BowlComment2 = 27, + ePlayerStreamSnd_BowlComment3 = 28, + ePlayerStreamSnd_BowlComment4 = 29, + ePlayerStreamSnd_BowlComment5 = 30, + ePlayerStreamSnd_PushButton1 = 31, + ePlayerStreamSnd_PushButton2 = 32, + ePlayerStreamSnd_PushButton3 = 33, + ePlayerStreamSnd_BellySmashComment1 = 34, + ePlayerStreamSnd_BellySmashComment2 = 35, + ePlayerStreamSnd_BellySmashComment3 = 36, + ePlayerStreamSnd_ChopComment1 = 37, + ePlayerStreamSnd_ChopComment2 = 38, + ePlayerStreamSnd_ChopComment3 = 39, + ePlayerStreamSnd_KickComment1 = 40, + ePlayerStreamSnd_KickComment2 = 41, + ePlayerStreamSnd_KickComment3 = 42, + ePlayerStreamSnd_RopingComment1 = 43, + ePlayerStreamSnd_RopingComment2 = 44, + ePlayerStreamSnd_RopingComment3 = 45, + ePlayerStreamSnd_HeliComment1 = 46, + ePlayerStreamSnd_HeliComment2 = 47, + ePlayerStreamSnd_HeliComment3 = 48, + ePlayerStreamSnd_DestroyTiki1 = 49, + ePlayerStreamSnd_DestroyTiki2 = 50, + ePlayerStreamSnd_DestroyTiki3 = 51, + ePlayerStreamSnd_DestroyRobot1 = 52, + ePlayerStreamSnd_DestroyRobot2 = 53, + ePlayerStreamSnd_DestroyRobot3 = 54, + ePlayerStreamSnd_SeeWoodTiki = 55, + ePlayerStreamSnd_SeeLoveyTiki = 56, + ePlayerStreamSnd_SeeShhhTiki = 57, + ePlayerStreamSnd_SeeThunderTiki = 58, + ePlayerStreamSnd_SeeStoneTiki = 59, + ePlayerStreamSnd_SeeFodder = 60, + ePlayerStreamSnd_SeeHammer = 61, + ePlayerStreamSnd_SeeTarTar = 62, + ePlayerStreamSnd_SeeGLove = 63, + ePlayerStreamSnd_SeeMonsoon = 64, + ePlayerStreamSnd_SeeSleepyTime = 65, + ePlayerStreamSnd_SeeArf = 66, + ePlayerStreamSnd_SeeTubelets = 67, + ePlayerStreamSnd_SeeSlick = 68, + ePlayerStreamSnd_SeeKingJellyfish = 69, + ePlayerStreamSnd_SeePrawn = 70, + ePlayerStreamSnd_SeeDutchman = 71, + ePlayerStreamSnd_SeeSandyBoss = 72, + ePlayerStreamSnd_SeePatrickBoss1 = 73, + ePlayerStreamSnd_SeePatrickBoss2 = 74, + ePlayerStreamSnd_SeeSpongeBobBoss = 75, + ePlayerStreamSnd_SeeRobotPlankton = 76, + ePlayerStreamSnd_PickupSpecialGeneric1 = 77, + ePlayerStreamSnd_PickupSpecialGeneric2 = 78, + ePlayerStreamSnd_GoldenUnderwear4 = 79, + ePlayerStreamSnd_GoldenUnderwear5 = 80, + ePlayerStreamSnd_GoldenUnderwear6 = 81, + ePlayerStreamSnd_Combo1 = 82, + ePlayerStreamSnd_Combo2 = 83, + ePlayerStreamSnd_Combo3 = 84, + ePlayerStreamSnd_Combo4 = 85, + ePlayerStreamSnd_Combo5 = 86, + ePlayerStreamSnd_BigCombo1 = 87, + ePlayerStreamSnd_BigCombo2 = 88, + ePlayerStreamSnd_BigCombo3 = 89, + ePlayerStreamSnd_BigCombo4 = 90, + ePlayerStreamSnd_BigCombo5 = 91, + ePlayerStreamSnd_Lift1 = 92, + ePlayerStreamSnd_Exclaim1 = 93, + ePlayerStreamSnd_Exclaim2 = 94, + ePlayerStreamSnd_Exclaim3 = 95, + ePlayerStreamSnd_Exclaim4 = 96, + ePlayerStreamSnd_BeginBungee = 97, + ePlayerStreamSnd_BungeeAttachComment = 97, + ePlayerStreamSnd_BungeeBeginDive = 98, + ePlayerStreamSnd_BungeeDive1 = 98, + ePlayerStreamSnd_BungeeDive2 = 99, + ePlayerStreamSnd_BungeeEndDive = 99, + ePlayerStreamSnd_BungeeBeginDeath = 100, + ePlayerStreamSnd_BungeeDeath1 = 100, + ePlayerStreamSnd_BungeeDeath2 = 101, + ePlayerStreamSnd_BungeeDeath3 = 102, + ePlayerStreamSnd_BungeeDeath4 = 103, + ePlayerStreamSnd_BungeeDeath5 = 104, + ePlayerStreamSnd_BungeeDeath6 = 105, + ePlayerStreamSnd_BungeeDeath7 = 106, + ePlayerStreamSnd_BungeeDeath8 = 107, + ePlayerStreamSnd_BungeeDeath9 = 108, + ePlayerStreamSnd_BungeeDeath10 = 109, + ePlayerStreamSnd_BungeeDeath11 = 110, + ePlayerStreamSnd_BungeeDeath12 = 111, + ePlayerStreamSnd_BungeeDeath13 = 112, + ePlayerStreamSnd_BungeeDeath14 = 113, + ePlayerStreamSnd_BungeeDeath15 = 114, + ePlayerStreamSnd_BungeeDeath16 = 115, + ePlayerStreamSnd_BungeeDeath17 = 116, + ePlayerStreamSnd_BungeeDeath18 = 117, + ePlayerStreamSnd_BungeeEndDeath = 117, + ePlayerStreamSnd_EndBungee = 117, + ePlayerStreamSnd_Total = 118, +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int level; // offset 0x0, size 0x4 + unsigned int total; // offset 0x4, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum /* @enum */ { + WallJumpResult_NoJump = 0, + WallJumpResult_Jump = 1, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class zGust : public xBase { + // total size: 0x24 +public: + unsigned int flags; // offset 0x10, size 0x4 + class zGustAsset * asset; // offset 0x14, size 0x4 + class zVolume * volume; // offset 0x18, size 0x4 + class zVolume * fx_volume; // offset 0x1C, size 0x4 + float debris_timer; // offset 0x20, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zPlayerSndTimer { + // total size: 0x8 +public: + float timer; // offset 0x0, size 0x4 + float time; // offset 0x4, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntHangableAsset { + // total size: 0x20 +public: + unsigned int flags; // offset 0x0, size 0x4 + float pivotOffset; // offset 0x4, size 0x4 + float leverArm; // offset 0x8, size 0x4 + float gravity; // offset 0xC, size 0x4 + float accel; // offset 0x10, size 0x4 + float decay; // offset 0x14, size 0x4 + float grabDelay; // offset 0x18, size 0x4 + float stopDecel; // offset 0x1C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xPlatformOrbitData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xPlatformSpringboardData { + // total size: 0x2C +public: + float jmph[3]; // offset 0x0, size 0xC + float jmpbounce; // offset 0xC, size 0x4 + unsigned int animID[3]; // offset 0x10, size 0xC + class xVec3 jmpdir; // offset 0x1C, size 0xC + unsigned int springflags; // offset 0x28, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class iAnimSKBHeader { + // total size: 0x1C +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + unsigned short BoneCount; // offset 0x8, size 0x2 + unsigned short TimeCount; // offset 0xA, size 0x2 + unsigned int KeyCount; // offset 0xC, size 0x4 + float Scale[3]; // offset 0x10, size 0xC +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x8 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Count; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xNearFloorPoly { + // total size: 0x80 +public: + class xBox box; // offset 0x0, size 0x18 + class xVec3 center; // offset 0x18, size 0xC + class xVec3 facingVec; // offset 0x24, size 0xC + float facingDot; // offset 0x30, size 0x4 + float floorDot; // offset 0x34, size 0x4 + class xVec3 vert[3]; // offset 0x38, size 0x24 + float neardist; // offset 0x5C, size 0x4 + class xVec3 nearpt; // offset 0x60, size 0xC + signed int nearvert; // offset 0x6C, size 0x4 + signed int nearedge; // offset 0x70, size 0x4 + unsigned int oid; // offset 0x74, size 0x4 + void * optr; // offset 0x78, size 0x4 + class xModelInstance * mptr; // offset 0x7C, size 0x4 +}; +class xPlatformSplineData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zGustData { + // total size: 0x24 +public: + unsigned int gust_on; // offset 0x0, size 0x4 + class zGust * g[4]; // offset 0x4, size 0x10 + float lerp[4]; // offset 0x14, size 0x10 +}; +class rxReq { + // total size: 0x0 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class TrackPolyData { + // total size: 0x58 +public: + class xVec3 center; // offset 0x0, size 0xC + class xMat4x3 * mat; // offset 0xC, size 0x4 + class xEnt * testEnt; // offset 0x10, size 0x4 + signed int triIndex; // offset 0x14, size 0x4 + class xVec3 vert[3]; // offset 0x18, size 0x24 + float neardist; // offset 0x3C, size 0x4 + class xVec3 nearpt; // offset 0x40, size 0xC + signed int nearvert; // offset 0x4C, size 0x4 + signed int nearedge; // offset 0x50, size 0x4 + class xEnt * foundEnt; // offset 0x54, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xPlatformTeeterData { + // total size: 0xC +public: + float itilt; // offset 0x0, size 0x4 + float maxtilt; // offset 0x4, size 0x4 + float invmass; // offset 0x8, size 0x4 +}; +class xPlatformMPData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x10 +public: + signed int anim; // offset 0x0, size 0x4 + unsigned int sndid; // offset 0x4, size 0x4 + void * data; // offset 0x8, size 0x4 + float time; // offset 0xC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class Melee_cbData { + // total size: 0x10 +public: + class xEnt * ent; // offset 0x0, size 0x4 + class zScene * zsc; // offset 0x4, size 0x4 + class xBound * meleeB; // offset 0x8, size 0x4 + signed int hitsomething; // offset 0xC, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xPlatformAsset { + // total size: 0x3C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char pad; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xPlatformERData er; // offset 0x4, size 0x4 + class xPlatformOrbitData orb; // offset 0x4, size 0x4 + class xPlatformSplineData spl; // offset 0x4, size 0x4 + class xPlatformMPData mp; // offset 0x4, size 0x4 + class xPlatformMechData mech; // offset 0x4, size 0x4 + class xPlatformPenData pen; // offset 0x4, size 0x4 + class xPlatformConvBeltData cb; // offset 0x4, size 0x4 + class xPlatformFallingData fall; // offset 0x4, size 0x8 + class xPlatformFRData fr; // offset 0x4, size 0x10 + class xPlatformBreakawayData ba; // offset 0x4, size 0x10 + class xPlatformSpringboardData sb; // offset 0x4, size 0x2C + class xPlatformTeeterData teet; // offset 0x4, size 0xC + class xPlatformPaddleData paddle; // offset 0x4, size 0x38 + class xPlatformFMData fm; // offset 0x4, size 0x4 + }; +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +enum en_LASSO_EVENT { + LASS_EVNT_BEGIN = 0, + LASS_EVNT_ENDED = 1, + LASS_EVNT_GRABSTART = 2, + LASS_EVNT_GRABEND = 3, + LASS_EVNT_YANK = 4, + LASS_EVNT_ABORT = 5, + LASS_EVNT_NOMORE = 6, + LASS_EVNT_FORCEINT = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xPlatformMechData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class PlayerStreakInfo { + // total size: 0x38 +public: + unsigned int activated; // offset 0x0, size 0x4 + unsigned int streakID; // offset 0x4, size 0x4 + class xModelTag * tagA; // offset 0x8, size 0x4 + class xModelTag * tagB; // offset 0xC, size 0x4 + float alphaStart; // offset 0x10, size 0x4 + signed int streakTaper; // offset 0x14, size 0x4 + class iColor_tag colA; // offset 0x18, size 0x4 + class iColor_tag colB; // offset 0x1C, size 0x4 + class xVec3 a; // offset 0x20, size 0xC + class xVec3 b; // offset 0x2C, size 0xC +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xPlatformPaddleData { + // total size: 0x38 +public: + signed int startOrient; // offset 0x0, size 0x4 + signed int countOrient; // offset 0x4, size 0x4 + float orientLoop; // offset 0x8, size 0x4 + float orient[6]; // offset 0xC, size 0x18 + unsigned int paddleFlags; // offset 0x24, size 0x4 + float rotateSpeed; // offset 0x28, size 0x4 + float accelTime; // offset 0x2C, size 0x4 + float decelTime; // offset 0x30, size 0x4 + float hubRadius; // offset 0x34, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zEGenerator : public zEnt { + // total size: 0x114 +public: + class zEGenAsset * zasset; // offset 0xD4, size 0x4 + unsigned short flags; // offset 0xD8, size 0x2 + unsigned short num_dsts; // offset 0xDA, size 0x2 + float tmr; // offset 0xDC, size 0x4 + class xAnimFile * afile; // offset 0xE0, size 0x4 + class xVec3 src_pos; // offset 0xE4, size 0xC + class xVec3 dst_pos; // offset 0xF0, size 0xC + class xVec3 dst_off; // offset 0xFC, size 0xC + class xBase * dst; // offset 0x108, size 0x4 + class zLightning * lfx[2]; // offset 0x10C, size 0x8 +}; +class xVolumeAsset { + // total size: 0x0 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xPlatformPenData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +enum RpIntersectType { + rpINTERSECTNONE = 0, + rpINTERSECTLINE = 1, + rpINTERSECTPOINT = 2, + rpINTERSECTSPHERE = 3, + rpINTERSECTBOX = 4, + rpINTERSECTATOMIC = 5, + rpINTERSECTTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zDelayedStreamSound { + // total size: 0xC +public: + enum _tagePlayerStreamSnd start; // offset 0x0, size 0x4 + enum _tagePlayerStreamSnd end; // offset 0x4, size 0x4 + float delay; // offset 0x8, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xiMat4x3Union { + // total size: 0x40 +public: + union { // inferred + class xMat4x3 xm; // offset 0x0, size 0x40 + class RwMatrixTag im; // offset 0x0, size 0x40 + }; +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xPlatformConvBeltData { + // total size: 0x4 +public: + float speed; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwLine { + // total size: 0x18 +public: + class RwV3d start; // offset 0x0, size 0xC + class RwV3d end; // offset 0xC, size 0xC +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class RpIntersectData { + // total size: 0x18 +public: + union { // inferred + class RwLine line; // offset 0x0, size 0x18 + class RwV3d point; // offset 0x0, size 0xC + class RwSphere sphere; // offset 0x0, size 0x10 + class RwBBox box; // offset 0x0, size 0x18 + void * object; // offset 0x0, size 0x4 + }; +}; +class xPlatformFMData { + // total size: 0x4 +public: + signed int nothingyet; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xPlatformFallingData { + // total size: 0x8 +public: + float speed; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013DA50 -> 0x0013DA5C +*/ +// Range: 0x13DA50 -> 0x13DA5C +unsigned char zEntPlayerDyingInGoo() { + // Blocks + /* anonymous block */ { + // Range: 0x13DA50 -> 0x13DA5C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013DA60 -> 0x0013DBCC +*/ +// Range: 0x13DA60 -> 0x13DBCC +void zEntPlayer_MinimalRender(class zEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13DA60 -> 0x13DBCC + float reticle_order; // r20 + class xVec3 & loc; // r2 + class xVec3 cam_offset; // r29+0x60 + class xVec3 reticle_offset; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013DBD0 -> 0x0013DFA4 +*/ +// Range: 0x13DBD0 -> 0x13DFA4 +unsigned char zEntPlayer_MinimalUpdate(class xEnt * ent /* r17 */, class xScene * sc /* r16 */, float dt /* r20 */, class xVec3 & drive_motion /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13DBD0 -> 0x13DFA4 + unsigned char stop_the_madness; // r19 + class xVec3 suboldpos; // r29+0xB0 + void (* old_move)(class xEnt *, class xScene *, float, class xEntFrame *); // r18 + class xVec3 req_motion; // r29+0xA0 + class xVec3 predrive_loc; // r29+0x90 + class xVec3 & floor_norm; // r2 + float ndotm; // r1 + class xCollis * fcoll; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013DFB0 -> 0x0013DFC4 +*/ +// Range: 0x13DFB0 -> 0x13DFC4 +static void dont_move(class xEnt * ent /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13DFB0 -> 0x13DFC4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013DFD0 -> 0x0013E0B4 +*/ +// Range: 0x13DFD0 -> 0x13E0B4 +void zEntPlayer_UnloadSounds() { + // Blocks + /* anonymous block */ { + // Range: 0x13DFD0 -> 0x13E0B4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013E0C0 -> 0x0013E164 +*/ +// Range: 0x13E0C0 -> 0x13E164 +void zEntPlayer_LoadSounds() { + // Blocks + /* anonymous block */ { + // Range: 0x13E0C0 -> 0x13E164 + unsigned int bufsize; // r29+0x1C + void * info; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013E170 -> 0x0013E270 +*/ +// Range: 0x13E170 -> 0x13E270 +static void player_sound_hop_load(unsigned int hopid /* r18 */, signed int hip_or_hop /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13E170 -> 0x13E270 + signed long t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013E270 -> 0x0013E31C +*/ +// Range: 0x13E270 -> 0x13E31C +static void zEntPlayer_UpdateVelocityBlur() { + // Blocks + /* anonymous block */ { + // Range: 0x13E270 -> 0x13E31C + class xVec3 & vel; // r2 + float start_vel2; // r4 + float peak_vel2; // r3 + float blur; // r29+0x10 + float max_blur; // @ 0x0050E6E4 + float peak_vel; // @ 0x0050E6E0 + float start_vel; // @ 0x0050E6DC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013E320 -> 0x0013F260 +*/ +// Range: 0x13E320 -> 0x13F260 +static void PlayerLedgeUpdate(class xEnt * ent /* r17 */, class xScene * sc /* r30 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13E320 -> 0x13F260 + class zLedgeGrabParams * ledge; // r16 + float tnext; // r25 + float s; // r24 + class xMat4x3 tmpmat; // r29+0x780 + float animTime; // r6 + float timelerp; // r23 + float animDiffZ; // r22 + signed int sidx; // r3 + float sfactor; // r9 + float sscale; // r24 + class xNearFloorPoly nfpoly; // r29+0x700 + signed int chknum; // r21 + class xSurface * surface; // r3 + float neardx; // r22 + float neardz; // r21 + class xRay3 groundray; // r29+0x6D0 + class xCollis groundcoll; // r29+0x680 + class xVec3 bpos; // r29+0x7C0 + class xEntCollis collis; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F260 -> 0x0013F4A0 +*/ +// Range: 0x13F260 -> 0x13F4A0 +static void PlayerLedgeInit(class zLedgeGrabParams * ledge /* r18 */, class xModelInstance * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F260 -> 0x13F4A0 + signed int i; // r7 + class xAnimState * idle; // r16 + class xAnimState * grab; // r17 + class xVec3 tran[64]; // r29+0x440 + class xQuat quat[64]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F4A0 -> 0x0013F658 +*/ +// Range: 0x13F4A0 -> 0x13F658 +static void PlayerHackFixBbashMiss(class xModelInstance * model /* r29+0xAC */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F4A0 -> 0x13F658 + signed int i; // r21 + class xAnimState * astate; // r20 + class xVec3 tran[2]; // r29+0x6B0 + class iAnimSKBHeader * skb; // r19 + class xVec3 tranList[128]; // r29+0xB0 + signed int tranCount; // r2 + float bbspeed[4]; // @ 0x00407640 + float bbadjust[4][2]; // @ 0x00407620 + char * bbstate[4]; // @ 0x00407610 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F660 -> 0x0013F76C +*/ +// Range: 0x13F660 -> 0x13F76C +static void PlayerBeginCollideNoBupdate(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F660 -> 0x13F76C + unsigned char idx; // r9 + class xCollis * coll; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F770 -> 0x0013F778 +*/ +// Range: 0x13F770 -> 0x13F778 +void zEntPlayer_SNDNotifyPlaying(unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F770 -> 0x13F778 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F780 -> 0x0013F7AC +*/ +// Range: 0x13F780 -> 0x13F7AC +void zEntPlayer_SNDStopStream() { + // Blocks + /* anonymous block */ { + // Range: 0x13F780 -> 0x13F7AC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F7B0 -> 0x0013F878 +*/ +// Range: 0x13F7B0 -> 0x13F878 +void zEntPlayer_SNDStop(enum _tagePlayerSnd player_snd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F7B0 -> 0x13F878 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F880 -> 0x0013F8E4 +*/ +// Range: 0x13F880 -> 0x13F8E4 +void zEntPlayer_SNDSetPitch(enum _tagePlayerSnd player_snd /* r2 */, float new_pitch /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F880 -> 0x13F8E4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F8F0 -> 0x0013F954 +*/ +// Range: 0x13F8F0 -> 0x13F954 +void zEntPlayer_SNDSetVol(enum _tagePlayerSnd player_snd /* r2 */, float new_vol /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F8F0 -> 0x13F954 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013F960 -> 0x0013FC84 +*/ +// Range: 0x13F960 -> 0x13FC84 +void zEntPlayer_SNDPlayRandom(enum _tagePlayerSnd player_snd_start /* r18 */, enum _tagePlayerSnd player_snd_end /* r17 */, float delay /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13F960 -> 0x13FC84 + signed int diff; // r16 + signed int rand_array[32]; // r29+0x70 + signed int i; // r5 + signed int i; // r20 + unsigned int j; // r4 + signed int swap; // r6 + signed int pick_sound; // r9 + signed int i; // r4 + signed int possible; // r8 + unsigned int returned_snd_id; // r19 + signed int i; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0013FC90 -> 0x001401B0 +*/ +// Range: 0x13FC90 -> 0x1401B0 +void zEntPlayer_SNDPlayStreamRandom(enum _tagePlayerStreamSnd player_snd_start /* r19 */, enum _tagePlayerStreamSnd player_snd_end /* r18 */, float delay /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x13FC90 -> 0x1401B0 + signed int i; // r6 + signed int diff; // r17 + signed int i; // r6 + signed int i; // r9 + signed int rand_array[32]; // r29+0x80 + signed int i; // r5 + signed int i; // r16 + unsigned int j; // r4 + signed int swap; // r6 + signed int pick_sound; // r9 + signed int first_valid; // r21 + signed int num_valid; // r5 + signed int i; // r4 + signed int possible; // r10 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001401B0 -> 0x001401EC +*/ +// Range: 0x1401B0 -> 0x1401EC +void zEntPlayer_SNDPlayStreamRandom(unsigned int lower /* r2 */, unsigned int upper /* r2 */, enum _tagePlayerStreamSnd player_snd_start /* r2 */, enum _tagePlayerStreamSnd player_snd_end /* r2 */, float delay /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1401B0 -> 0x1401EC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001401F0 -> 0x0014030C +*/ +// Range: 0x1401F0 -> 0x14030C +void zEntPlayer_SNDPlayStream(unsigned int lower /* r2 */, unsigned int upper /* r2 */, enum _tagePlayerStreamSnd player_snd /* r19 */, unsigned int flags /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1401F0 -> 0x14030C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00140310 -> 0x001403B0 +*/ +// Range: 0x140310 -> 0x1403B0 +void zEntPlayer_SNDPlayDelayed(float seconds /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x140310 -> 0x1403B0 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001403B0 -> 0x001404A0 +*/ +// Range: 0x1403B0 -> 0x1404A0 +void zEntPlayer_SNDPlayStream(enum _tagePlayerStreamSnd player_snd /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1403B0 -> 0x1404A0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001404A0 -> 0x001405A8 +*/ +// Range: 0x1404A0 -> 0x1405A8 +void zEntPlayer_SNDPlay(enum _tagePlayerSnd player_snd /* r2 */, float delay /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1404A0 -> 0x1405A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001405B0 -> 0x00142D30 +*/ +// Range: 0x1405B0 -> 0x142D30 +static void zEntPlayer_SNDInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1405B0 -> 0x142D30 + signed int player; // r9 + signed int snd; // r5 + signed int i; // r4 + signed int snd; // r6 + signed int snd; // r5 + signed int snd; // r6 + float minutes; // r1 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00142D30 -> 0x00142FD0 +*/ +// Range: 0x142D30 -> 0x142FD0 +void zEntPlayer_LoadCheckPoint() { + // Blocks + /* anonymous block */ { + // Range: 0x142D30 -> 0x142FD0 + class xEnt & p; // r2 + class xModelInstance & m; // r17 + class xEntFrame & f; // r16 + class zCheckPoint & cp; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00142FD0 -> 0x00143018 +*/ +// Range: 0x142FD0 -> 0x143018 +void zEntPlayer_StoreCheckPoint(class xVec3 * pos /* r2 */, float rot /* r29 */, unsigned int initCamID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x142FD0 -> 0x143018 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00143020 -> 0x00143504 +*/ +// Range: 0x143020 -> 0x143504 +static void PlayerRotMatchUpdateEnt(class xEnt * ent /* r18 */, float dt /* r22 */, void * fdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x143020 -> 0x143504 + class xFFXRotMatchState * rms; // r17 + class xCollis * coll; // r2 + signed int hit_it; // r19 + class xSurface * surf; // r2 + signed int grounded; // r16 + class xVec3 * fup; // r20 + class xVec3 * eup; // r19 + class xVec3 nfup; // r29+0x130 + class xVec3 neup; // r29+0x120 + float fup_len; // r29+0x140 + float eup_len; // r29+0x140 + float fdecl; // r21 + float edecl; // r20 + class xVec3 raxis; // r29+0x110 + float rang; // r29+0x140 + float dang; // r29+0x140 + class xMat4x3 rot; // r29+0xB0 + float s; // r1 + class xVec3 * eup; // r2 + class xVec3 neup; // r29+0x100 + float eup_len; // r29+0x140 + class xVec3 raxis; // r29+0xF0 + float rang; // r29+0x140 + float dang; // r29+0x140 + class xMat4x3 rot; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00143510 -> 0x00143608 +*/ +// Range: 0x143510 -> 0x143608 +static void PlayerTeeterCheck(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x143510 -> 0x143608 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00143610 -> 0x00143EA0 +*/ +// Range: 0x143610 -> 0x143EA0 +static void PlayerSwingUpdate(class xEnt * ent /* r20 */, float mag /* r25 */, float angle /* r23 */, float dt /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x143610 -> 0x143EA0 + float hangDist; // r23 + class xVec3 unitHang; // r29+0x100 + class xVec3 accel; // r29+0xF0 + class xVec3 unitDefl; // r29+0xE0 + class xVec3 unitVel; // r29+0xD0 + signed int i; // r5 + class xVec3 unitAccel; // r29+0xC0 + float lerpDiff; // r2 + float newLerp; // r1 + float curFactor; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00143EA0 -> 0x00145040 +*/ +// Range: 0x143EA0 -> 0x145040 +signed int zEntPlayerEventCB(class xBase * from /* r16 */, class xBase * to /* r20 */, unsigned int toEvent /* r19 */, float * toParam /* r18 */, class xBase * toParamWidget /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x143EA0 -> 0x145040 + signed int iParam; // r17 + signed int num; // r4 + signed int s; // r3 + unsigned int p; // r4 + class zEnt * z; // r2 + char * astatename; // r16 + class zShrapnelAsset * shrap; // r2 + class xVec3 currVel; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00145040 -> 0x001455E0 +*/ +// Range: 0x145040 -> 0x1455E0 +void zEntPlayerCollTrigger(class xEnt * ent /* r20 */, class xScene * sc /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x145040 -> 0x1455E0 + unsigned int i; // r19 + unsigned int inside; // r18 + class zEntTrigger * trig; // r17 + class xTriggerAsset * tasset; // r16 + class xIsect isect; // r29+0x170 + class xVec3 xformVec; // r29+0x1A0 + class xSphere sphere; // r29+0x160 + class xIsect isect; // r29+0x130 + class xCylinder cylinder; // r29+0x110 + class xIsect isect; // r29+0xE0 + class xSphere sphere; // r29+0xD0 + class xIsect isect; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001455E0 -> 0x00145878 +*/ +// Range: 0x1455E0 -> 0x145878 +void zEntPlayerCollide(class xEnt * ent /* r17 */, class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1455E0 -> 0x145878 + class xCollis * colls; // r5 + class xCollis * cend; // r5 + class xCollis * c; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00145880 -> 0x001466BC +*/ +// Range: 0x145880 -> 0x1466BC +static void PlayerCollsSelectDepen(class xEnt * p /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x145880 -> 0x1466BC + class xCollis * colls; // r20 + class xMat4x3 * mat; // r19 + class xCollis * c; // r18 + class xCollis * cend; // r17 + class xVec3 motion_delta; // r29+0xD0 + unsigned char idx; // r16 + class xSurface * surface; // r2 + class zSurfaceProps * surfaceProperties; // r2 + class xVec3 vec; // r29+0xC0 + class xCollis * curr; // r3 + class xCollis * coll; // r16 + float h_dot_n; // r20 + float depen_len; // r2 + class xEnt * cent; // r16 + class xSurface * surf; // r22 + class xCollis * cfloor; // r2 + class xCollis * cceil; // r16 + class xSurface * sfloor; // r2 + float floordot; // r29+0x100 + signed int i; // r6 + float w[4]; // r29+0x90 + signed int num_walls; // r5 + class xCollis * first_wall; // r4 + class xCollis * inside_wall; // r3 + class xCollis * cfront; // r7 + class xCollis * crear; // r6 + float dx; // r29+0xFC + float dz; // r29+0xF8 + float dx; // r29+0xF4 + float dz; // r29+0xF0 + class xCollis * cleft; // r7 + class xCollis * cright; // r6 + float dx; // r29+0xEC + float dz; // r29+0xE8 + float dx; // r29+0xE4 + float dz; // r29+0xE0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001466C0 -> 0x001468E8 +*/ +// Range: 0x1466C0 -> 0x1468E8 +static void CalcCombinedDepen(float & dx /* r2 */, float & dz /* r2 */, float ax /* r29 */, float az /* r29 */, float bx /* r29 */, float bz /* r29 */, float fudge /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1466C0 -> 0x1468E8 + float normX; // r7 + float normZ; // r6 + float nddot; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001468F0 -> 0x001469C8 +*/ +// Range: 0x1468F0 -> 0x1469C8 +static void PlayerCollisTranslate(class xCollis * c /* r2 */, float x /* r29 */, float y /* r29 */, float z /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1468F0 -> 0x1469C8 + float dx; // r7 + float dy; // r6 + float dz; // r5 + float dist2; // r3 + float s; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001469D0 -> 0x00146E64 +*/ +// Range: 0x1469D0 -> 0x146E64 +static class xEnt * PlayerCollCheckOneVillain(class xEnt * ent /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1469D0 -> 0x146E64 + class xEnt * p; // r17 + class xCollis * coll; // r16 + float playerOldRad; // r20 + class xSphere tmpsph; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00146E80 -> 0x001473B0 +*/ +// Range: 0x146E80 -> 0x1473B0 +static unsigned int CollidePyramidBoxTop(class xCollis * coll /* r18 */, class xBox * box /* r17 */, float height /* r29+0x200 */, class xSphere * sph /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x146E80 -> 0x1473B0 + float dx; // r6 + float dz; // r4 + class xVec3 point; // r29+0x1F0 + class xVec3 corner[2]; // r29+0x1A0 + class xVec3 quaddir; // r29+0x1E0 + class xSweptSphere sws; // r29+0x50 + class xVec3 start; // r29+0x1D0 + class xVec3 end; // r29+0x1C0 + float normX; // r21 + float normZ; // r20 + float normMag; // r1 + float boxMaxSize; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001473B0 -> 0x0014795C +*/ +// Range: 0x1473B0 -> 0x14795C +static class xEnt * PlayerCollCheckOneEnt(class xEnt * ent /* r18 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1473B0 -> 0x14795C + class xEnt * p; // r17 + class xCollis * coll; // r16 + unsigned int modl_coll; // r19 + class xSphere tmpsph; // r29+0x50 + unsigned char ncolls; // r2 + unsigned char idx; // r5 + float rsum; // r7 + float dx; // r5 + float dy; // r3 + float dz; // r29+0x60 + float hsqr; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00147960 -> 0x001485E0 +*/ +// Range: 0x147960 -> 0x1485E0 +void zEntPlayerReset(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x147960 -> 0x1485E0 + class xAnimState * curr; // r7 + class xModelInstance * minst; // r4 + unsigned int index; // r3 + class iColor_tag black; // r29+0x2C + class iColor_tag clear; // r29+0x28 + unsigned int i; // r4 + class xEnt * trackEnt; // r3 + class RwTexture * tex; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001485E0 -> 0x00148724 +*/ +// Range: 0x1485E0 -> 0x148724 +void zEntPlayerPreReset() { + // Blocks + /* anonymous block */ { + // Range: 0x1485E0 -> 0x148724 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00148730 -> 0x00148738 +*/ +// Range: 0x148730 -> 0x148738 +void zEntPlayerExit() { + // Blocks + /* anonymous block */ { + // Range: 0x148730 -> 0x148738 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00148740 -> 0x001491BC +*/ +// Range: 0x148740 -> 0x1491BC +static void zEntPlayerDriveUpdate(class xEnt * p /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x148740 -> 0x1491BC + class xCollis * coll; // r17 + class zPlatform * plat; // r19 + class xEntDrive * drv; // r18 + class zPlatform * oplat; // r17 + class xSurface * surf; // r2 + float jmph; // r29+0x70 + unsigned int superbounce; // r18 + float * jmphs; // r3 + class xVec3 * jmpdir; // r17 + class xAnimPlay * aplay; // r16 + class xAnimState * spring_state; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001491C0 -> 0x0014949C +*/ +// Range: 0x1491C0 -> 0x14949C +static void zEntPlayerSurfDamageUpdate(class xEnt * p /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1491C0 -> 0x14949C + class xCollis * coll; // r18 + class xCollis * cend; // r17 + class xSurface * surf; // r2 + signed int damaged; // r7 + class zSurfaceProps * prop; // r16 + float dx; // r4 + float dz; // r2 + float mag; // r1 + class xEnt * cent; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001494A0 -> 0x00149538 +*/ +// Range: 0x1494A0 -> 0x149538 +static void PlayerBoundUpdate(class xEnt * ent /* r16 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1494A0 -> 0x149538 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00149540 -> 0x001495F4 +*/ +// Range: 0x149540 -> 0x1495F4 +static unsigned int PlayerDepenQuery(class xCollis * coll /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x149540 -> 0x1495F4 + class xSurface * surf; // r2 + class zSurfaceProps * prop; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00149600 -> 0x0014A498 +*/ +// Range: 0x149600 -> 0x14A498 +static void zEntPlayerFloorUpdate(class xEnt * p /* r23 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x149600 -> 0x14A498 + class xCollis * fcoll; // r29+0xB0 + class xSurface * fsurf; // r21 + class xVec3 * vel; // r16 + float velmag; // r20 + float decelmag; // r4 + float slickLerp; // r1 + class xVec3 * fnorm; // r30 + class xRay3 ray; // r29+0x140 + class xCollis rcoll; // r29+0xF0 + class xEnt * fent; // r20 + signed int i; // r19 + float dave; // r20 + signed int safecount; // r18 + float dmin; // r3 + float dmax; // r2 + class xVec3 * vel; // r16 + class xVec3 X; // r29+0x180 + class xVec3 D; // r29+0x170 + class xMat3x3 N_to_Up; // r29+0xC0 + float ddotm; // r2 + float s; // r2 + float s; // r2 + class xVec3 lorigins[4]; // @ 0x00407590 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014A4A0 -> 0x0014A7E4 +*/ +// Range: 0x14A4A0 -> 0x14A7E4 +static void zEntPlayerTSlideUpdate(class xEnt * p /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14A4A0 -> 0x14A7E4 + float t; // r2 + float s; // r1 + float t; // r2 + float s; // r1 + float tmax; // @ 0x0050F4A8 + signed char @11329; // @ 0x0050F4AC + float tmax; // @ 0x0050F4A0 + signed char @11317; // @ 0x0050F4A4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014A7F0 -> 0x0014B438 +*/ +// Range: 0x14A7F0 -> 0x14B438 +static void SlideTrackUpdate(class xEnt * p /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14A7F0 -> 0x14B438 + class xCollis colltmp; // r29+0x1B0 + class xSphere collsph; // r29+0x1A0 + class xQCData qcd; // r29+0x180 + class RpIntersection isect; // r29+0x160 + class xVec3 * center; // r16 + class TrackPolyData tpoly; // r29+0x100 + signed int triIndex; // r19 + unsigned int i; // r18 + class xEnt * trackEnt; // r17 + class RwFrame * frame; // r4 + class RpGeometry * geom; // r3 + class RpTriangle * tri; // r15 + class RwTexCoords * tex; // r14 + class RwV3d * vert; // r13 + unsigned short * triidx; // r2 + float denom; // r20 + float vcenter; // r17 + float dvdx; // r29+0x200 + float dvdz; // r3 + float mag; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014B440 -> 0x0014B9CC +*/ +// Range: 0x14B440 -> 0x14B9CC +static class RpCollisionTriangle * nearestTrackCB(class RpCollisionTriangle * collTriangle /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14B440 -> 0x14B9CC + class TrackPolyData * tpoly; // r2 + float currnear; // r3 + signed int currvert; // r4 + signed int curredge; // r3 + class xVec3 xformVert[4]; // r29+0x30 + signed int i; // r10 + float pdx[3]; // r29+0x70 + float pdz[3]; // r29+0x60 + float numer; // r20 + float denom; // r4 + float t; // r5 + float testdist2; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014B9D0 -> 0x0014C058 +*/ +// Range: 0x14B9D0 -> 0x14C058 +static void zEntPlayerVelUpdate(class xEnt * ent /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14B9D0 -> 0x14C058 + class xVec3 * v; // r16 + float min; // r1 + float interp; // r4 + float speedMult; // r1 + float gft; // r29+0x50 + float s; // r1 + class xCollis * coll; // r4 + class xEnt * flent; // r5 + float mft; // r2 + float rft; // r1 + float gft; // r2 + float s; // r1 + float aft; // r2 + float s; // r1 + float velen2; // r29+0x50 + class xCollis * colls; // r6 + class xCollis * coll; // r2 + signed int i; // r5 + float dh; // r1 + float sft; // r4 + float s; // r2 + float h_dot_v; // r1 + float v_dot_n; // r1 + float s; // r2 + class xVec3 boost; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014C060 -> 0x0014C1DC +*/ +// Range: 0x14C060 -> 0x14C1DC +static void zEntPlayerEGenUpdate(class xEnt * p /* r21 */, class xScene * sc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14C060 -> 0x14C1DC + class xCollis * earc_coll; // r20 + unsigned int i; // r19 + class zEGenerator * eg; // r18 + class xIsect isx; // r29+0x90 + float ra; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014C1E0 -> 0x0014C83C +*/ +// Range: 0x14C1E0 -> 0x14C83C +static void zEntPlayerJumpUpdate(class xEnt * ent /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14C1E0 -> 0x14C83C + float lerp; // r3 + class xCollis * cfloor; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014C840 -> 0x0014CAA0 +*/ +// Range: 0x14C840 -> 0x14CAA0 +static void zEntPlayerJumpLand(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14C840 -> 0x14CAA0 + float diff; // r21 + float vol; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014CAA0 -> 0x0014CB28 +*/ +// Range: 0x14CAA0 -> 0x14CB28 +void zEntPlayerJumpStart(class xEnt * ent /* r2 */, class zJumpParam * jump /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14CAA0 -> 0x14CB28 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014CB30 -> 0x0014CB80 +*/ +// Range: 0x14CB30 -> 0x14CB80 +void CalcJumpImpulse(class zJumpParam * param /* r16 */, class zPlayerSettings * settings /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14CB30 -> 0x14CB80 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014CB80 -> 0x0014CE14 +*/ +// Range: 0x14CB80 -> 0x14CE14 +static float CalcJumpImpulse_Smooth(float g /* r29+0x50 */, float j /* r29+0x50 */, float h /* r29+0x50 */, float Tgc /* r29 */, float Tgs /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14CB80 -> 0x14CE14 + unsigned int i; // r5 + unsigned int solcnt; // r2 + float A; // r1 + float B; // r29+0x50 + float Kc; // r28 + float D; // r6 + float AF; // r27 + float Kbf; // r26 + float Tm[3]; // r29+0x40 + float Tmfound; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014CE20 -> 0x0014CF08 +*/ +// Range: 0x14CE20 -> 0x14CF08 +void zEntPlayer_GivePatsSocksCurrentLevel(signed int quantity /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14CE20 -> 0x14CF08 + unsigned int level; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014CF10 -> 0x0014CF8C +*/ +// Range: 0x14CF10 -> 0x14CF8C +void zEntPlayer_GiveSpatula() { + // Blocks + /* anonymous block */ { + // Range: 0x14CF10 -> 0x14CF8C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014CF90 -> 0x0014CFF8 +*/ +// Range: 0x14CF90 -> 0x14CFF8 +void zEntPlayer_GiveHealth(signed int quantity /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14CF90 -> 0x14CFF8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014D000 -> 0x0014D17C +*/ +// Range: 0x14D000 -> 0x14D17C +unsigned int zEntPlayer_MoveInfo() { + // Blocks + /* anonymous block */ { + // Range: 0x14D000 -> 0x14D17C + unsigned int animflags; // r3 + unsigned int infoflags; // r18 + char * nam_ast; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014D180 -> 0x0014DB9C +*/ +// Range: 0x14D180 -> 0x14DB9C +signed int zEntPlayer_Damage(class xBase * src /* r17 */, unsigned int damage /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14D180 -> 0x14DB9C + class iColor_tag c_inside; // r29+0x3C + class iColor_tag c_outside; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014DBA0 -> 0x0014DCBC +*/ +// Range: 0x14DBA0 -> 0x14DCBC +void zEntPlayer_DamageKnockIntoAir(float height /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14DBA0 -> 0x14DCBC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014DCC0 -> 0x0014DDB0 +*/ +// Range: 0x14DCC0 -> 0x14DDB0 +signed int zEntPlayer_DamageNPCKnockBack(class xBase * src /* r2 */, unsigned int damage /* r2 */, class xVec3 * npcPos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14DCC0 -> 0x14DDB0 + float dx; // r4 + float dz; // r3 + float mag; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014DDB0 -> 0x0014DE28 +*/ +// Range: 0x14DDB0 -> 0x14DE28 +signed int zEntPlayer_Damage(class xBase * src /* r2 */, unsigned int damage /* r2 */, class xVec3 * knockback /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14DDB0 -> 0x14DE28 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014DE30 -> 0x0014DE60 +*/ +// Range: 0x14DE30 -> 0x14DE60 +void zEntPlayer_setBoulderMode(unsigned int mode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14DE30 -> 0x14DE60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014DE60 -> 0x0014E360 +*/ +// Range: 0x14DE60 -> 0x14E360 +static void zEntPlayer_Move(class xEnt * ent /* r17 */, float dt /* r20 */, class xEntFrame * frame /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14DE60 -> 0x14E360 + signed int px; // r7 + signed int pz; // r6 + class xVec3 inverseNormal; // r29+0x70 + class zPlayerGlobals & p; // r6 + class xVec3 damp; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014E360 -> 0x0014EE8C +*/ +// Range: 0x14E360 -> 0x14EE8C +void zEntPlayer_Render(class zEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14E360 -> 0x14EE8C + float rootZadjust; // r20 + class RwMatrixTag rootOldMat; // r29+0x50 + class xAnimSingle * ablend; // r18 + class xVec3 rootZvec; // r29+0x100 + class xModelInstance * minst; // r5 + class xAnimSingle * asingle; // r18 + class xVec3 a; // r29+0xF0 + class xVec3 b; // r29+0xE0 + class xVec3 wand_center; // r29+0xD0 + unsigned int showShell; // r9 + class xModelInstance * minst; // r2 + unsigned int index; // r8 + float orderDot; // r20 + class xModelInstance * minst; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014EE90 -> 0x0014EF98 +*/ +// Range: 0x14EE90 -> 0x14EF98 +static void zEntPlayerCheckShoePop() { + // Blocks + /* anonymous block */ { + // Range: 0x14EE90 -> 0x14EF98 + class xEnt & ent; // r20 + class xModelInstance * * mlist; // r7 + signed int bone_index[2]; // r29+0x68 + class xModelInstance * model_index[2]; // r29+0x60 + signed int i; // r19 + signed int bone; // r4 + class xModelInstance * m; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014EFA0 -> 0x0014EFD4 +*/ +// Range: 0x14EFA0 -> 0x14EFD4 +void zEntPlayerUpdateModel() { + // Blocks + /* anonymous block */ { + // Range: 0x14EFA0 -> 0x14EFD4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014EFE0 -> 0x0014F65C +*/ +// Range: 0x14EFE0 -> 0x14F65C +static void zEntPlayerUpdateModelSB() { + // Blocks + /* anonymous block */ { + // Range: 0x14EFE0 -> 0x14F65C + class xEnt & ent; // r18 + class xModelInstance * * mlist; // r17 + class xModelInstance * m; // r4 + class xAnimSingle * asingle; // r16 + class xAnimState * tonguestate; // r2 + signed int bone_index[2]; // r29+0x98 + class xModelInstance * model_index[2]; // r29+0x90 + signed int i; // r21 + signed int bone; // r22 + float on_time; // r21 + float off_time; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014F660 -> 0x0014FB7C +*/ +// Range: 0x14F660 -> 0x14FB7C +static void zEntPlayer_ReticleRender() { + // Blocks + /* anonymous block */ { + // Range: 0x14F660 -> 0x14FB7C + float size; // r21 + float bounce; // r20 + float bound_radius; // r22 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FCA0 -> 0x0014FFAC +*/ +// Range: 0x14FCA0 -> 0x14FFAC +static void zEntPlayer_BubbleBowlLaneRender(class zEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FCA0 -> 0x14FFAC + class xShadowCache cache; // r29+0xA0 + class xVec3 center; // r29+0x3110 + float factor; // r21 + class xMat4x3 matrix; // r29+0x60 + unsigned int i; // r16 + class xEnt * ep; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FFB0 -> 0x001500A8 +*/ +// Range: 0x14FFB0 -> 0x1500A8 +void zEntPlayer_ShadowModelDisable() { + // Blocks + /* anonymous block */ { + // Range: 0x14FFB0 -> 0x1500A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001500B0 -> 0x001501A8 +*/ +// Range: 0x1500B0 -> 0x1501A8 +void zEntPlayer_ShadowModelEnable() { + // Blocks + /* anonymous block */ { + // Range: 0x1500B0 -> 0x1501A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001501B0 -> 0x001501BC +*/ +// Range: 0x1501B0 -> 0x1501BC +void zEntPlayer_PatrickLaunch(class xEnt * patLauncher /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1501B0 -> 0x1501BC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001501C0 -> 0x00150734 +*/ +// Range: 0x1501C0 -> 0x150734 +void zEntPlayer_CheckCritterContact(class xEnt * player /* r20 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1501C0 -> 0x150734 + signed int i; // r19 + class xEntCollis * plyrcol; // r22 + class xCollis * colrec; // r3 + class zNPCCommon * npc; // r18 + class xPsyche * psy; // r17 + float tym_inGoal; // r29+0x100 + unsigned int anid_player; // r7 + signed int found; // r3 + signed int k; // r6 + signed int k; // r6 + unsigned int mvinf; // r2 + class xVec3 dir_push; // r29+0xF0 + class xVec3 vel_push; // r29+0xE0 + unsigned int hashes_pa[3]; // @ 0x0051BF58 + unsigned int hashes_ss[3]; // @ 0x0051BF48 + signed char @10192; // @ 0x0050F49C + signed char @10189; // @ 0x0050F498 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00150740 -> 0x001567E0 +*/ +// Range: 0x150740 -> 0x1567E0 +void zEntPlayer_Update(class xEnt * ent /* r20 */, class xScene * sc /* r19 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x150740 -> 0x1567E0 + signed int j; // r4 + class xAnimState * astate; // r3 + float mvelx; // r29+0x11D0 + float mvelz; // r29+0x11D0 + float s; // r29+0x11D0 + unsigned int total; // r2 + class xEnt * oldTarget; // r16 + class xEnt * oldTarget; // r16 + class xVec3 pos; // r29+0x11B0 + class xAnimSingle * single; // r2 + class xAnimState * astate; // r16 + class xParEmitterCustomSettings info; // r29+0xE40 + signed int j; // r16 + float ang; // r20 + class zScene * zsc; // r2 + class xParEmitterCustomSettings info; // r29+0xCD0 + class xVec3 vel; // r29+0x11A0 + class xVec3 tmp; // r29+0x1190 + float rate; // r29+0x11D0 + class xBound slideB; // r29+0xC80 + class xVec3 normvel; // r29+0x1180 + unsigned char * bonelist; // r16 + class xAnimSingle * single; // r17 + unsigned int num; // r17 + unsigned char * bp; // r18 + class xVec3 * posbuf; // r23 + class xVec3 * velbuf; // r29+0xB0 + class xVec3 * pp; // r16 + class xVec3 * vp; // r22 + unsigned int j; // r30 + class xMat4x3 mat; // r29+0xC40 + class xAnimSingle * single; // r16 + class xAnimState * astate; // r18 + class iColor_tag black; // r29+0x11CC + class iColor_tag clear; // r29+0x11C8 + signed int anim_done; // r2 + unsigned int i; // r6 + float rad2; // r9 + float radold2; // r8 + float sdist2; // r5 + float sdistold2; // r29+0x11D0 + float ydist; // r1 + class xEnt * vill; // r4 + unsigned int stuckforce; // r16 + float playerVel; // r20 + float actualVel; // r1 + class xRay3 testRay; // r29+0xC10 + class xCollis testColl; // r29+0xBC0 + float old_yvel; // r20 + signed int num_updates; // r17 + signed int updidx; // r22 + class xVec3 suboldpos; // r29+0x1170 + class xVec3 predrive_pos; // r29+0x1160 + class xFFX * gust_fkt; // r16 + class xVec3 motion; // r29+0x1150 + float sett; // r1 + float ndotm; // r1 + float sett2; // r1 + float sft; // r2 + float fg; // r2 + float m; // r5 + float fg; // r29+0x11D0 + float s; // r2 + float m; // r2 + unsigned char hitting_floor; // r3 + unsigned char hitting_wall; // r4 + class xVec3 & player_loc; // r2 + float dist2; // r21 + class xVec3 driveDist; // r29+0x1140 + class xCollis bbc; // r29+0xB70 + class xBox bbox; // r29+0xB50 + float dist; // r29+0x11D0 + unsigned int redo_catchtunnel; // r16 + class xVec3 vstart; // r29+0x1130 + class xVec3 vend; // r29+0x1120 + class xSweptSphere sws; // r29+0xA00 + unsigned int iter; // r17 + class xSweptSphere swsredo[3]; // r29+0x610 + class xSweptSphere * swscurr; // r16 + class xVec3 totalTan; // r29+0x1110 + float tandot; // r1 + float catchdot; // r7 + float distremain; // r9 + class xVec3 deltaremain; // r29+0x1100 + class xCollis * wcoll; // r16 + class xCollis * gcoll; // r17 + float hdotm; // r21 + class xSurface * wsurf; // r2 + class xCollis * fcoll; // r16 + class xBase * b; // r2 + float dummy; // r29+0x11C4 + class xVec3 pos_rnd; // r29+0x10F0 + class xVec3 vel_rnd; // r29+0x10E0 + float dposx; // r29+0x11D0 + float dposy; // r29+0x11D0 + float dposz; // r29+0x11D0 + class xCollis * ceil; // r17 + class xEnt * destructent; // r16 + unsigned char destroyed; // r22 + class xVec3 bashRay; // r29+0x10D0 + class xEntBoulder * boul; // r2 + class xVec3 f; // r29+0x10C0 + class zNPCCommon * npc; // r2 + class xCollis * floor; // r17 + class xEnt * destructent; // r16 + unsigned char destroyed; // r22 + class xVec3 bounceRay; // r29+0x10B0 + class zNPCCommon * npc; // r2 + float stunlerp; // r3 + float mag; // r7 + float lerpspeed; // r8 + class xVec3 delta; // r29+0x10A0 + class xVec3 a; // r29+0x1090 + class xVec3 b; // r29+0x1080 + class xBound wandB; // r29+0x5C0 + class xSphere * wand; // r16 + class iColor_tag streakWandCol; // r29+0x11C0 + class iColor_tag streakWandCol2; // r29+0x11BC + class xParEmitterCustomSettings info; // r29+0x450 + float size; // r1 + class xEntBoulder * boul; // r2 + char tmpStateName[256]; // r29+0x350 + class xAnimSingle * playerAnim; // r17 + class xAnimState * itemAnim; // r2 + class xVec3 tmptran; // r29+0x1070 + class xQuat tmpquat; // r29+0x340 + class xMat4x3 objMat; // r29+0x300 + class xVec3 rotatedLC; // r29+0x1060 + class xEntBoulder * boul; // r21 + class xMat4x3 targetMat; // r29+0x2C0 + float lerp; // r1 + float bottom; // r1 + class zNPCCommon * npc; // r2 + class zNPCCommon * npc; // r2 + class zNPCTiki * tiki; // r2 + class xVec3 tgtpos; // r29+0x1050 + class xVec3 tempPos; // r29+0x1040 + class xMat4x3 * tgtmat; // r4 + float throwHeightOffset; // r1 + class RwMatrixTag rootOldMat; // r29+0x280 + class xMat4x3 tmpMat; // r29+0x240 + class xVec3 ax; // r29+0x1030 + float rads; // r29+0x11D0 + float crs; // r29+0x11D0 + float dot; // r20 + class xMat3x3 rotMat; // r29+0x210 + class xMat3x3 hitchMat; // r29+0x1E0 + signed int hitch; // r16 + signed int wasCoptering; // r17 + float speed; // r2 + unsigned int heliSnd; // r2 + class xModelTag * meleeTag; // r18 + class xBound meleeB; // r29+0x190 + class zNPCCommon * npc; // r2 + float dist_sqr; // r1 + class xVec3 disp; // r29+0x1020 + unsigned int sliding; // r4 + class xEnt * oldTarget; // r22 + float currDist_sqr; // r22 + float maxDist_sqr; // r21 + float closestDist_sqr; // r20 + class xVec3 toTarget; // r29+0x1010 + class xEnt * closest; // r17 + unsigned int i; // r21 + class xEnt * targent; // r16 + class xNPCBasic * npc; // r2 + class xRay3 ray; // r29+0x160 + class xCollis rayCollis; // r29+0x110 + signed int canSwing; // r3 + signed int i; // r2 + class xEnt * targent; // r9 + float dist; // r29+0x11D0 + class xVec3 disp; // r29+0x1000 + class xModelTag * meleeTag; // r2 + class xBound meleeB; // r29+0xC0 + unsigned int streakBubbleSpinID; // @ 0x0050E6BC + class xEntCollis old_collis; // @ 0x0051B990 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156A50 -> 0x00156CFC +*/ +// Range: 0x156A50 -> 0x156CFC +static class xEnt * zEntPlayer_FindGrabEnt(class xEnt * ent /* r21 */, class zScene * zsc /* r20 */, signed int * failed /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156A50 -> 0x156CFC + unsigned int i; // r18 + class xEnt * grabent; // r17 + float dx; // r6 + float dy; // r5 + float dz; // r4 + class xEntBoulder * boul; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156D00 -> 0x00156E88 +*/ +// Range: 0x156D00 -> 0x156E88 +static signed int zEntPlayerKnockToSafety(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156D00 -> 0x156E88 + float diffX; // r8 + float diffY; // r1 + float diffZ; // r7 + float popheight; // r29 + float ttot; // r2 + float velXZ; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156E90 -> 0x0015702C +*/ +// Range: 0x156E90 -> 0x15702C +void zEntPlayer_PredictPos(class xVec3 * pos /* r17 */, float timeIntoFuture /* r29+0x60 */, float leadFactor /* r29+0x60 */, signed int useTurn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156E90 -> 0x15702C + class zPlayerGlobals * g; // r16 + float useVel; // r2 + float useAngV; // r1 + class xMat3x3 rotMat; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157030 -> 0x00157334 +*/ +// Range: 0x157030 -> 0x157334 +static void zEntPlayer_PredictionUpdate(class xEnt * ent /* r17 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x157030 -> 0x157334 + class zPlayerGlobals * g; // r16 + float lastVel; // r29+0x40 + float newAngV; // r29+0x40 + float r; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157340 -> 0x00157CCC +*/ +// Range: 0x157340 -> 0x157CCC +static void zEntPlayer_BoulderVehicleUpdate(class xEnt * ent /* r20 */, class xScene * sc /* r19 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x157340 -> 0x157CCC + class xEntBoulder * shouldDamagePlayer; // r18 + unsigned char chkBackup; // r17 + unsigned char penBackup; // r16 + class xVec2 inputDefl; // r29+0x690 + class xEntCollis collis; // r29+0xB0 + signed int i; // r2 + class xEnt * dyn; // r7 + class xEntBoulder * boul; // r2 + float padDefl; // r20 + class xVec3 rotFudge; // r29+0x680 + float ang; // r29+0x6A0 + class xMat3x3 rotM; // r29+0x80 + class xVec3 heading; // r29+0x670 + float angle; // r29+0x69C + float mag; // r29+0x698 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157CD0 -> 0x00157CDC +*/ +// Range: 0x157CD0 -> 0x157CDC +static void zEntPlayer_BoulderVehicleMove(class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x157CD0 -> 0x157CDC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157CE0 -> 0x00157CE8 +*/ +// Range: 0x157CE0 -> 0x157CE8 +static void zEntPlayer_BoulderVehicleRender() { + // Blocks + /* anonymous block */ { + // Range: 0x157CE0 -> 0x157CE8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157CF0 -> 0x00157D18 +*/ +// Range: 0x157CF0 -> 0x157D18 +static signed int BoulderVEventCB(class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x157CF0 -> 0x157D18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157D20 -> 0x00157FB8 +*/ +// Range: 0x157D20 -> 0x157FB8 +static void getPadDefl(class _tagPadAnalog * stick /* r2 */, class xVec2 * v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x157D20 -> 0x157FB8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00157FC0 -> 0x00158178 +*/ +// Range: 0x157FC0 -> 0x158178 +static void zEntPlayer_SpringboardFX(class xEnt * ent /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x157FC0 -> 0x158178 + class xParEmitterCustomSettings info; // r29+0x20 + float size; // r1 + float sLastSpringboardBubbleEmit; // @ 0x0050F490 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00158180 -> 0x00158758 +*/ +// Range: 0x158180 -> 0x158758 +static void zEntPlayer_StreakFX(class xEnt * ent /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x158180 -> 0x158758 + signed int i; // r19 + signed int p; // r5 + signed int cp; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00158760 -> 0x00158768 +*/ +// Range: 0x158760 -> 0x158768 +void zEntPlayer_Load() { + // Blocks + /* anonymous block */ { + // Range: 0x158760 -> 0x158768 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00158770 -> 0x00159A98 +*/ +// Range: 0x158770 -> 0x159A98 +void zEntPlayer_Init(class xEnt * ent /* r19 */, class xEntAsset * asset /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x158770 -> 0x159A98 + unsigned char index; // r8 + class xModelInstance * m; // r7 + signed int i; // r6 + float bbncvtm; // r3 + unsigned int bufsize; // r29+0x6C + void * info; // r2 + signed int i; // r8 + class xAnimTable * wettbl; // r17 + class xAnimTable * drytbl; // r2 + class xAnimState * wetstate; // r2 + class xAnimState * drystate; // r16 + class xAnimFile * wetfile; // r12 + class xAnimFile * dryfile; // r11 + signed int aa; // r10 + signed int numa; // r9 + class xFFXRotMatchState * rms; // r2 + unsigned int trailerHash; // r2 + unsigned int i; // r3 + class xEnt * hitch; // r12 + signed int drybob_anim_count; // @ 0x0050F48C + float drybob_oldTime[64]; // @ 0x0051B890 + float * drybob_chgTime[64]; // @ 0x0051B790 + void * drybob_oldData[64]; // @ 0x0051B690 + void * * drybob_chgData[64]; // @ 0x0051B590 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00159AA0 -> 0x00159D90 +*/ +// Range: 0x159AA0 -> 0x159D90 +static void load_player_ini() { + // Blocks + /* anonymous block */ { + // Range: 0x159AA0 -> 0x159D90 + unsigned int params_size; // r29+0x9C + class xModelAssetParam * params; // r18 + unsigned int params_size; // r29+0x98 + class xModelAssetParam * params; // r18 + unsigned int params_size; // r29+0x94 + class xModelAssetParam * params; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00159D90 -> 0x00159EA4 +*/ +// Range: 0x159D90 -> 0x159EA4 +static signed int load_talk_filter(unsigned char * filter /* r19 */, class xModelAssetParam * params /* r20 */, unsigned int params_size /* r16 */, signed int max_size /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x159D90 -> 0x159EA4 + signed int size; // r17 + float * non_choices; // r16 + signed int found; // r2 + signed int i; // r7 + unsigned char skip; // r6 + signed int j; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00159EB0 -> 0x00159F20 +*/ +// Range: 0x159EB0 -> 0x159F20 +signed int zEntPlayer_IsSneaking() { + // Blocks + /* anonymous block */ { + // Range: 0x159EB0 -> 0x159F20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00167BF0 -> 0x00168238 +*/ +// Range: 0x167BF0 -> 0x168238 +static signed int CheckObjectAgainstMeleeBound(class xEnt * cbent /* r19 */, void * cbdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x167BF0 -> 0x168238 + class Melee_cbData * data; // r22 + signed int hitsomething; // r18 + class xEnt * ent; // r17 + class xBound * meleeB; // r16 + class xCollis meleeColl; // r29+0xB0 + class zNPCCommon * npc; // r2 + class iColor_tag c_inside; // r29+0x11C + class iColor_tag c_outside; // r29+0x118 + class xEntBoulder * boul; // r2 + class xVec3 f; // r29+0x108 + unsigned int paddleFlags; // r4 + unsigned int worldSpaceNorm; // r21 + class xRay3 tempray; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168240 -> 0x001682F4 +*/ +// Range: 0x168240 -> 0x1682F4 +static signed int MeleeAttackBoundCollide(class xEnt * ent /* r2 */, class zScene * zsc /* r2 */, class xBound * meleeB /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168240 -> 0x1682F4 + class Melee_cbData cbdata; // r29+0x30 + class xVec3 pos; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168300 -> 0x001684E0 +*/ +// Range: 0x168300 -> 0x1684E0 +static unsigned int StunRadiusCB() { + // Blocks + /* anonymous block */ { + // Range: 0x168300 -> 0x1684E0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001684E0 -> 0x001684EC +*/ +// Range: 0x1684E0 -> 0x1684EC +static unsigned int StunStartFallCB() { + // Blocks + /* anonymous block */ { + // Range: 0x1684E0 -> 0x1684EC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001684F0 -> 0x00168584 +*/ +// Range: 0x1684F0 -> 0x168584 +static unsigned int BubbleBounceContrails(class xAnimSingle * single /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1684F0 -> 0x168584 + class xAnimState * astate; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168590 -> 0x0016866C +*/ +// Range: 0x168590 -> 0x16866C +static unsigned int BubbleBashContrails(class xAnimSingle * single /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168590 -> 0x16866C + class xAnimState * astate; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168670 -> 0x0016874C +*/ +// Range: 0x168670 -> 0x16874C +static unsigned int StunBubbleTrail(class xAnimSingle * single /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168670 -> 0x16874C + class xAnimState * astate; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168750 -> 0x00168870 +*/ +// Range: 0x168750 -> 0x168870 +static unsigned int LassoSwingReleaseCB(class xAnimTransition * tran /* r18 */, class xAnimSingle * anim /* r17 */, void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168750 -> 0x168870 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168870 -> 0x00168944 +*/ +// Range: 0x168870 -> 0x168944 +static unsigned int LassoSwingGroundedCB() { + // Blocks + /* anonymous block */ { + // Range: 0x168870 -> 0x168944 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168950 -> 0x001689B0 +*/ +// Range: 0x168950 -> 0x1689B0 +static unsigned int LassoSwingCB(class xAnimSingle * anim /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168950 -> 0x1689B0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001689B0 -> 0x00168C60 +*/ +// Range: 0x1689B0 -> 0x168C60 +static unsigned int LassoSwingTossCB() { + // Blocks + /* anonymous block */ { + // Range: 0x1689B0 -> 0x168C60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168C60 -> 0x00168CC8 +*/ +// Range: 0x168C60 -> 0x168CC8 +static unsigned int LassoSwingGroundedBeginCB(class xAnimTransition * tran /* r18 */, class xAnimSingle * anim /* r17 */, void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168C60 -> 0x168CC8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168CD0 -> 0x00168EE4 +*/ +// Range: 0x168CD0 -> 0x168EE4 +static unsigned int LassoSwingBeginCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x168CD0 -> 0x168EE4 + class xEnt * ent; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168EF0 -> 0x00168F84 +*/ +// Range: 0x168EF0 -> 0x168F84 +static unsigned int LassoSwingReleaseCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x168EF0 -> 0x168F84 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168F90 -> 0x00168FB4 +*/ +// Range: 0x168F90 -> 0x168FB4 +static unsigned int LassoSwingBeginCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x168F90 -> 0x168FB4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00168FC0 -> 0x00169020 +*/ +// Range: 0x168FC0 -> 0x169020 +static unsigned int LassoSwingGroundedBeginCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x168FC0 -> 0x169020 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169020 -> 0x001690BC +*/ +// Range: 0x169020 -> 0x1690BC +static unsigned int LassoStopCB() { + // Blocks + /* anonymous block */ { + // Range: 0x169020 -> 0x1690BC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001690C0 -> 0x00169118 +*/ +// Range: 0x1690C0 -> 0x169118 +static unsigned int SpatulaMeleeStopCB(class xAnimTransition * tran /* r2 */, class xAnimSingle * anim /* r2 */, void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1690C0 -> 0x169118 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169120 -> 0x0016916C +*/ +// Range: 0x169120 -> 0x16916C +static unsigned int MeleeStopCB() { + // Blocks + /* anonymous block */ { + // Range: 0x169120 -> 0x16916C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169170 -> 0x001692A0 +*/ +// Range: 0x169170 -> 0x1692A0 +static unsigned int LassoYankCB() { + // Blocks + /* anonymous block */ { + // Range: 0x169170 -> 0x1692A0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001692A0 -> 0x0016947C +*/ +// Range: 0x1692A0 -> 0x16947C +static unsigned int LassoDestroyCB() { + // Blocks + /* anonymous block */ { + // Range: 0x1692A0 -> 0x16947C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169480 -> 0x00169758 +*/ +// Range: 0x169480 -> 0x169758 +static unsigned int LassoFlyCB(void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x169480 -> 0x169758 + class xEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169760 -> 0x00169984 +*/ +// Range: 0x169760 -> 0x169984 +static unsigned int LassoThrowCB(void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x169760 -> 0x169984 + class xEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169990 -> 0x00169BBC +*/ +// Range: 0x169990 -> 0x169BBC +static unsigned int LassoStartCB(void * object /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x169990 -> 0x169BBC + class xEnt * ent; // r2 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169BC0 -> 0x00169CE0 +*/ +// Range: 0x169BC0 -> 0x169CE0 +static unsigned int MeleeCB() { + // Blocks + /* anonymous block */ { + // Range: 0x169BC0 -> 0x169CE0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169CE0 -> 0x00169E18 +*/ +// Range: 0x169CE0 -> 0x169E18 +static unsigned int JumpMeleeCB() { + // Blocks + /* anonymous block */ { + // Range: 0x169CE0 -> 0x169E18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169E20 -> 0x00169EA8 +*/ +// Range: 0x169E20 -> 0x169EA8 +static unsigned int LassoFailRunSlipCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x169E20 -> 0x169EA8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169EB0 -> 0x00169F98 +*/ +// Range: 0x169EB0 -> 0x169F98 +static unsigned int LassoFailRunOutOfWorldCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x169EB0 -> 0x169F98 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00169FA0 -> 0x0016A090 +*/ +// Range: 0x169FA0 -> 0x16A090 +static unsigned int LassoFailRunCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x169FA0 -> 0x16A090 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A090 -> 0x0016A180 +*/ +// Range: 0x16A090 -> 0x16A180 +static unsigned int LassoFailWalkCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A090 -> 0x16A180 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A180 -> 0x0016A218 +*/ +// Range: 0x16A180 -> 0x16A218 +static unsigned int LassoFailIdleCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A180 -> 0x16A218 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A220 -> 0x0016A2A8 +*/ +// Range: 0x16A220 -> 0x16A2A8 +static unsigned int LassoFailIdleSlipCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A220 -> 0x16A2A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A2B0 -> 0x0016A2B8 +*/ +// Range: 0x16A2B0 -> 0x16A2B8 +static unsigned int LassoReyankCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A2B0 -> 0x16A2B8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A2C0 -> 0x0016A2D0 +*/ +// Range: 0x16A2C0 -> 0x16A2D0 +static unsigned int LassoDestroyCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A2C0 -> 0x16A2D0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A2D0 -> 0x0016A2D8 +*/ +// Range: 0x16A2D0 -> 0x16A2D8 +static unsigned int LassoAboutToDestroyCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A2D0 -> 0x16A2D8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A2E0 -> 0x0016A2F0 +*/ +// Range: 0x16A2E0 -> 0x16A2F0 +static unsigned int LassoStraightToDestroyCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A2E0 -> 0x16A2F0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A2F0 -> 0x0016A308 +*/ +// Range: 0x16A2F0 -> 0x16A308 +static unsigned int LassoLostTargetCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A2F0 -> 0x16A308 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A310 -> 0x0016A384 +*/ +// Range: 0x16A310 -> 0x16A384 +static unsigned int LassoStartCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16A310 -> 0x16A384 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A390 -> 0x0016A410 +*/ +// Range: 0x16A390 -> 0x16A410 +static unsigned int MeleeCheck(class xAnimSingle * anim /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16A390 -> 0x16A410 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A410 -> 0x0016A46C +*/ +// Range: 0x16A410 -> 0x16A46C +void zEntPlayer_LassoNotify(enum en_LASSO_EVENT event /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16A410 -> 0x16A46C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A470 -> 0x0016A5C4 +*/ +// Range: 0x16A470 -> 0x16A5C4 +static unsigned int PatrickGrabThrowCB(void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16A470 -> 0x16A5C4 + class zEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016A5D0 -> 0x0016AC64 +*/ +// Range: 0x16A5D0 -> 0x16AC64 +static class xEnt * GetPatrickTarget(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16A5D0 -> 0x16AC64 + class xEnt * result; // r19 + class xCollis * coll; // r3 + class zPlatform * plat; // r2 + class xVec3 relpos; // r29+0xA0 + unsigned int i; // r22 + float bestTargetDot; // r21 + class xVec3 * bestTargetPos; // r21 + class zScene * zsc; // r20 + signed int grabbedIsFruit; // r23 + float maxHeight; // r20 + class xEnt * tgtent; // r19 + float dx; // r8 + float dy; // r2 + float dz; // r7 + float ddot; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016AC70 -> 0x0016AC94 +*/ +// Range: 0x16AC70 -> 0x16AC94 +void zEntPlayerSpeakStop() { + // Blocks + /* anonymous block */ { + // Range: 0x16AC70 -> 0x16AC94 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016ACA0 -> 0x0016AD74 +*/ +// Range: 0x16ACA0 -> 0x16AD74 +void zEntPlayerSpeakStart(unsigned int sndid /* r17 */, signed int anim /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16ACA0 -> 0x16AD74 + unsigned char filter_size; // r17 + unsigned int which; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016AD80 -> 0x0016AE48 +*/ +// Range: 0x16AD80 -> 0x16AE48 +static void speak_update(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16AD80 -> 0x16AE48 + float jawval; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016AE50 -> 0x0016AE68 +*/ +// Range: 0x16AE50 -> 0x16AE68 +static unsigned int TalkDoneCheck(class xAnimTransition * tran /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16AE50 -> 0x16AE68 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016AE70 -> 0x0016AE88 +*/ +// Range: 0x16AE70 -> 0x16AE88 +static unsigned int TalkCheck(class xAnimTransition * tran /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16AE70 -> 0x16AE88 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016AE90 -> 0x0016B344 +*/ +// Range: 0x16AE90 -> 0x16B344 +static unsigned int PatrickGrabCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16AE90 -> 0x16B344 + class xAnimState * stat; // r2 + class xVec3 tmptran; // r29+0xD0 + class xQuat tmpquat; // r29+0xC0 + class xMat4x3 objMat; // r29+0x80 + class xMat4x3 targetMat; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B350 -> 0x0016B438 +*/ +// Range: 0x16B350 -> 0x16B438 +static unsigned int PatrickMeleeCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16B350 -> 0x16B438 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B440 -> 0x0016B474 +*/ +// Range: 0x16B440 -> 0x16B474 +static unsigned int PatrickStunCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B440 -> 0x16B474 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B480 -> 0x0016B4EC +*/ +// Range: 0x16B480 -> 0x16B4EC +static unsigned int PatrickAttackCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B480 -> 0x16B4EC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B4F0 -> 0x0016B540 +*/ +// Range: 0x16B4F0 -> 0x16B540 +static unsigned int PatrickGrabThrow() { + // Blocks + /* anonymous block */ { + // Range: 0x16B4F0 -> 0x16B540 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B540 -> 0x0016B554 +*/ +// Range: 0x16B540 -> 0x16B554 +static unsigned int PatrickGrabKill() { + // Blocks + /* anonymous block */ { + // Range: 0x16B540 -> 0x16B554 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B560 -> 0x0016B56C +*/ +// Range: 0x16B560 -> 0x16B56C +static unsigned int PatrickGrabFailed() { + // Blocks + /* anonymous block */ { + // Range: 0x16B560 -> 0x16B56C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B570 -> 0x0016B57C +*/ +// Range: 0x16B570 -> 0x16B57C +static unsigned int PatrickGrabCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B570 -> 0x16B57C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B580 -> 0x0016B5B8 +*/ +// Range: 0x16B580 -> 0x16B5B8 +static unsigned int LedgeFinishCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16B580 -> 0x16B5B8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B5C0 -> 0x0016B728 +*/ +// Range: 0x16B5C0 -> 0x16B728 +static unsigned int LedgeGrabCB(void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16B5C0 -> 0x16B728 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B730 -> 0x0016B75C +*/ +// Range: 0x16B730 -> 0x16B75C +static unsigned int LedgeGrabCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B730 -> 0x16B75C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B760 -> 0x0016B7F4 +*/ +// Range: 0x16B760 -> 0x16B7F4 +static unsigned int TrackPrefallJumpCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B760 -> 0x16B7F4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B800 -> 0x0016B820 +*/ +// Range: 0x16B800 -> 0x16B820 +static unsigned int TrackFallCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16B800 -> 0x16B820 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B820 -> 0x0016B84C +*/ +// Range: 0x16B820 -> 0x16B84C +static unsigned int TrackFallCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B820 -> 0x16B84C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B850 -> 0x0016B880 +*/ +// Range: 0x16B850 -> 0x16B880 +static unsigned int NoslideTrackCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16B850 -> 0x16B880 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B880 -> 0x0016B88C +*/ +// Range: 0x16B880 -> 0x16B88C +static unsigned int NoslideTrackCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16B880 -> 0x16B88C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016B890 -> 0x0016BB08 +*/ +// Range: 0x16B890 -> 0x16BB08 +static unsigned int SlideTrackCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16B890 -> 0x16BB08 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016BB10 -> 0x0016BB20 +*/ +// Range: 0x16BB10 -> 0x16BB20 +static unsigned int SlideTrackCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16BB10 -> 0x16BB20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016BB20 -> 0x0016BE68 +*/ +// Range: 0x16BB20 -> 0x16BE68 +static unsigned int BoulderRollDoneCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16BB20 -> 0x16BE68 + class xParEmitterCustomSettings info; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016BE70 -> 0x0016C328 +*/ +// Range: 0x16BE70 -> 0x16C328 +static unsigned int BoulderRollCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16BE70 -> 0x16C328 + class xParEmitterCustomSettings info; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C330 -> 0x0016C4C0 +*/ +// Range: 0x16C330 -> 0x16C4C0 +static unsigned int BoulderRollWindupCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16C330 -> 0x16C4C0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C4C0 -> 0x0016C4E0 +*/ +// Range: 0x16C4C0 -> 0x16C4E0 +static unsigned int BoulderRollCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16C4C0 -> 0x16C4E0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C4E0 -> 0x0016C514 +*/ +// Range: 0x16C4E0 -> 0x16C514 +static unsigned int BoulderRollIdleCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16C4E0 -> 0x16C514 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C520 -> 0x0016C554 +*/ +// Range: 0x16C520 -> 0x16C554 +static unsigned int BoulderRollMoveCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16C520 -> 0x16C554 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C560 -> 0x0016C678 +*/ +// Range: 0x16C560 -> 0x16C678 +static unsigned int FallCheck(class xAnimSingle * anim /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16C560 -> 0x16C678 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C680 -> 0x0016C698 +*/ +// Range: 0x16C680 -> 0x16C698 +static unsigned int TongueDblSpinCB(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16C680 -> 0x16C698 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C6A0 -> 0x0016C710 +*/ +// Range: 0x16C6A0 -> 0x16C710 +static unsigned int TongueDblJumpCB(class xAnimTransition * tran /* r2 */, class xAnimSingle * anim /* r16 */, void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16C6A0 -> 0x16C710 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C710 -> 0x0016C958 +*/ +// Range: 0x16C710 -> 0x16C958 +static unsigned int DblJumpCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16C710 -> 0x16C958 + float dirx; // r6 + float dirz; // r5 + float dbldirx; // r29 + float dbldirz; // r29 + float speed; // r4 + float dblspeed; // r29 + float len2; // r3 + float len_inv; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016C960 -> 0x0016CAAC +*/ +// Range: 0x16C960 -> 0x16CAAC +static unsigned int DblJumpCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16C960 -> 0x16CAAC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CAB0 -> 0x0016CBAC +*/ +// Range: 0x16CAB0 -> 0x16CBAC +static unsigned int BounceStopLCopterCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16CAB0 -> 0x16CBAC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CBB0 -> 0x0016CBF4 +*/ +// Range: 0x16CBB0 -> 0x16CBF4 +static unsigned int BounceCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16CBB0 -> 0x16CBF4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CC00 -> 0x0016CC14 +*/ +// Range: 0x16CC00 -> 0x16CC14 +static unsigned int BounceCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16CC00 -> 0x16CC14 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CC20 -> 0x0016CD0C +*/ +// Range: 0x16CC20 -> 0x16CD0C +static unsigned int JumpApexCheck(class xAnimSingle * anim /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16CC20 -> 0x16CD0C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CD10 -> 0x0016CF8C +*/ +// Range: 0x16CD10 -> 0x16CF8C +static unsigned int JumpCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16CD10 -> 0x16CF8C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CF90 -> 0x0016CFD8 +*/ +// Range: 0x16CF90 -> 0x16CFD8 +static unsigned int JumpCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16CF90 -> 0x16CFD8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016CFE0 -> 0x0016CFF4 +*/ +// Range: 0x16CFE0 -> 0x16CFF4 +static unsigned int WallJumpLandFlightCallback() { + // Blocks + /* anonymous block */ { + // Range: 0x16CFE0 -> 0x16CFF4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D000 -> 0x0016D010 +*/ +// Range: 0x16D000 -> 0x16D010 +static unsigned int WallJumpLandFlightCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16D000 -> 0x16D010 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D010 -> 0x0016D024 +*/ +// Range: 0x16D010 -> 0x16D024 +static unsigned int WallJumpFlightLandCallback() { + // Blocks + /* anonymous block */ { + // Range: 0x16D010 -> 0x16D024 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D030 -> 0x0016D040 +*/ +// Range: 0x16D030 -> 0x16D040 +static unsigned int WallJumpFlightLandCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16D030 -> 0x16D040 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D040 -> 0x0016D390 +*/ +// Range: 0x16D040 -> 0x16D390 +static unsigned int WallJumpCallback() { + // Blocks + /* anonymous block */ { + // Range: 0x16D040 -> 0x16D390 + class zJumpParam wallParam; // r29+0x30 + class xEntFrame * frame; // r16 + class xVec3 * velocity; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D390 -> 0x0016D3CC +*/ +// Range: 0x16D390 -> 0x16D3CC +static unsigned int WallJumpLaunchCallback() { + // Blocks + /* anonymous block */ { + // Range: 0x16D390 -> 0x16D3CC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D3D0 -> 0x0016D440 +*/ +// Range: 0x16D3D0 -> 0x16D440 +static unsigned int WallJumpLaunchCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16D3D0 -> 0x16D440 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D440 -> 0x0016D5F8 +*/ +// Range: 0x16D440 -> 0x16D5F8 +static void DoWallJumpCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16D440 -> 0x16D5F8 + class xEnt * ent; // r16 + class xVec3 start; // r29+0x180 + class xVec3 end; // r29+0x170 + class xSweptSphere sws; // r29+0x20 + class xSurface * surf; // r3 + class zSurfaceProps * surfaceProperties; // r4 + float sVerticalCos; // @ 0x0050E6B4 + float sSweptrad; // @ 0x0050E6B0 + float sAtdist; // @ 0x0050E6AC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D600 -> 0x0016D6D0 +*/ +// Range: 0x16D600 -> 0x16D6D0 +static unsigned int StopLCopterCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16D600 -> 0x16D6D0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D6D0 -> 0x0016D88C +*/ +// Range: 0x16D6D0 -> 0x16D88C +static unsigned int LCopterCB(void * object /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16D6D0 -> 0x16D88C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D890 -> 0x0016D8EC +*/ +// Range: 0x16D890 -> 0x16D8EC +static unsigned int LCopterCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16D890 -> 0x16D8EC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016D8F0 -> 0x0016DA98 +*/ +// Range: 0x16D8F0 -> 0x16DA98 +static unsigned int SpatulaGrabStopCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16D8F0 -> 0x16DA98 + signed int result; // r2 + class xBase * sendTo; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016DAA0 -> 0x0016DDB8 +*/ +// Range: 0x16DAA0 -> 0x16DDB8 +static unsigned int SpatulaGrabCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16DAA0 -> 0x16DDB8 + class xEnt * ent; // r2 + class xCollis rcoll; // r29+0x40 + class xRay3 r; // r29+0x10 + float one_len; // r1 + float delay; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016DDC0 -> 0x0016DE30 +*/ +// Range: 0x16DDC0 -> 0x16DE30 +signed int zEntPlayer_InBossBattle() { + // Blocks + /* anonymous block */ { + // Range: 0x16DDC0 -> 0x16DE30 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016DE30 -> 0x0016DE38 +*/ +// Range: 0x16DE30 -> 0x16DE38 +static unsigned int SpatulaGrabCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16DE30 -> 0x16DE38 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016DE40 -> 0x0016DF38 +*/ +// Range: 0x16DE40 -> 0x16DF38 +static unsigned int DefeatedCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16DE40 -> 0x16DF38 + signed int cheats; // r2 + class zShrapnelAsset * deathShrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016DF40 -> 0x0016DFA4 +*/ +// Range: 0x16DF40 -> 0x16DFA4 +static unsigned int Defeated05Check(class xAnimTransition * tran /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16DF40 -> 0x16DFA4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016DFB0 -> 0x0016E014 +*/ +// Range: 0x16DFB0 -> 0x16E014 +static unsigned int Defeated04Check(class xAnimTransition * tran /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16DFB0 -> 0x16E014 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E020 -> 0x0016E084 +*/ +// Range: 0x16E020 -> 0x16E084 +static unsigned int Defeated03Check(class xAnimTransition * tran /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E020 -> 0x16E084 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E090 -> 0x0016E0F4 +*/ +// Range: 0x16E090 -> 0x16E0F4 +static unsigned int Defeated02Check(class xAnimTransition * tran /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E090 -> 0x16E0F4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E100 -> 0x0016E160 +*/ +// Range: 0x16E100 -> 0x16E160 +static unsigned int Defeated01Check(class xAnimTransition * tran /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E100 -> 0x16E160 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E160 -> 0x0016E174 +*/ +// Range: 0x16E160 -> 0x16E174 +static unsigned int Hit05CB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E160 -> 0x16E174 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E180 -> 0x0016E1A4 +*/ +// Range: 0x16E180 -> 0x16E1A4 +static unsigned int Hit05Check() { + // Blocks + /* anonymous block */ { + // Range: 0x16E180 -> 0x16E1A4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E1B0 -> 0x0016E1C4 +*/ +// Range: 0x16E1B0 -> 0x16E1C4 +static unsigned int Hit04CB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E1B0 -> 0x16E1C4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E1D0 -> 0x0016E1F4 +*/ +// Range: 0x16E1D0 -> 0x16E1F4 +static unsigned int Hit04Check() { + // Blocks + /* anonymous block */ { + // Range: 0x16E1D0 -> 0x16E1F4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E200 -> 0x0016E214 +*/ +// Range: 0x16E200 -> 0x16E214 +static unsigned int Hit03CB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E200 -> 0x16E214 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E220 -> 0x0016E244 +*/ +// Range: 0x16E220 -> 0x16E244 +static unsigned int Hit03Check() { + // Blocks + /* anonymous block */ { + // Range: 0x16E220 -> 0x16E244 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E250 -> 0x0016E264 +*/ +// Range: 0x16E250 -> 0x16E264 +static unsigned int Hit02CB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E250 -> 0x16E264 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E270 -> 0x0016E294 +*/ +// Range: 0x16E270 -> 0x16E294 +static unsigned int Hit02Check() { + // Blocks + /* anonymous block */ { + // Range: 0x16E270 -> 0x16E294 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E2A0 -> 0x0016E2B4 +*/ +// Range: 0x16E2A0 -> 0x16E2B4 +static unsigned int Hit01CB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E2A0 -> 0x16E2B4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E2C0 -> 0x0016E2E4 +*/ +// Range: 0x16E2C0 -> 0x16E2E4 +static unsigned int Hit01Check() { + // Blocks + /* anonymous block */ { + // Range: 0x16E2C0 -> 0x16E2E4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E2F0 -> 0x0016E328 +*/ +// Range: 0x16E2F0 -> 0x16E328 +static unsigned int GooDeathCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E2F0 -> 0x16E328 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E330 -> 0x0016E378 +*/ +// Range: 0x16E330 -> 0x16E378 +static unsigned int GooCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16E330 -> 0x16E378 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E380 -> 0x0016E410 +*/ +// Range: 0x16E380 -> 0x16E410 +static unsigned int BbowlRecoverRunSlipCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E380 -> 0x16E410 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E410 -> 0x0016E500 +*/ +// Range: 0x16E410 -> 0x16E500 +static unsigned int BbowlRecoverRunOutOfWorldCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E410 -> 0x16E500 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E500 -> 0x0016E620 +*/ +// Range: 0x16E500 -> 0x16E620 +static unsigned int BbowlRecoverRunVictoryCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E500 -> 0x16E620 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E620 -> 0x0016E780 +*/ +// Range: 0x16E620 -> 0x16E780 +static unsigned int BbowlRecoverRunScaredCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E620 -> 0x16E780 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E780 -> 0x0016E8F0 +*/ +// Range: 0x16E780 -> 0x16E8F0 +static unsigned int BbowlRecoverRunCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E780 -> 0x16E8F0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E8F0 -> 0x0016E9E8 +*/ +// Range: 0x16E8F0 -> 0x16E9E8 +static unsigned int BbowlRecoverWalkCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16E8F0 -> 0x16E9E8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016E9F0 -> 0x0016EB78 +*/ +// Range: 0x16E9F0 -> 0x16EB78 +static unsigned int BbowlTossEndCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16E9F0 -> 0x16EB78 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016EB80 -> 0x0016EBB8 +*/ +// Range: 0x16EB80 -> 0x16EBB8 +static unsigned int BbowlWindupEndCheck(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16EB80 -> 0x16EBB8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016EBC0 -> 0x0016EDFC +*/ +// Range: 0x16EBC0 -> 0x16EDFC +static unsigned int BbowlCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16EBC0 -> 0x16EDFC + class xEntFrame * frame; // r6 + float x; // r2 + float z; // r1 + float speed2; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016EE00 -> 0x0016EE84 +*/ +// Range: 0x16EE00 -> 0x16EE84 +static unsigned int BbowlCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16EE00 -> 0x16EE84 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016EE90 -> 0x0016F0D0 +*/ +// Range: 0x16EE90 -> 0x16F0D0 +static unsigned int BBounceToJumpCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16EE90 -> 0x16F0D0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F0D0 -> 0x0016F0D8 +*/ +// Range: 0x16F0D0 -> 0x16F0D8 +static unsigned int BBounceToJumpCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F0D0 -> 0x16F0D8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F0E0 -> 0x0016F29C +*/ +// Range: 0x16F0E0 -> 0x16F29C +static unsigned int BBounceStrikeCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16F0E0 -> 0x16F29C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F2A0 -> 0x0016F2C0 +*/ +// Range: 0x16F2A0 -> 0x16F2C0 +static unsigned int BBounceStrikeCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F2A0 -> 0x16F2C0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F2C0 -> 0x0016F2E0 +*/ +// Range: 0x16F2C0 -> 0x16F2E0 +static unsigned int BBounceAttackCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16F2C0 -> 0x16F2E0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F2E0 -> 0x0016F33C +*/ +// Range: 0x16F2E0 -> 0x16F33C +static unsigned int BubbleBounceCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16F2E0 -> 0x16F33C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F340 -> 0x0016F390 +*/ +// Range: 0x16F340 -> 0x16F390 +static unsigned int BubbleBounceCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F340 -> 0x16F390 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F390 -> 0x0016F3B4 +*/ +// Range: 0x16F390 -> 0x16F3B4 +static unsigned int BBashToJumpCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F390 -> 0x16F3B4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F3C0 -> 0x0016F3D4 +*/ +// Range: 0x16F3C0 -> 0x16F3D4 +static unsigned int BBashStrikeCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16F3C0 -> 0x16F3D4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F3E0 -> 0x0016F3E8 +*/ +// Range: 0x16F3E0 -> 0x16F3E8 +static unsigned int BBashStrikeCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F3E0 -> 0x16F3E8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F3F0 -> 0x0016F5BC +*/ +// Range: 0x16F3F0 -> 0x16F5BC +static unsigned int BubbleBashCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16F3F0 -> 0x16F5BC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F5C0 -> 0x0016F65C +*/ +// Range: 0x16F5C0 -> 0x16F65C +static unsigned int BubbleBashCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F5C0 -> 0x16F65C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F660 -> 0x0016F7E8 +*/ +// Range: 0x16F660 -> 0x16F7E8 +static unsigned int BubbleSpinCB(class xAnimSingle * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16F660 -> 0x16F7E8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F7F0 -> 0x0016F864 +*/ +// Range: 0x16F7F0 -> 0x16F864 +static unsigned int BubbleSpinCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F7F0 -> 0x16F864 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F870 -> 0x0016F884 +*/ +// Range: 0x16F870 -> 0x16F884 +static unsigned int SandyLandCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16F870 -> 0x16F884 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F890 -> 0x0016F984 +*/ +// Range: 0x16F890 -> 0x16F984 +static unsigned int LandSlipRunCallback() { + // Blocks + /* anonymous block */ { + // Range: 0x16F890 -> 0x16F984 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F990 -> 0x0016F9BC +*/ +// Range: 0x16F990 -> 0x16F9BC +static unsigned int LandCallback() { + // Blocks + /* anonymous block */ { + // Range: 0x16F990 -> 0x16F9BC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016F9C0 -> 0x0016FA3C +*/ +// Range: 0x16F9C0 -> 0x16FA3C +static unsigned int LandNoTrackSlipIdleCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16F9C0 -> 0x16FA3C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FA40 -> 0x0016FABC +*/ +// Range: 0x16FA40 -> 0x16FABC +static unsigned int LandNoTrackSlipRunCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FA40 -> 0x16FABC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FAC0 -> 0x0016FB18 +*/ +// Range: 0x16FAC0 -> 0x16FB18 +static unsigned int LandNoTrackFastCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FAC0 -> 0x16FB18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FB20 -> 0x0016FB70 +*/ +// Range: 0x16FB20 -> 0x16FB70 +static unsigned int LandSlipRunCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FB20 -> 0x16FB70 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FB70 -> 0x0016FBC0 +*/ +// Range: 0x16FB70 -> 0x16FBC0 +static unsigned int LandSlipIdleCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FB70 -> 0x16FBC0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FBC0 -> 0x0016FC18 +*/ +// Range: 0x16FBC0 -> 0x16FC18 +static unsigned int LandNoTrackWalkCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FBC0 -> 0x16FC18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FC20 -> 0x0016FC4C +*/ +// Range: 0x16FC20 -> 0x16FC4C +static unsigned int LandFastCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FC20 -> 0x16FC4C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FC50 -> 0x0016FC7C +*/ +// Range: 0x16FC50 -> 0x16FC7C +static unsigned int LandWalkCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FC50 -> 0x16FC7C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FC80 -> 0x0016FCAC +*/ +// Range: 0x16FC80 -> 0x16FCAC +static unsigned int LandRunCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FC80 -> 0x16FCAC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FCB0 -> 0x0016FCD8 +*/ +// Range: 0x16FCB0 -> 0x16FCD8 +static unsigned int LandHighCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FCB0 -> 0x16FCD8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FCE0 -> 0x0016FD20 +*/ +// Range: 0x16FCE0 -> 0x16FD20 +static unsigned int LandNoTrackCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FCE0 -> 0x16FD20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FD20 -> 0x0016FD5C +*/ +// Range: 0x16FD20 -> 0x16FD5C +static unsigned int LandTrackCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FD20 -> 0x16FD5C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FD60 -> 0x0016FD74 +*/ +// Range: 0x16FD60 -> 0x16FD74 +static unsigned int LandCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FD60 -> 0x16FD74 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FD80 -> 0x0016FDA8 +*/ +// Range: 0x16FD80 -> 0x16FDA8 +static unsigned int InactiveFinishedCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x16FD80 -> 0x16FDA8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FDB0 -> 0x0016FDC8 +*/ +// Range: 0x16FDB0 -> 0x16FDC8 +static unsigned int InactiveCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16FDB0 -> 0x16FDC8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FDD0 -> 0x0016FE20 +*/ +// Range: 0x16FDD0 -> 0x16FE20 +static unsigned int InactiveCheck(class xAnimTransition * tran /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x16FDD0 -> 0x16FE20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FE20 -> 0x0016FED4 +*/ +// Range: 0x16FE20 -> 0x16FED4 +static unsigned int IdleCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16FE20 -> 0x16FED4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FEE0 -> 0x0016FF90 +*/ +// Range: 0x16FEE0 -> 0x16FF90 +static unsigned int NoSlipCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16FEE0 -> 0x16FF90 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0016FF90 -> 0x00170070 +*/ +// Range: 0x16FF90 -> 0x170070 +static unsigned int SlipRunCB() { + // Blocks + /* anonymous block */ { + // Range: 0x16FF90 -> 0x170070 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170070 -> 0x00170084 +*/ +// Range: 0x170070 -> 0x170084 +static unsigned int AnyStopCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170070 -> 0x170084 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170090 -> 0x001700A0 +*/ +// Range: 0x170090 -> 0x1700A0 +static unsigned int AnyMoveCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170090 -> 0x1700A0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001700A0 -> 0x00170108 +*/ +// Range: 0x1700A0 -> 0x170108 +static unsigned int IdleSlipCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x1700A0 -> 0x170108 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170110 -> 0x001701F0 +*/ +// Range: 0x170110 -> 0x1701F0 +static unsigned int IdleScaredCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170110 -> 0x1701F0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001701F0 -> 0x00170298 +*/ +// Range: 0x1701F0 -> 0x170298 +static unsigned int IdleVictoryCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x1701F0 -> 0x170298 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001702A0 -> 0x00170390 +*/ +// Range: 0x1702A0 -> 0x170390 +static unsigned int IdleStoicCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x1702A0 -> 0x170390 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170390 -> 0x00170408 +*/ +// Range: 0x170390 -> 0x170408 +static unsigned int IdleCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170390 -> 0x170408 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170410 -> 0x0017053C +*/ +// Range: 0x170410 -> 0x17053C +static unsigned int WalkScaredCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170410 -> 0x17053C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170540 -> 0x00170634 +*/ +// Range: 0x170540 -> 0x170634 +static unsigned int WalkVictoryCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170540 -> 0x170634 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170640 -> 0x0017077C +*/ +// Range: 0x170640 -> 0x17077C +static unsigned int WalkStoicCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170640 -> 0x17077C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170780 -> 0x00170844 +*/ +// Range: 0x170780 -> 0x170844 +static unsigned int WalkCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170780 -> 0x170844 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170850 -> 0x0017090C +*/ +// Range: 0x170850 -> 0x17090C +static unsigned int RunOutOfWorldCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170850 -> 0x17090C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170910 -> 0x00170978 +*/ +// Range: 0x170910 -> 0x170978 +static unsigned int RunSlipCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170910 -> 0x170978 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170980 -> 0x00170A74 +*/ +// Range: 0x170980 -> 0x170A74 +static unsigned int RunVictoryCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170980 -> 0x170A74 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170A80 -> 0x00170BAC +*/ +// Range: 0x170A80 -> 0x170BAC +static unsigned int RunScaredCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170A80 -> 0x170BAC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170BB0 -> 0x00170CEC +*/ +// Range: 0x170BB0 -> 0x170CEC +static unsigned int RunStoicCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170BB0 -> 0x170CEC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170CF0 -> 0x00170DB4 +*/ +// Range: 0x170CF0 -> 0x170DB4 +static unsigned int RunAnyCheck() { + // Blocks + /* anonymous block */ { + // Range: 0x170CF0 -> 0x170DB4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170DC0 -> 0x00170F00 +*/ +// Range: 0x170DC0 -> 0x170F00 +static void InvReset() { + // Blocks + /* anonymous block */ { + // Range: 0x170DC0 -> 0x170F00 + unsigned int i; // r18 + unsigned int & maxsocks; // r17 + char * level_prefix; // r2 + unsigned int level_mask; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00170F00 -> 0x00172CF4 +*/ +// Range: 0x170F00 -> 0x172CF4 +static void PlayerAbsControl(class xEnt * ent /* r19 */, float x /* r27 */, float z /* r26 */, float dt /* r25 */) { + // Blocks + /* anonymous block */ { + // Range: 0x170F00 -> 0x172CF4 + unsigned int animUserFlag; // r18 + unsigned int blendUserFlag; // r17 + float angle; // r29+0xBC + float mag; // r29+0xB8 + float scalemag; // r24 + float dir_dp; // r23 + float turnfactor; // r22 + float diffAngle; // r21 + float autodist2d; // r20 + float camAngle; // r29+0xC0 + class xMat4x3 * m; // r2 + class xVec3 euler; // r29+0xA8 + float rot; // r29+0xC0 + float dx; // r4 + float dz; // r2 + float ddot; // r29+0xC0 + float atime; // r4 + float lerp; // r1 + float rot; // r29+0xC0 + class xMat3x3 rotY; // r29+0x70 + float m; // r4 + float curFactor; // r29+0xC0 + class zPlayerGlobals * pg; // r16 + float slideVelMag; // r29+0xC0 + float slideAccel; // r2 + float accelX; // r20 + float accelZ; // r29+0xC0 + float fwdComponent; // r1 + float sideComponent; // r29+0xC0 + float veldown; // r4 + float fwdlerp; // r2 + float targetAngle; // r29+0xC0 + float targetLean; // r2 + unsigned int moveFlag; // r16 + class xVec3 * vel; // r2 + float accelMag; // r20 + float peakLerp; // r3 + float slickLerp; // r3 + float s; // r1 + float s; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00172D00 -> 0x00172E68 +*/ +// Range: 0x172D00 -> 0x172E68 +static void TurnToFace(class xEnt * ent /* r17 */, class xVec3 * target /* r16 */, float speedLimit /* r22 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x172D00 -> 0x172E68 + class xVec3 currentFacing; // r29+0x40 + float angle; // r29+0x50 + float maxAngle; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00172E70 -> 0x00173084 +*/ +// Range: 0x172E70 -> 0x173084 +static void DampenControls(float * angle /* r17 */, float * mag /* r16 */, float x /* r21 */, float y /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x172E70 -> 0x173084 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173090 -> 0x0017309C +*/ +// Range: 0x173090 -> 0x17309C +void SetPlayerKillsVillainTimer(float time /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173090 -> 0x17309C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001730A0 -> 0x001730AC +*/ +// Range: 0x1730A0 -> 0x1730AC +void TellPlayerVillainIsNear(float visnear /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1730A0 -> 0x1730AC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001730B0 -> 0x001731D4 +*/ +// Range: 0x1730B0 -> 0x1731D4 +void zEntPlayerControlOff(enum zControlOwner owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1730B0 -> 0x1731D4 + unsigned int originalValue; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001731E0 -> 0x00173244 +*/ +// Range: 0x1731E0 -> 0x173244 +void zEntPlayerControlOn(enum zControlOwner owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1731E0 -> 0x173244 + unsigned int originalValue; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayer.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173250 -> 0x001735F8 +*/ +// Range: 0x173250 -> 0x1735F8 +static void zEntPlayer_SpawnWandBubbles(class xVec3 * center /* r21 */, unsigned int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173250 -> 0x1735F8 + unsigned int num; // r20 + class xVec3 * posbuf; // r19 + class xVec3 * velbuf; // r22 + class xVec3 * pp; // r18 + class xVec3 * vp; // r17 + unsigned int j; // r16 + float f; // r2 + } +} + diff --git a/dwarf/SB/Game/zEntPlayerAnimationTables.h b/dwarf/SB/Game/zEntPlayerAnimationTables.h new file mode 100644 index 000000000..aace9a4cf --- /dev/null +++ b/dwarf/SB/Game/zEntPlayerAnimationTables.h @@ -0,0 +1,99 @@ +/* + Compile unit: C:\SB\Game\zEntPlayerAnimationTables.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00159F20 -> 0x0015B8A8 +*/ +// Range: 0x159F20 -> 0x15B8A8 +class xAnimTable * zEntPlayer_TreeDomeSBAnimTable() { + // Blocks + /* anonymous block */ { + // Range: 0x159F20 -> 0x15B8A8 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerAnimationTables.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0015B8B0 -> 0x0015BA10 +*/ +// Range: 0x15B8B0 -> 0x15BA10 +class xAnimTable * zEntPlayer_BoulderVehicleAnimTable() { + // Blocks + /* anonymous block */ { + // Range: 0x15B8B0 -> 0x15BA10 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerAnimationTables.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0015BA10 -> 0x0015BC40 +*/ +// Range: 0x15BA10 -> 0x15BC40 +class xAnimTable * zSpongeBobTongue_AnimTable() { + // Blocks + /* anonymous block */ { + // Range: 0x15BA10 -> 0x15BC40 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerAnimationTables.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0015BC40 -> 0x0016187C +*/ +// Range: 0x15BC40 -> 0x16187C +class xAnimTable * zEntPlayer_AnimTable() { + // Blocks + /* anonymous block */ { + // Range: 0x15BC40 -> 0x16187C + class xAnimTransition * tran; // r16 + class xAnimTable * table; // r21 + class xAnimTransition * stdtran[8]; // r29+0xF0 + signed int i; // r20 + signed int j; // r19 + class xAnimTransition * hittran[11]; // r29+0xC0 + signed int j; // r18 + char * HIT_STATES[64]; // @ 0x004EDA60 + char * STANDARD_STATES[33]; // @ 0x004ED9D0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerAnimationTables.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00161880 -> 0x001643B0 +*/ +// Range: 0x161880 -> 0x1643B0 +class xAnimTable * zPatrick_AnimTable() { + // Blocks + /* anonymous block */ { + // Range: 0x161880 -> 0x1643B0 + class xAnimTransition * tran; // r17 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerAnimationTables.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001643B0 -> 0x00167BF0 +*/ +// Range: 0x1643B0 -> 0x167BF0 +class xAnimTable * zSandy_AnimTable() { + // Blocks + /* anonymous block */ { + // Range: 0x1643B0 -> 0x167BF0 + class xAnimTable * table; // r16 + } +} + diff --git a/dwarf/SB/Game/zEntPlayerBungeeState.cpp b/dwarf/SB/Game/zEntPlayerBungeeState.cpp new file mode 100644 index 000000000..238591daf --- /dev/null +++ b/dwarf/SB/Game/zEntPlayerBungeeState.cpp @@ -0,0 +1,4650 @@ +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static class sound_group sound_groups[9]; // size: 0x6C, address: 0x4FF3F0 +static class /* @class */ { + // total size: 0x58 +public: + float bottom_anim_frac; // offset 0x0, size 0x4 + float top_anim_frac; // offset 0x4, size 0x4 + float bottom_anim_time; // offset 0x8, size 0x4 + float top_anim_time; // offset 0xC, size 0x4 + float hit_anim_time; // offset 0x10, size 0x4 + float damage_rot; // offset 0x14, size 0x4 + float death_time; // offset 0x18, size 0x4 + float vel_blur; // offset 0x1C, size 0x4 + float fade_dist; // offset 0x20, size 0x4 + float player_radius; // offset 0x24, size 0x4 + float hook_fade_alpha; // offset 0x28, size 0x4 + float hook_fade_time; // offset 0x2C, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float edge_zone; // offset 0x0, size 0x4 + float sway; // offset 0x4, size 0x4 + float decay; // offset 0x8, size 0x4 + } horizontal; // offset 0x30, size 0xC + class /* @class */ { + // total size: 0x10 + public: + float time; // offset 0x0, size 0x4 + float anim_out_time; // offset 0x4, size 0x4 + float min_dist; // offset 0x8, size 0x4 + float max_dist; // offset 0xC, size 0x4 + } dive; // offset 0x3C, size 0x10 + class /* @class */ { + // total size: 0x4 + public: + float speed; // offset 0x0, size 0x4 + } camera; // offset 0x4C, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float spring; // offset 0x0, size 0x4 + float decay; // offset 0x4, size 0x4 + } turn; // offset 0x50, size 0x8 +} fixed; // size: 0x58, address: 0x5CDE00 +static class /* @class */ { + // total size: 0x19C +public: + signed int flags; // offset 0x0, size 0x4 + class state_type * state; // offset 0x4, size 0x4 + class state_type * states[2]; // offset 0x8, size 0x8 + class /* @class */ { + // total size: 0x2C + public: + class xAnimTransition * start; // offset 0x0, size 0x4 + class xAnimTransition * rise; // offset 0x4, size 0x4 + class xAnimTransition * fall; // offset 0x8, size 0x4 + class xAnimTransition * stop; // offset 0xC, size 0x4 + class xAnimTransition * dive_start; // offset 0x10, size 0x4 + class xAnimTransition * dive_stop; // offset 0x14, size 0x4 + class xAnimTransition * top_start; // offset 0x18, size 0x4 + class xAnimTransition * top_stop; // offset 0x1C, size 0x4 + class xAnimTransition * bottom_start; // offset 0x20, size 0x4 + class xAnimTransition * bottom_stop; // offset 0x24, size 0x4 + class xAnimTransition * hit; // offset 0x28, size 0x4 + } anim_tran; // offset 0x10, size 0x2C + class hook_type * hook; // offset 0x3C, size 0x4 + class hook_type * hook_cache[8]; // offset 0x40, size 0x20 + class drop_asset * drop_cache[32]; // offset 0x60, size 0x80 + class xMarkerAsset * drop_marker_cache[32]; // offset 0xE0, size 0x80 + signed int hook_cache_size; // offset 0x160, size 0x4 + signed int drop_cache_size; // offset 0x164, size 0x4 + class xModelInstance * root_model; // offset 0x168, size 0x4 + class xModelInstance * ass_model; // offset 0x16C, size 0x4 + class xModelInstance * pants_model; // offset 0x170, size 0x4 + class xVec3 hook_loc; // offset 0x174, size 0xC + class xVec3 drop_loc; // offset 0x180, size 0xC + unsigned char drop_set_view_angle; // offset 0x18C, size 0x1 + float drop_view_angle; // offset 0x190, size 0x4 + float dismount_delay; // offset 0x194, size 0x4 + signed int anim_state; // offset 0x198, size 0x4 +} shared; // size: 0x19C, address: 0x4DF7E0 +static float old_pants_clip_radius; // size: 0x4, address: 0x50FFB8 +static float old_root_clip_radius; // size: 0x4, address: 0x0 +float maxvel; // size: 0x4, address: 0x0 +class tweak_callback vertical_cb; // size: 0x28, address: 0x0 +class tweak_callback horizontal_cb; // size: 0x28, address: 0x0 +class tweak_callback camera_cb; // size: 0x28, address: 0x0 +class tweak_callback collision_cb; // size: 0x28, address: 0x0 +unsigned int check_anim_hit_to_death(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2F5350 +unsigned int check_anim_hit_to_cycle(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2F5440 +unsigned int check_anim_hit_to_bottom(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2F54A0 +unsigned int check_anim_hit_to_top(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2F54F0 +unsigned int check_anim_hit_to_dive(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2F5540 +unsigned int check_anim_start(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x2F5590 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon0 */ { + // total size: 0x18 +} __vt__Q312bungee_state35@unnamed@zEntPlayerBungeeState_cpp@18hanging_state_type; // size: 0x18, address: 0x50BEF0 +struct /* @anon1 */ { + // total size: 0x18 +} __vt__Q312bungee_state35@unnamed@zEntPlayerBungeeState_cpp@10state_type; // size: 0x18, address: 0x0 +struct /* @anon2 */ { + // total size: 0x18 +} __vt__Q312bungee_state35@unnamed@zEntPlayerBungeeState_cpp@20attaching_state_type; // size: 0x18, address: 0x50BF10 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +float default_player_radius; // size: 0x4, address: 0x50E694 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +signed int gGridIterActive; // size: 0x4, address: 0x50FFC8 +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class hanging_state_type : public state_type { + // total size: 0x9D0 +public: + class xVec3 loc; // offset 0x8, size 0xC + class xVec3 vel; // offset 0x14, size 0xC + class xVec3 last_loc; // offset 0x20, size 0xC + class xVec3 last_hook_loc; // offset 0x2C, size 0xC + class xVec3 cam_loc; // offset 0x38, size 0xC + class xVec3 cam_vel; // offset 0x44, size 0xC + class xVec3 cam_dir; // offset 0x50, size 0xC + class xVec3 cam_dir_vel; // offset 0x5C, size 0xC + float dive_remaining; // offset 0x68, size 0x4 + float rot; // offset 0x6C, size 0x4 + float rot_vel; // offset 0x70, size 0x4 + class xVec2 stick_loc; // offset 0x74, size 0x8 + float stick_ang; // offset 0x7C, size 0x4 + float stick_mag; // offset 0x80, size 0x4 + float stick_frac; // offset 0x84, size 0x4 + class xVec3 collide_accel; // offset 0x88, size 0xC + float roll_offset; // offset 0x94, size 0x4 + unsigned char detaching; // offset 0x98, size 0x1 + class xVec3 drop_off_vel; // offset 0x9C, size 0xC + float max_yvel; // offset 0xA8, size 0x4 + unsigned char dying; // offset 0xAC, size 0x1 + float control_lag_timer; // offset 0xB0, size 0x4 + float control_lag_max; // offset 0xB4, size 0x4 + unsigned char has_dived; // offset 0xB8, size 0x1 + unsigned char can_dive; // offset 0xB9, size 0x1 + unsigned int last_health; // offset 0xBC, size 0x4 + class /* @class */ { + // total size: 0x40 + public: + float time; // offset 0x0, size 0x4 + float end_time; // offset 0x4, size 0x4 + class xVec3 start_loc; // offset 0x8, size 0xC + class xVec3 end_loc; // offset 0x14, size 0xC + class xQuat start_dir; // offset 0x20, size 0x10 + class xQuat end_dir; // offset 0x30, size 0x10 + } detach; // offset 0xC0, size 0x40 + class xModelInstance * root_model; // offset 0x100, size 0x4 + class xModelInstance * ass_model; // offset 0x104, size 0x4 + class xModelInstance * pants_model; // offset 0x108, size 0x4 + class hook_asset h; // offset 0x10C, size 0x8C + class /* @class */ { + // total size: 0x20 + public: + class /* @class */ { + // total size: 0x14 + public: + float rest_dist; // offset 0x0, size 0x4 + float emax; // offset 0x4, size 0x4 + float spring; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 + float omega; // offset 0x10, size 0x4 + } vertical; // offset 0x0, size 0x14 + class /* @class */ { + // total size: 0xC + public: + float vscale; // offset 0x0, size 0x4 + float hscale; // offset 0x4, size 0x4 + float roll_decay; // offset 0x8, size 0x4 + } camera; // offset 0x14, size 0xC + } eh; // offset 0x198, size 0x20 + class ent_info ent_cache[256]; // offset 0x1B8, size 0x800 + signed int ent_cache_size; // offset 0x9B8, size 0x4 + class env_info env_cache; // offset 0x9BC, size 0xC +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class hook_type : public xBase { + // total size: 0x18 +public: + class hook_asset * asset; // offset 0x10, size 0x4 + class xEnt * ent; // offset 0x14, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x8 +public: + float dist; // offset 0x0, size 0x4 + float travel_time; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xIniFile { + // total size: 0x214 +public: + signed int NumValues; // offset 0x0, size 0x4 + signed int NumSections; // offset 0x4, size 0x4 + class xIniValue * Values; // offset 0x8, size 0x4 + class xIniSection * Sections; // offset 0xC, size 0x4 + void * mem; // offset 0x10, size 0x4 + char name[256]; // offset 0x14, size 0x100 + char pathname[256]; // offset 0x114, size 0x100 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class hook_asset : public xDynAsset { + // total size: 0x8C +public: + unsigned int entity; // offset 0x10, size 0x4 + class xVec3 center; // offset 0x14, size 0xC + class /* @class */ { + // total size: 0x8 + public: + float dist; // offset 0x0, size 0x4 + float travel_time; // offset 0x4, size 0x4 + } attach; // offset 0x20, size 0x8 + class /* @class */ { + // total size: 0xC + public: + float dist; // offset 0x0, size 0x4 + float free_fall_time; // offset 0x4, size 0x4 + float accel; // offset 0x8, size 0x4 + } detach; // offset 0x28, size 0xC + class /* @class */ { + // total size: 0x8 + public: + float unused1; // offset 0x0, size 0x4 + float unused2; // offset 0x4, size 0x4 + } turn; // offset 0x34, size 0x8 + class /* @class */ { + // total size: 0x18 + public: + float frequency; // offset 0x0, size 0x4 + float gravity; // offset 0x4, size 0x4 + float dive; // offset 0x8, size 0x4 + float min_dist; // offset 0xC, size 0x4 + float max_dist; // offset 0x10, size 0x4 + float damp; // offset 0x14, size 0x4 + } vertical; // offset 0x3C, size 0x18 + class /* @class */ { + // total size: 0x4 + public: + float max_dist; // offset 0x0, size 0x4 + } horizontal; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0x28 + public: + float rest_dist; // offset 0x0, size 0x4 + float view_angle; // offset 0x4, size 0x4 + float offset; // offset 0x8, size 0x4 + float offset_dir; // offset 0xC, size 0x4 + float turn_speed; // offset 0x10, size 0x4 + float vel_scale; // offset 0x14, size 0x4 + float roll_speed; // offset 0x18, size 0x4 + class xVec3 unused1; // offset 0x1C, size 0xC + } camera; // offset 0x58, size 0x28 + class /* @class */ { + // total size: 0xC + public: + float hit_loss; // offset 0x0, size 0x4 + float damage_velocity; // offset 0x4, size 0x4 + float hit_velocity; // offset 0x8, size 0x4 + } collision; // offset 0x80, size 0xC +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float vscale; // offset 0x0, size 0x4 + float hscale; // offset 0x4, size 0x4 + float roll_decay; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + float speed; // offset 0x0, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class /* @class */ { + // total size: 0xC +public: + float dist; // offset 0x0, size 0x4 + float free_fall_time; // offset 0x4, size 0x4 + float accel; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class drop_asset : public xDynAsset { + // total size: 0x1C +public: + unsigned int marker; // offset 0x10, size 0x4 + unsigned int set_view_angle; // offset 0x14, size 0x4 + float view_angle; // offset 0x18, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x8 +public: + float spring; // offset 0x0, size 0x4 + float decay; // offset 0x4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class ent_info { + // total size: 0x8 +public: + class xEnt * ent; // offset 0x0, size 0x4 + signed int hits; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class xFFX { + // total size: 0x0 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class attaching_state_type : public state_type { + // total size: 0x4C +public: + class xVec3 * loc; // offset 0x8, size 0x4 + class xVec3 * vel; // offset 0xC, size 0x4 + class xVec3 last_hook_loc; // offset 0x10, size 0xC + class xVec3 hook_vel; // offset 0x1C, size 0xC + float time_left; // offset 0x28, size 0x4 + float time; // offset 0x2C, size 0x4 + float end_time; // offset 0x30, size 0x4 + class xVec3 player_loc; // offset 0x34, size 0xC + class xVec3 player_vel; // offset 0x40, size 0xC +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float unused1; // offset 0x0, size 0x4 + float unused2; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class env_info { + // total size: 0xC +public: + class xEnv * env; // offset 0x0, size 0x4 + unsigned char collide; // offset 0x4, size 0x1 + signed int hits; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x18 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xParGroup { + // total size: 0x0 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class /* @class */ { + // total size: 0x18 +public: + float frequency; // offset 0x0, size 0x4 + float gravity; // offset 0x4, size 0x4 + float dive; // offset 0x8, size 0x4 + float min_dist; // offset 0xC, size 0x4 + float max_dist; // offset 0x10, size 0x4 + float damp; // offset 0x14, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xIniValue { + // total size: 0x8 +public: + char * tok; // offset 0x0, size 0x4 + char * val; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class sound_group { + // total size: 0xC +public: + signed int first; // offset 0x0, size 0x4 + signed int last; // offset 0x4, size 0x4 + unsigned char streamed; // offset 0x8, size 0x1 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + float bottom_anim_frac; // offset 0x0, size 0x4 + float top_anim_frac; // offset 0x4, size 0x4 + float bottom_anim_time; // offset 0x8, size 0x4 + float top_anim_time; // offset 0xC, size 0x4 + float hit_anim_time; // offset 0x10, size 0x4 + float damage_rot; // offset 0x14, size 0x4 + float death_time; // offset 0x18, size 0x4 + float vel_blur; // offset 0x1C, size 0x4 + float fade_dist; // offset 0x20, size 0x4 + float player_radius; // offset 0x24, size 0x4 + float hook_fade_alpha; // offset 0x28, size 0x4 + float hook_fade_time; // offset 0x2C, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float edge_zone; // offset 0x0, size 0x4 + float sway; // offset 0x4, size 0x4 + float decay; // offset 0x8, size 0x4 + } horizontal; // offset 0x30, size 0xC + class /* @class */ { + // total size: 0x10 + public: + float time; // offset 0x0, size 0x4 + float anim_out_time; // offset 0x4, size 0x4 + float min_dist; // offset 0x8, size 0x4 + float max_dist; // offset 0xC, size 0x4 + } dive; // offset 0x3C, size 0x10 + class /* @class */ { + // total size: 0x4 + public: + float speed; // offset 0x0, size 0x4 + } camera; // offset 0x4C, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float spring; // offset 0x0, size 0x4 + float decay; // offset 0x4, size 0x4 + } turn; // offset 0x50, size 0x8 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xIniSection { + // total size: 0xC +public: + char * sec; // offset 0x0, size 0x4 + signed int first; // offset 0x4, size 0x4 + signed int count; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class /* @class */ { + // total size: 0x4 +public: + float max_dist; // offset 0x0, size 0x4 +}; +class cb_cache_collisions { + // total size: 0xC +public: + class xSphere & o; // offset 0x0, size 0x4 + class ent_info * ent_cache; // offset 0x4, size 0x4 + signed int & ent_cache_size; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x18 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x40 +public: + float time; // offset 0x0, size 0x4 + float end_time; // offset 0x4, size 0x4 + class xVec3 start_loc; // offset 0x8, size 0xC + class xVec3 end_loc; // offset 0x14, size 0xC + class xQuat start_dir; // offset 0x20, size 0x10 + class xQuat end_dir; // offset 0x30, size 0x10 +}; +class xParSys { + // total size: 0x0 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum sound_enum { + SOUND_INVALID = -1, + BEGIN_SOUND = 0, + SOUND_ATTACH = 0, + SOUND_ATTACH_COMMENT = 1, + SOUND_DETACH = 2, + SOUND_DIVE = 3, + SOUND_PEAK = 4, + SOUND_WIND_LOOP = 5, + SOUND_THUMP = 6, + SOUND_DAMAGE = 7, + SOUND_DEATH = 8, + END_SOUND = 9, + MAX_SOUND = 9, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x28 +public: + float rest_dist; // offset 0x0, size 0x4 + float view_angle; // offset 0x4, size 0x4 + float offset; // offset 0x8, size 0x4 + float offset_dir; // offset 0xC, size 0x4 + float turn_speed; // offset 0x10, size 0x4 + float vel_scale; // offset 0x14, size 0x4 + float roll_speed; // offset 0x18, size 0x4 + class xVec3 unused1; // offset 0x1C, size 0xC +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class /* @class */ { + // total size: 0x19C +public: + signed int flags; // offset 0x0, size 0x4 + class state_type * state; // offset 0x4, size 0x4 + class state_type * states[2]; // offset 0x8, size 0x8 + class /* @class */ { + // total size: 0x2C + public: + class xAnimTransition * start; // offset 0x0, size 0x4 + class xAnimTransition * rise; // offset 0x4, size 0x4 + class xAnimTransition * fall; // offset 0x8, size 0x4 + class xAnimTransition * stop; // offset 0xC, size 0x4 + class xAnimTransition * dive_start; // offset 0x10, size 0x4 + class xAnimTransition * dive_stop; // offset 0x14, size 0x4 + class xAnimTransition * top_start; // offset 0x18, size 0x4 + class xAnimTransition * top_stop; // offset 0x1C, size 0x4 + class xAnimTransition * bottom_start; // offset 0x20, size 0x4 + class xAnimTransition * bottom_stop; // offset 0x24, size 0x4 + class xAnimTransition * hit; // offset 0x28, size 0x4 + } anim_tran; // offset 0x10, size 0x2C + class hook_type * hook; // offset 0x3C, size 0x4 + class hook_type * hook_cache[8]; // offset 0x40, size 0x20 + class drop_asset * drop_cache[32]; // offset 0x60, size 0x80 + class xMarkerAsset * drop_marker_cache[32]; // offset 0xE0, size 0x80 + signed int hook_cache_size; // offset 0x160, size 0x4 + signed int drop_cache_size; // offset 0x164, size 0x4 + class xModelInstance * root_model; // offset 0x168, size 0x4 + class xModelInstance * ass_model; // offset 0x16C, size 0x4 + class xModelInstance * pants_model; // offset 0x170, size 0x4 + class xVec3 hook_loc; // offset 0x174, size 0xC + class xVec3 drop_loc; // offset 0x180, size 0xC + unsigned char drop_set_view_angle; // offset 0x18C, size 0x1 + float drop_view_angle; // offset 0x190, size 0x4 + float dismount_delay; // offset 0x194, size 0x4 + signed int anim_state; // offset 0x198, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class state_type { + // total size: 0x8 +public: + enum state_enum type; // offset 0x0, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + BEGIN_STATE = 0, + STATE_ATTACHING = 0, + STATE_HANGING = 1, + END_STATE = 2, + MAX_STATE = 2, +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class /* @class */ { + // total size: 0xC +public: + float edge_zone; // offset 0x0, size 0x4 + float sway; // offset 0x4, size 0x4 + float decay; // offset 0x8, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0x2C +public: + class xAnimTransition * start; // offset 0x0, size 0x4 + class xAnimTransition * rise; // offset 0x4, size 0x4 + class xAnimTransition * fall; // offset 0x8, size 0x4 + class xAnimTransition * stop; // offset 0xC, size 0x4 + class xAnimTransition * dive_start; // offset 0x10, size 0x4 + class xAnimTransition * dive_stop; // offset 0x14, size 0x4 + class xAnimTransition * top_start; // offset 0x18, size 0x4 + class xAnimTransition * top_stop; // offset 0x1C, size 0x4 + class xAnimTransition * bottom_start; // offset 0x20, size 0x4 + class xAnimTransition * bottom_stop; // offset 0x24, size 0x4 + class xAnimTransition * hit; // offset 0x28, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +struct /* @anon2 */ { + // total size: 0x18 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class /* @class */ { + // total size: 0x20 +public: + class /* @class */ { + // total size: 0x14 + public: + float rest_dist; // offset 0x0, size 0x4 + float emax; // offset 0x4, size 0x4 + float spring; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 + float omega; // offset 0x10, size 0x4 + } vertical; // offset 0x0, size 0x14 + class /* @class */ { + // total size: 0xC + public: + float vscale; // offset 0x0, size 0x4 + float hscale; // offset 0x4, size 0x4 + float roll_decay; // offset 0x8, size 0x4 + } camera; // offset 0x14, size 0xC +}; +class /* @class */ { + // total size: 0xC +public: + float hit_loss; // offset 0x0, size 0x4 + float damage_velocity; // offset 0x4, size 0x4 + float hit_velocity; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float rest_dist; // offset 0x0, size 0x4 + float emax; // offset 0x4, size 0x4 + float spring; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 + float omega; // offset 0x10, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x10 +public: + float time; // offset 0x0, size 0x4 + float anim_out_time; // offset 0x4, size 0x4 + float min_dist; // offset 0x8, size 0x4 + float max_dist; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3710 -> 0x002F3D34 +*/ +// Range: 0x2F3710 -> 0x2F3D34 +void insert_animations(class xAnimTable & table /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3710 -> 0x2F3D34 + char * start_to; // @ 0x0050F058 + char * start_from; // @ 0x0050F054 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3D40 -> 0x002F3D94 +*/ +// Range: 0x2F3D40 -> 0x2F3D94 +unsigned char render() { + // Blocks + /* anonymous block */ { + // Range: 0x2F3D40 -> 0x2F3D94 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F3DA0 -> 0x002F3FF4 +*/ +// Range: 0x2F3DA0 -> 0x2F3FF4 +unsigned char update(class xScene * sc /* r16 */, float dt /* r29+0x3C */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F3DA0 -> 0x2F3FF4 + float prev_dismount_delay; // r3 + enum state_enum newtype; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4000 -> 0x002F403C +*/ +// Range: 0x2F4000 -> 0x2F403C +unsigned char landed() { + // Blocks + /* anonymous block */ { + // Range: 0x2F4000 -> 0x2F403C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4040 -> 0x002F4050 +*/ +// Range: 0x2F4040 -> 0x2F4050 +unsigned char active() { + // Blocks + /* anonymous block */ { + // Range: 0x2F4040 -> 0x2F4050 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4050 -> 0x002F41E4 +*/ +// Range: 0x2F4050 -> 0x2F41E4 +void reset() { + // Blocks + /* anonymous block */ { + // Range: 0x2F4050 -> 0x2F41E4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F41F0 -> 0x002F4308 +*/ +// Range: 0x2F41F0 -> 0x2F4308 +void destroy() { + // Blocks + /* anonymous block */ { + // Range: 0x2F41F0 -> 0x2F4308 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4310 -> 0x002F43CC +*/ +// Range: 0x2F4310 -> 0x2F43CC +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x2F4310 -> 0x2F43CC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F43D0 -> 0x002F4C48 +*/ +// Range: 0x2F43D0 -> 0x2F4C48 +void load_settings(class xIniFile & ini /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F43D0 -> 0x2F4C48 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4C50 -> 0x002F4CAC +*/ +// Range: 0x2F4C50 -> 0x2F4CAC +void load(class xBase & data /* r17 */, class xDynAsset & asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F4C50 -> 0x2F4CAC + class hook_type & hook; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4CB0 -> 0x002F4E34 +*/ +// Range: 0x2F4CB0 -> 0x2F4E34 +static void init_cache() { + // Blocks + /* anonymous block */ { + // Range: 0x2F4CB0 -> 0x2F4E34 + class zScene & s; // r2 + class hook_type * it; // r5 + class hook_type * end; // r4 + signed int imax; // r19 + unsigned int drop_type_id; // r18 + signed int i; // r17 + unsigned int size; // r29+0x5C + class xDynAsset * a; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F4E40 -> 0x002F50CC +*/ +// Range: 0x2F4E40 -> 0x2F50CC +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x2F4E40 -> 0x2F50CC + class xEnt & player; // r16 + char * anim_name; // r17 + signed int found; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F50D0 -> 0x002F51E8 +*/ +// Range: 0x2F50D0 -> 0x2F51E8 +static void fade_hook_update(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F50D0 -> 0x2F51E8 + float vel; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F51F0 -> 0x002F5350 +*/ +// Range: 0x2F51F0 -> 0x2F5350 +static signed int find_nearest_hook(class xVec3 & loc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F51F0 -> 0x2F5350 + signed int found; // r2 + float closest; // r7 + signed int i; // r24 + float attach_dist; // r29+0x30 + class xVec3 dloc; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5350 -> 0x002F5434 +*/ +// Range: 0x2F5350 -> 0x2F5434 +static unsigned int check_anim_hit_to_death() { + // Blocks + /* anonymous block */ { + // Range: 0x2F5350 -> 0x2F5434 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5440 -> 0x002F5498 +*/ +// Range: 0x2F5440 -> 0x2F5498 +static unsigned int check_anim_hit_to_cycle() { + // Blocks + /* anonymous block */ { + // Range: 0x2F5440 -> 0x2F5498 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F54A0 -> 0x002F54F0 +*/ +// Range: 0x2F54A0 -> 0x2F54F0 +static unsigned int check_anim_hit_to_bottom() { + // Blocks + /* anonymous block */ { + // Range: 0x2F54A0 -> 0x2F54F0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F54F0 -> 0x002F5540 +*/ +// Range: 0x2F54F0 -> 0x2F5540 +static unsigned int check_anim_hit_to_top() { + // Blocks + /* anonymous block */ { + // Range: 0x2F54F0 -> 0x2F5540 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5540 -> 0x002F5590 +*/ +// Range: 0x2F5540 -> 0x2F5590 +static unsigned int check_anim_hit_to_dive() { + // Blocks + /* anonymous block */ { + // Range: 0x2F5540 -> 0x2F5590 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5590 -> 0x002F5598 +*/ +// Range: 0x2F5590 -> 0x2F5598 +static unsigned int check_anim_start() { + // Blocks + /* anonymous block */ { + // Range: 0x2F5590 -> 0x2F5598 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F55A0 -> 0x002F5638 +*/ +// Range: 0x2F55A0 -> 0x2F5638 +static float spring_velocity(float x /* r29+0x10 */, float v /* r29+0x4 */, float e /* r29+0x10 */, float k /* r29+0x10 */, float g /* r29+0x10 */, float xc /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F55A0 -> 0x2F5638 + float ek; // r1 + float vout; // r29+0xC + unsigned int aa; // r29+0x8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5640 -> 0x002F5674 +*/ +// Range: 0x2F5640 -> 0x2F5674 +static float spring_energy(float x /* r29 */, float v /* r29 */, float k /* r29 */, float g /* r29 */, float xc /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F5640 -> 0x2F5674 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5680 -> 0x002F5704 +*/ +// Range: 0x2F5680 -> 0x2F5704 +static float find_spring_min(float min_dist /* r21 */, float max_dist /* r20 */, float damp /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F5680 -> 0x2F5704 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5750 -> 0x002F58D0 +*/ +// Range: 0x2F5750 -> 0x2F58D0 +static unsigned char find_drop_off() { + // Blocks + /* anonymous block */ { + // Range: 0x2F5750 -> 0x2F58D0 + signed int near_index; // r12 + float near_dist2; // r6 + signed int i; // r11 + class xVec3 dloc; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F58D0 -> 0x002F5990 +*/ +// Range: 0x2F58D0 -> 0x2F5990 +static void update_hook_loc() { + // Blocks + /* anonymous block */ { + // Range: 0x2F58D0 -> 0x2F5990 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5990 -> 0x002F5C2C +*/ +// Range: 0x2F5990 -> 0x2F5C2C +static void move_wedgie(class xVec3 & stretch_loc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F5990 -> 0x2F5C2C + class xMat4x3 tm; // r29+0xB0 + class xMat4x3 mworld; // r29+0x70 + class xMat4x3 mlocal; // r29+0x30 + class xVec3 tweak_cord_off; // @ 0x005CDE58 + unsigned char registered; // @ 0x0050FFBC + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5C30 -> 0x002F5CCC +*/ +// Range: 0x2F5C30 -> 0x2F5CCC +static void play_sound(enum sound_enum which /* r2 */, float delay /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F5C30 -> 0x2F5CCC + class sound_group & sg; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F5CD0 -> 0x002F67E0 +*/ +// Range: 0x2F5CD0 -> 0x2F67E0 +static void start(class hanging_state_type * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F5CD0 -> 0x2F67E0 + class xVec3 eu; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F67E0 -> 0x002F685C +*/ +// Range: 0x2F67E0 -> 0x2F685C +static class xVec3 world_to_local(class xVec3 & vw /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F67E0 -> 0x2F685C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F6860 -> 0x002F6ABC +*/ +// Range: 0x2F6860 -> 0x2F6ABC +static void stop(class hanging_state_type * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F6860 -> 0x2F6ABC + class xMat4x3 & mm; // r3 + class xEnt * ent; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F6AC0 -> 0x002F7AFC +*/ +// Range: 0x2F6AC0 -> 0x2F7AFC +static enum state_enum update(class hanging_state_type * this /* r18 */, class xScene & s /* r17 */, float & dt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F6AC0 -> 0x2F7AFC + class analog_data & analog; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F7B00 -> 0x002F7C08 +*/ +// Range: 0x2F7B00 -> 0x2F7C08 +static void short_drop_sudden_stop(class hanging_state_type * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F7B00 -> 0x2F7C08 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F7C10 -> 0x002F7F08 +*/ +// Range: 0x2F7C10 -> 0x2F7F08 +static unsigned char repath(class hanging_state_type * this /* r21 */, class xScene & s /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F7C10 -> 0x2F7F08 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F7F10 -> 0x002F80E8 +*/ +// Range: 0x2F7F10 -> 0x2F80E8 +static unsigned char hit_boundary(class hanging_state_type * this /* r2 */, class xVec3 & norm /* r2 */, class xVec3 & depen /* r2 */, class xVec3 & v /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F7F10 -> 0x2F80E8 + signed int hits; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F80F0 -> 0x002F822C +*/ +// Range: 0x2F80F0 -> 0x2F822C +static void trigger_collision(class hanging_state_type * this /* r16 */, class env_info & ei /* r2 */, float mag /* r20 */, class xCollis & coll /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F80F0 -> 0x2F822C + class xSurface * surf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F8230 -> 0x002F8524 +*/ +// Range: 0x2F8230 -> 0x2F8524 +static void check_damage(class hanging_state_type * this /* r17 */, unsigned char thump /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F8230 -> 0x2F8524 + unsigned int old_last_health; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F8530 -> 0x002F877C +*/ +// Range: 0x2F8530 -> 0x2F877C +static float trigger_collision(class hanging_state_type * this /* r18 */, class ent_info & ei /* r17 */, float mag /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F8530 -> 0x2F877C + class xSurface * surf; // r2 + unsigned char can_splat; // r5 + class zNPCCommon & npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F8780 -> 0x002F8848 +*/ +// Range: 0x2F8780 -> 0x2F8848 +static unsigned char collide(class xCollis & coll /* r18 */, class xSphere & o /* r17 */, class xEnt & ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F8780 -> 0x2F8848 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F8850 -> 0x002F8C20 +*/ +// Range: 0x2F8850 -> 0x2F8C20 +static void collide_start(class hanging_state_type * this /* r17 */, class xScene & s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F8850 -> 0x2F8C20 + class xSphere o; // r29+0x140 + class xBound bound; // r29+0xF0 + class cb_cache_collisions cb; // r29+0x1C0 + class xCollis coll; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F8C20 -> 0x002F8EF0 +*/ +// Range: 0x2F8C20 -> 0x2F8EF0 +static void update_camera_direction(class hanging_state_type * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F8C20 -> 0x2F8EF0 + class xVec3 start; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F8EF0 -> 0x002F92D0 +*/ +// Range: 0x2F8EF0 -> 0x2F92D0 +static void interpolate_camera_loc(class hanging_state_type * this /* r17 */, class xVec3 & dest /* r16 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F8EF0 -> 0x2F92D0 + class xMat3x3 m; // r29+0xA0 + float ang; // r20 + float s; // r4 + class xMat3x3 im; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9360 -> 0x002F9368 +*/ +// Range: 0x2F9360 -> 0x2F9368 +static unsigned char update_free_look() { + // Blocks + /* anonymous block */ { + // Range: 0x2F9360 -> 0x2F9368 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9370 -> 0x002F94E0 +*/ +// Range: 0x2F9370 -> 0x2F94E0 +static void update_hmovement(class hanging_state_type * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9370 -> 0x2F94E0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F94E0 -> 0x002F9AA4 +*/ +// Range: 0x2F94E0 -> 0x2F9AA4 +static void update_vmovement(class hanging_state_type * this /* r16 */, float dt /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F94E0 -> 0x2F9AA4 + float dv; // r8 + float v; // r9 + float range; // r2 + float ybottom; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9AB0 -> 0x002F9BE8 +*/ +// Range: 0x2F9AB0 -> 0x2F9BE8 +static void update_heading(class hanging_state_type * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9AB0 -> 0x2F9BE8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9BF0 -> 0x002F9C34 +*/ +// Range: 0x2F9BF0 -> 0x2F9C34 +static void update_blur(class hanging_state_type * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9BF0 -> 0x2F9C34 + float blur; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9C40 -> 0x002F9CE8 +*/ +// Range: 0x2F9C40 -> 0x2F9CE8 +static void update_sound(class hanging_state_type * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9C40 -> 0x2F9CE8 + float vol; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9D20 -> 0x002F9DE0 +*/ +// Range: 0x2F9D20 -> 0x2F9DE0 +static class xSphere player_bound(class hanging_state_type * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9D20 -> 0x2F9DE0 + class xSphere o; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F9DE0 -> 0x002FA098 +*/ +// Range: 0x2F9DE0 -> 0x2FA098 +static void update_detach_camera(class hanging_state_type * this /* r15 */, float dt /* r29+0xE0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F9DE0 -> 0x2FA098 + class xMat4x3 cammat; // r29+0x30 + class xQuat dir; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FA0A0 -> 0x002FA714 +*/ +// Range: 0x2FA0A0 -> 0x2FA714 +static void update_animation(class hanging_state_type * this /* r17 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FA0A0 -> 0x2FA714 + class xAnimPlay * ap; // r16 + class iColor_tag black; // r29+0x6C + class iColor_tag clear; // r29+0x68 + class RwMatrixTag & mm; // r2 + float dist_frac; // r20 + signed int which; // r2 + float vel_frac; // r2 + class xAnimSingle & xas; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FA7C0 -> 0x002FA83C +*/ +// Range: 0x2FA7C0 -> 0x2FA83C +static class xVec3 local_to_world(class xVec3 & vl /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FA7C0 -> 0x2FA83C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FA840 -> 0x002FA928 +*/ +// Range: 0x2FA840 -> 0x2FA928 +static void calc_drop_off_velocity(class xVec3 & v /* r2 */, class xVec3 & from /* r2 */, class xVec3 & to /* r2 */, float g /* r29+0x30 */, float t /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FA840 -> 0x2FA928 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FA930 -> 0x002FA988 +*/ +// Range: 0x2FA930 -> 0x2FA988 +static void render() { + // Blocks + /* anonymous block */ { + // Range: 0x2FA930 -> 0x2FA988 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FA990 -> 0x002FAD08 +*/ +// Range: 0x2FA990 -> 0x2FAD08 +static void start(class attaching_state_type * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FA990 -> 0x2FAD08 + class xEntFrame & frame; // r16 + class xVec3 & root_loc; // r2 + class xVec3 offset; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FAD10 -> 0x002FAD4C +*/ +// Range: 0x2FAD10 -> 0x2FAD4C +static void stop(class attaching_state_type * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FAD10 -> 0x2FAD4C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FAD50 -> 0x002FB0EC +*/ +// Range: 0x2FAD50 -> 0x2FB0EC +static enum state_enum update(class attaching_state_type * this /* r17 */, float & dt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2FAD50 -> 0x2FB0EC + float g; // r5 + class RwMatrixTag & mm; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerBungeeState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002FB0F0 -> 0x002FB12C +*/ +// Range: 0x2FB0F0 -> 0x2FB12C +static void render() { + // Blocks + /* anonymous block */ { + // Range: 0x2FB0F0 -> 0x2FB12C + } +} + diff --git a/dwarf/SB/Game/zEntPlayerOOBState.cpp b/dwarf/SB/Game/zEntPlayerOOBState.cpp new file mode 100644 index 000000000..ae35c808a --- /dev/null +++ b/dwarf/SB/Game/zEntPlayerOOBState.cpp @@ -0,0 +1,4150 @@ +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned char oob_player_teleported; // size: 0x1, address: 0x50FFE0 +static class tagFixed fixed; // size: 0x7C, address: 0x5CF2C0 +static class /* @class */ { + // total size: 0x70 +public: + signed int flags; // offset 0x0, size 0x4 + class state_type * state; // offset 0x4, size 0x4 + unsigned char control; // offset 0x8, size 0x1 + class state_type * states[4]; // offset 0xC, size 0x10 + float out_time; // offset 0x1C, size 0x4 + float max_out_time; // offset 0x20, size 0x4 + float reset_time; // offset 0x24, size 0x4 + class xModelInstance * model; // offset 0x28, size 0x4 + class xVec2 loc; // offset 0x2C, size 0x8 + class xVec2 dir; // offset 0x34, size 0x8 + float fade_alpha; // offset 0x3C, size 0x4 + unsigned char render_hand; // offset 0x40, size 0x1 + unsigned char vertical; // offset 0x41, size 0x1 + float vel; // offset 0x44, size 0x4 + float accel; // offset 0x48, size 0x4 + class ztalkbox * tutorial; // offset 0x4C, size 0x4 + class /* @class */ { + // total size: 0x20 + public: + float near_d; // offset 0x0, size 0x4 + float near_h; // offset 0x4, size 0x4 + float near_pitch; // offset 0x8, size 0x4 + float far_d; // offset 0xC, size 0x4 + float far_h; // offset 0x10, size 0x4 + float far_pitch; // offset 0x14, size 0x4 + class xMat4x3 * tgt_mat; // offset 0x18, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x1C, size 0x4 + } cam_data; // offset 0x50, size 0x20 +} shared; // size: 0x70, address: 0x4DFA90 +static class xMat4x3 shared_target; // size: 0x40, address: 0x5CF340 +static class idiot_level_data idiot_levels[6]; // size: 0x30, address: 0x4DFB00 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum substate_enum supdate_fade_in(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30B6F0 +enum substate_enum supdate_start_fade_in(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30B770 +enum substate_enum supdate_moving_out(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30B7B0 +enum substate_enum supdate_starting(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30B900 +enum substate_enum supdate_stopped(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BA00 +enum substate_enum supdate_stopping(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BA70 +enum substate_enum supdate_moving_in(class drop_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BB90 +struct /* @anon3 */ { + // total size: 0x14 +} __vt__Q39oob_state32@unnamed@zEntPlayerOOBState_cpp@15drop_state_type; // size: 0x14, address: 0x50BF30 +struct /* @anon1 */ { + // total size: 0x14 +} __vt__Q39oob_state32@unnamed@zEntPlayerOOBState_cpp@10state_type; // size: 0x14, address: 0x0 +enum substate_enum supdate_fade_out(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BDA0 +enum substate_enum supdate_start_fade_out(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BE20 +enum substate_enum supdate_moving_out(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BE60 +enum substate_enum supdate_starting(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30BFB0 +enum substate_enum supdate_tutorial(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30C0B0 +enum substate_enum supdate_stopped(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30C130 +enum substate_enum supdate_stopping(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30C1A0 +enum substate_enum supdate_moving_in(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30C310 +enum substate_enum supdate_begin_wait(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30C420 +enum substate_enum supdate_reorient(class grab_state_type &, class xScene &, float &); // size: 0x0, address: 0x30C460 +struct /* @anon5 */ { + // total size: 0x18 +} __vt__Q49oob_state32@unnamed@zEntPlayerOOBState_cpp@15grab_state_type17tutorial_callback; // size: 0x18, address: 0x50BF50 +struct /* @anon2 */ { + // total size: 0x18 +} __vt__Q28ztalkbox8callback; // size: 0x18, address: 0x0 +struct /* @anon0 */ { + // total size: 0x14 +} __vt__Q39oob_state32@unnamed@zEntPlayerOOBState_cpp@15grab_state_type; // size: 0x14, address: 0x50BF70 +struct /* @anon6 */ { + // total size: 0x14 +} __vt__Q39oob_state32@unnamed@zEntPlayerOOBState_cpp@14out_state_type; // size: 0x14, address: 0x50BF90 +struct /* @anon4 */ { + // total size: 0x14 +} __vt__Q39oob_state32@unnamed@zEntPlayerOOBState_cpp@13in_state_type; // size: 0x14, address: 0x50BFB0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class drop_state_type : public state_type { + // total size: 0x44 +public: + enum substate_enum move_substate; // offset 0x8, size 0x4 + enum substate_enum fade_substate; // offset 0xC, size 0x4 + class xVec3 player_start; // offset 0x10, size 0xC + float stop_time; // offset 0x1C, size 0x4 + float fade_start_time; // offset 0x20, size 0x4 + float fade_time; // offset 0x24, size 0x4 + enum substate_enum (* updatess[7])(class drop_state_type &, class xScene &, float &); // offset 0x28, size 0x1C +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class callback { + // total size: 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xIniFile { + // total size: 0x214 +public: + signed int NumValues; // offset 0x0, size 0x4 + signed int NumSections; // offset 0x4, size 0x4 + class xIniValue * Values; // offset 0x8, size 0x4 + class xIniSection * Sections; // offset 0xC, size 0x4 + void * mem; // offset 0x10, size 0x4 + char name[256]; // offset 0x14, size 0x100 + char pathname[256]; // offset 0x114, size 0x100 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class in_state_type : public state_type { + // total size: 0x8 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class idiot_level_data { + // total size: 0x8 +public: + unsigned char triggered; // offset 0x0, size 0x1 + unsigned int scene; // offset 0x4, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class grab_state_type : public state_type { + // total size: 0x68 +public: + class tutorial_callback cb; // offset 0x8, size 0x8 + enum substate_enum move_substate; // offset 0x10, size 0x4 + enum substate_enum fade_substate; // offset 0x14, size 0x4 + class xVec3 player_start; // offset 0x18, size 0xC + float reorient_time; // offset 0x24, size 0x4 + float angle_delta; // offset 0x28, size 0x4 + float delay; // offset 0x2C, size 0x4 + float fade_start_time; // offset 0x30, size 0x4 + float fade_time; // offset 0x34, size 0x4 + unsigned int scene_reset; // offset 0x38, size 0x4 + unsigned char finished_tutorial; // offset 0x3C, size 0x1 + enum substate_enum (* updatess[10])(class grab_state_type &, class xScene &, float &); // offset 0x40, size 0x28 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class ztalkbox : public xBase { + // total size: 0x3C +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char visible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class ztextbox * dialog_box; // offset 0x18, size 0x4 + class ztextbox * prompt_box; // offset 0x1C, size 0x4 + class ztextbox * quit_box; // offset 0x20, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 + } prompt; // offset 0x24, size 0x14 + class zNPCCommon * npc; // offset 0x38, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x20 +public: + float near_d; // offset 0x0, size 0x4 + float near_h; // offset 0x4, size 0x4 + float near_pitch; // offset 0x8, size 0x4 + float far_d; // offset 0xC, size 0x4 + float far_h; // offset 0x10, size 0x4 + float far_pitch; // offset 0x14, size 0x4 + class xMat4x3 * tgt_mat; // offset 0x18, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x1C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class tutorial_callback : public callback { + // total size: 0x8 +public: + class grab_state_type & owner; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class tagFixed { + // total size: 0x7C +public: + float out_time; // offset 0x0, size 0x4 + float reset_time; // offset 0x4, size 0x4 + float cam_dist; // offset 0x8, size 0x4 + float cam_height; // offset 0xC, size 0x4 + float cam_pitch; // offset 0x10, size 0x4 + float reorient_time; // offset 0x14, size 0x4 + char * hand_model; // offset 0x18, size 0x4 + class xVec2 in_loc; // offset 0x1C, size 0x8 + class xVec2 out_loc; // offset 0x24, size 0x8 + class /* @class */ { + // total size: 0x20 + public: + float in_wait_time; // offset 0x0, size 0x4 + float in_vel; // offset 0x4, size 0x4 + float in_stop_dist; // offset 0x8, size 0x4 + float out_wait_time; // offset 0xC, size 0x4 + float out_vel; // offset 0x10, size 0x4 + float out_start_dist; // offset 0x14, size 0x4 + float fade_start_time; // offset 0x18, size 0x4 + float fade_time; // offset 0x1C, size 0x4 + } grab; // offset 0x2C, size 0x20 + class /* @class */ { + // total size: 0x1C + public: + float in_vel; // offset 0x0, size 0x4 + float in_stop_dist; // offset 0x4, size 0x4 + float out_wait_time; // offset 0x8, size 0x4 + float out_vel; // offset 0xC, size 0x4 + float out_start_dist; // offset 0x10, size 0x4 + float fade_start_time; // offset 0x14, size 0x4 + float fade_time; // offset 0x18, size 0x4 + } drop; // offset 0x4C, size 0x1C + float hand_size_x; // offset 0x68, size 0x4 + float hand_size_y; // offset 0x6C, size 0x4 + float hand_yaw; // offset 0x70, size 0x4 + float hand_pitch; // offset 0x74, size 0x4 + float hand_roll; // offset 0x78, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +enum substate_enum { + SS_INVALID = -1, + SS_MOVING_IN = 0, + SS_STOPPING = 1, + SS_STOPPED = 2, + SS_STARTING = 3, + SS_MOVING_OUT = 4, + SS_START_FADE_IN = 5, + SS_FADE_IN = 6, + MAX_SS = 7, +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class ztextbox { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class /* @class */ { + // total size: 0x20 +public: + float in_wait_time; // offset 0x0, size 0x4 + float in_vel; // offset 0x4, size 0x4 + float in_stop_dist; // offset 0x8, size 0x4 + float out_wait_time; // offset 0xC, size 0x4 + float out_vel; // offset 0x10, size 0x4 + float out_start_dist; // offset 0x14, size 0x4 + float fade_start_time; // offset 0x18, size 0x4 + float fade_time; // offset 0x1C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char visible : 1; // offset 0x0, size 0x1 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntBoulder { + // total size: 0x0 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +struct /* @anon0 */ { + // total size: 0x14 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x14 +}; +struct /* @anon2 */ { + // total size: 0x18 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xFFX { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xIniValue { + // total size: 0x8 +public: + char * tok; // offset 0x0, size 0x4 + char * val; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class asset_type { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +struct /* @anon3 */ { + // total size: 0x14 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x14 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +struct /* @anon5 */ { + // total size: 0x18 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xIniSection { + // total size: 0xC +public: + char * sec; // offset 0x0, size 0x4 + signed int first; // offset 0x4, size 0x4 + signed int count; // offset 0x8, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class /* @class */ { + // total size: 0x1C +public: + float in_vel; // offset 0x0, size 0x4 + float in_stop_dist; // offset 0x4, size 0x4 + float out_wait_time; // offset 0x8, size 0x4 + float out_vel; // offset 0xC, size 0x4 + float out_start_dist; // offset 0x10, size 0x4 + float fade_start_time; // offset 0x14, size 0x4 + float fade_time; // offset 0x18, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x14 +public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + BEGIN_STATE = 0, + STATE_IN = 0, + STATE_OUT = 1, + STATE_GRAB = 2, + STATE_DROP = 3, + END_STATE = 4, + MAX_STATE = 4, +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class /* @class */ { + // total size: 0x70 +public: + signed int flags; // offset 0x0, size 0x4 + class state_type * state; // offset 0x4, size 0x4 + unsigned char control; // offset 0x8, size 0x1 + class state_type * states[4]; // offset 0xC, size 0x10 + float out_time; // offset 0x1C, size 0x4 + float max_out_time; // offset 0x20, size 0x4 + float reset_time; // offset 0x24, size 0x4 + class xModelInstance * model; // offset 0x28, size 0x4 + class xVec2 loc; // offset 0x2C, size 0x8 + class xVec2 dir; // offset 0x34, size 0x8 + float fade_alpha; // offset 0x3C, size 0x4 + unsigned char render_hand; // offset 0x40, size 0x1 + unsigned char vertical; // offset 0x41, size 0x1 + float vel; // offset 0x44, size 0x4 + float accel; // offset 0x48, size 0x4 + class ztalkbox * tutorial; // offset 0x4C, size 0x4 + class /* @class */ { + // total size: 0x20 + public: + float near_d; // offset 0x0, size 0x4 + float near_h; // offset 0x4, size 0x4 + float near_pitch; // offset 0x8, size 0x4 + float far_d; // offset 0xC, size 0x4 + float far_h; // offset 0x10, size 0x4 + float far_pitch; // offset 0x14, size 0x4 + class xMat4x3 * tgt_mat; // offset 0x18, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x1C, size 0x4 + } cam_data; // offset 0x50, size 0x20 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum substate_enum { + SS_INVALID = -1, + SS_REORIENT = 0, + SS_BEGIN_WAIT = 1, + SS_MOVING_IN = 2, + SS_STOPPING = 3, + SS_STOPPED = 4, + SS_TUTORIAL = 5, + SS_STARTING = 6, + SS_MOVING_OUT = 7, + SS_START_FADE_OUT = 8, + SS_FADE_OUT = 9, + MAX_SS = 10, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +struct /* @anon6 */ { + // total size: 0x14 +}; +class state_type { + // total size: 0x8 +public: + enum state_enum type; // offset 0x0, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class out_state_type : public state_type { + // total size: 0x8 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030AD80 -> 0x0030ADDC +*/ +// Range: 0x30AD80 -> 0x30ADDC +void write_persistent(class xSerial & s /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30AD80 -> 0x30ADDC + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030ADE0 -> 0x0030AE48 +*/ +// Range: 0x30ADE0 -> 0x30AE48 +void read_persistent(class xSerial & s /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30ADE0 -> 0x30AE48 + unsigned int i; // r17 + signed int val; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030AE50 -> 0x0030AF14 +*/ +// Range: 0x30AE50 -> 0x30AF14 +void force_start() { + // Blocks + /* anonymous block */ { + // Range: 0x30AE50 -> 0x30AF14 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030AF20 -> 0x0030B160 +*/ +// Range: 0x30AF20 -> 0x30B160 +void fx_render() { + // Blocks + /* anonymous block */ { + // Range: 0x30AF20 -> 0x30B160 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B160 -> 0x0030B1E4 +*/ +// Range: 0x30B160 -> 0x30B1E4 +unsigned char render() { + // Blocks + /* anonymous block */ { + // Range: 0x30B160 -> 0x30B1E4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B1F0 -> 0x0030B224 +*/ +// Range: 0x30B1F0 -> 0x30B224 +float oob_timer() { + // Blocks + /* anonymous block */ { + // Range: 0x30B1F0 -> 0x30B224 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B230 -> 0x0030B244 +*/ +// Range: 0x30B230 -> 0x30B244 +unsigned char IsPlayerInControl() { + // Blocks + /* anonymous block */ { + // Range: 0x30B230 -> 0x30B244 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B250 -> 0x0030B424 +*/ +// Range: 0x30B250 -> 0x30B424 +unsigned char update(class xScene & s /* r16 */, float dt /* r29+0x3C */) { + // Blocks + /* anonymous block */ { + // Range: 0x30B250 -> 0x30B424 + enum state_enum newtype; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B430 -> 0x0030B6EC +*/ +// Range: 0x30B430 -> 0x30B6EC +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x30B430 -> 0x30B6EC + unsigned int bufsize; // r29+0x1C + unsigned int id; // r2 + void * info; // r2 + class drop_state_type drop_state; // @ 0x005CF3F0 + signed char @6527; // @ 0x00510004 + class grab_state_type grab_state; // @ 0x005CF380 + signed char @6524; // @ 0x00510000 + class out_state_type out_state; // @ 0x0050FFF8 + signed char @6521; // @ 0x0050FFF0 + class in_state_type in_state; // @ 0x0050FFE8 + signed char @6518; // @ 0x0050FFE4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B6F0 -> 0x0030B770 +*/ +// Range: 0x30B6F0 -> 0x30B770 +static enum substate_enum supdate_fade_in(class drop_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30B6F0 -> 0x30B770 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B770 -> 0x0030B7B0 +*/ +// Range: 0x30B770 -> 0x30B7B0 +static enum substate_enum supdate_start_fade_in(class drop_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30B770 -> 0x30B7B0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B7B0 -> 0x0030B8F8 +*/ +// Range: 0x30B7B0 -> 0x30B8F8 +static enum substate_enum supdate_moving_out(float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30B7B0 -> 0x30B8F8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030B900 -> 0x0030B9F8 +*/ +// Range: 0x30B900 -> 0x30B9F8 +static enum substate_enum supdate_starting(float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30B900 -> 0x30B9F8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BA00 -> 0x0030BA70 +*/ +// Range: 0x30BA00 -> 0x30BA70 +static enum substate_enum supdate_stopped(class drop_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BA00 -> 0x30BA70 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BA70 -> 0x0030BB88 +*/ +// Range: 0x30BA70 -> 0x30BB88 +static enum substate_enum supdate_stopping(class drop_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BA70 -> 0x30BB88 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BB90 -> 0x0030BC94 +*/ +// Range: 0x30BB90 -> 0x30BC94 +static enum substate_enum supdate_moving_in(float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BB90 -> 0x30BC94 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BDA0 -> 0x0030BE18 +*/ +// Range: 0x30BDA0 -> 0x30BE18 +static enum substate_enum supdate_fade_out(class grab_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BDA0 -> 0x30BE18 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BE20 -> 0x0030BE60 +*/ +// Range: 0x30BE20 -> 0x30BE60 +static enum substate_enum supdate_start_fade_out(class grab_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BE20 -> 0x30BE60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BE60 -> 0x0030BFA8 +*/ +// Range: 0x30BE60 -> 0x30BFA8 +static enum substate_enum supdate_moving_out(float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BE60 -> 0x30BFA8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030BFB0 -> 0x0030C0A8 +*/ +// Range: 0x30BFB0 -> 0x30C0A8 +static enum substate_enum supdate_starting(float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30BFB0 -> 0x30C0A8 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C0B0 -> 0x0030C130 +*/ +// Range: 0x30C0B0 -> 0x30C130 +static enum substate_enum supdate_tutorial(class grab_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30C0B0 -> 0x30C130 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C130 -> 0x0030C1A0 +*/ +// Range: 0x30C130 -> 0x30C1A0 +static enum substate_enum supdate_stopped(class grab_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30C130 -> 0x30C1A0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C1A0 -> 0x0030C308 +*/ +// Range: 0x30C1A0 -> 0x30C308 +static enum substate_enum supdate_stopping(class grab_state_type & gst /* r16 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30C1A0 -> 0x30C308 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C310 -> 0x0030C414 +*/ +// Range: 0x30C310 -> 0x30C414 +static enum substate_enum supdate_moving_in(float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30C310 -> 0x30C414 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C420 -> 0x0030C460 +*/ +// Range: 0x30C420 -> 0x30C460 +static enum substate_enum supdate_begin_wait(class grab_state_type & gst /* r2 */, float & dt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30C420 -> 0x30C460 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C460 -> 0x0030C468 +*/ +// Range: 0x30C460 -> 0x30C468 +static enum substate_enum supdate_reorient() { + // Blocks + /* anonymous block */ { + // Range: 0x30C460 -> 0x30C468 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C470 -> 0x0030C8B0 +*/ +// Range: 0x30C470 -> 0x30C8B0 +void load_settings(class xIniFile & ini /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30C470 -> 0x30C8B0 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030C8B0 -> 0x0030CA18 +*/ +// Range: 0x30C8B0 -> 0x30CA18 +static void render_ghost() { + // Blocks + /* anonymous block */ { + // Range: 0x30C8B0 -> 0x30CA18 + class xEnt & ent; // r16 + class xModelInstance * xm; // r17 + class RpAtomic & model; // r2 + unsigned char alpha; // r2 + class xModelInstance * xm; // r18 + class RpAtomic & model; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030CA20 -> 0x0030CBA8 +*/ +// Range: 0x30CA20 -> 0x30CBA8 +static void render_fade() { + // Blocks + /* anonymous block */ { + // Range: 0x30CA20 -> 0x30CBA8 + class iColor_tag color; // r29+0x12C + float rcz; // r21 + float nsz; // r20 + class RwSky2DVertex vert[4]; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030CBB0 -> 0x0030CCA4 +*/ +// Range: 0x30CBB0 -> 0x30CCA4 +static void set_rect_vert(class RwSky2DVertex & vert /* r2 */, float x /* r29+0x10 */, float y /* r29+0x10 */, float z /* r29+0x10 */, class iColor_tag c /* r29+0xC */, float rcz /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30CBB0 -> 0x30CCA4 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030CCB0 -> 0x0030CD64 +*/ +// Range: 0x30CCB0 -> 0x30CD64 +static void move_hand(float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30CCB0 -> 0x30CD64 + float dd; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030CD70 -> 0x0030CE6C +*/ +// Range: 0x30CD70 -> 0x30CE6C +static unsigned char assume_player_is_stupid() { + // Blocks + /* anonymous block */ { + // Range: 0x30CD70 -> 0x30CE6C + unsigned int scene; // r6 + unsigned char stupid; // r2 + unsigned int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030CE70 -> 0x0030CFFC +*/ +// Range: 0x30CE70 -> 0x30CFFC +static void move_right(class xVec3 & loc /* r16 */, float x /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30CE70 -> 0x30CFFC + class xMat4x3 & mat; // r18 + class xVec3 sloc; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D000 -> 0x0030D320 +*/ +// Range: 0x30D000 -> 0x30D320 +static void set_camera(unsigned char instant /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30D000 -> 0x30D320 + class xCamera & cam; // r16 + class xVec3 target_offset; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D320 -> 0x0030D5E8 +*/ +// Range: 0x30D320 -> 0x30D5E8 +static void start(class drop_state_type * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30D320 -> 0x30D5E8 + class xEnt & p; // r2 + class xModelInstance & m; // r17 + class xEntFrame & f; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D5F0 -> 0x0030D680 +*/ +// Range: 0x30D5F0 -> 0x30D680 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x30D5F0 -> 0x30D680 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D680 -> 0x0030D940 +*/ +// Range: 0x30D680 -> 0x30D940 +static enum state_enum update(class drop_state_type * this /* r18 */, class xScene & s /* r17 */, float & dt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30D680 -> 0x30D940 + float movedt; // r29+0xAC + enum substate_enum newstate; // r2 + float fadedt; // r29+0xA8 + enum substate_enum newstate; // r2 + class xMat4x3 & pm; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D940 -> 0x0030D950 +*/ +// Range: 0x30D940 -> 0x30D950 +static void on_stop(class tutorial_callback * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30D940 -> 0x30D950 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D980 -> 0x0030DD68 +*/ +// Range: 0x30D980 -> 0x30DD68 +static void start(class grab_state_type * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30D980 -> 0x30DD68 + class xEnt & player; // r16 + class xVec3 dir; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030DD70 -> 0x0030DD78 +*/ +// Range: 0x30DD70 -> 0x30DD78 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x30DD70 -> 0x30DD78 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030DD80 -> 0x0030E060 +*/ +// Range: 0x30DD80 -> 0x30E060 +static enum state_enum update(class grab_state_type * this /* r18 */, class xScene & s /* r17 */, float & dt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30DD80 -> 0x30E060 + float movedt; // r29+0xAC + enum substate_enum newstate; // r2 + float fadedt; // r29+0xA8 + enum substate_enum newstate; // r2 + class xMat4x3 & pm; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E060 -> 0x0030E084 +*/ +// Range: 0x30E060 -> 0x30E084 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x30E060 -> 0x30E084 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E090 -> 0x0030E098 +*/ +// Range: 0x30E090 -> 0x30E098 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x30E090 -> 0x30E098 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E0A0 -> 0x0030E1E8 +*/ +// Range: 0x30E0A0 -> 0x30E1E8 +static enum state_enum update(float & dt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30E0A0 -> 0x30E1E8 + unsigned char oob; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E1F0 -> 0x0030E20C +*/ +// Range: 0x30E1F0 -> 0x30E20C +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x30E1F0 -> 0x30E20C + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E210 -> 0x0030E218 +*/ +// Range: 0x30E210 -> 0x30E218 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x30E210 -> 0x30E218 + } +} + +/* + Compile unit: C:\SB\Game\zEntPlayerOOBState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E220 -> 0x0030E2F4 +*/ +// Range: 0x30E220 -> 0x30E2F4 +static enum state_enum update() { + // Blocks + /* anonymous block */ { + // Range: 0x30E220 -> 0x30E2F4 + unsigned char oob; // r17 + } +} + diff --git a/dwarf/SB/Game/zEntSimpleObj.cpp b/dwarf/SB/Game/zEntSimpleObj.cpp new file mode 100644 index 000000000..8b0970838 --- /dev/null +++ b/dwarf/SB/Game/zEntSimpleObj.cpp @@ -0,0 +1,3009 @@ +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int sMgrCount; // size: 0x4, address: 0x50F4BC +static class zSimpleMgr * sMgrList; // size: 0x4, address: 0x50F4C0 +static unsigned int sSimpleCustomCount; // size: 0x4, address: 0x50F4C4 +static class xEnt * * sSimpleCustomList; // size: 0x4, address: 0x50F4C8 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +signed int zEntSimpleObjEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x173600 +void zEntSimpleObj_Render(class xEnt *); // size: 0x0, address: 0x173DE0 +void zEntSimpleObj_Update(class zEntSimpleObj *, class xScene *, float); // size: 0x0, address: 0x173AC0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +void zEntSimpleObj_Move(class xEnt *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x173B90 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zEntSimpleObj : public zEnt { + // total size: 0xE4 +public: + class xSimpleObjAsset * sasset; // offset 0xD4, size 0x4 + unsigned int sflags; // offset 0xD8, size 0x4 + void * anim; // offset 0xDC, size 0x4 + float animTime; // offset 0xE0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zSimpleMgr { + // total size: 0x40 +public: + class xSphere worldBound; // offset 0x0, size 0x10 + float lodDist[4]; // offset 0x10, size 0x10 + unsigned short entFlags; // offset 0x20, size 0x2 + unsigned char lastlod; // offset 0x22, size 0x1 + unsigned char padA; // offset 0x23, size 0x1 + class xModelBucket * * lodBucket[4]; // offset 0x24, size 0x10 + class RwMatrixTag * mat; // offset 0x34, size 0x4 + class zEntSimpleObj * ent; // offset 0x38, size 0x4 + unsigned int padB; // offset 0x3C, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xSimpleObjAsset { + // total size: 0xC +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned char collType; // offset 0x8, size 0x1 + unsigned char flags; // offset 0x9, size 0x1 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xParGroup { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zLODTable { + // total size: 0x20 +public: + class xModelBucket * * baseBucket; // offset 0x0, size 0x4 + float noRenderDist; // offset 0x4, size 0x4 + class xModelBucket * * lodBucket[3]; // offset 0x8, size 0xC + float lodDist[3]; // offset 0x14, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173600 -> 0x00173A84 +*/ +// Range: 0x173600 -> 0x173A84 +signed int zEntSimpleObjEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173600 -> 0x173A84 + class zEntSimpleObj * s; // r16 + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173A90 -> 0x00173A98 +*/ +// Range: 0x173A90 -> 0x173A98 +void zEntSimpleObj_Load(class zEntSimpleObj * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173A90 -> 0x173A98 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173AA0 -> 0x00173AA8 +*/ +// Range: 0x173AA0 -> 0x173AA8 +void zEntSimpleObj_Save(class zEntSimpleObj * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173AA0 -> 0x173AA8 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173AB0 -> 0x00173AB8 +*/ +// Range: 0x173AB0 -> 0x173AB8 +void zEntSimpleObj_Setup(class zEntSimpleObj * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173AB0 -> 0x173AB8 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173AC0 -> 0x00173B8C +*/ +// Range: 0x173AC0 -> 0x173B8C +void zEntSimpleObj_Update(class zEntSimpleObj * ent /* r18 */, class xScene * sc /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173AC0 -> 0x173B8C + float duration; // r29+0x50 + class xQuat * q0; // r17 + class xVec3 * t0; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173B90 -> 0x00173B98 +*/ +// Range: 0x173B90 -> 0x173B98 +static void zEntSimpleObj_Move() { + // Blocks + /* anonymous block */ { + // Range: 0x173B90 -> 0x173B98 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173BA0 -> 0x00173DB4 +*/ +// Range: 0x173BA0 -> 0x173DB4 +void zEntSimpleObj_Init(class zEntSimpleObj * ent /* r19 */, class xEntAsset * asset /* r18 */, unsigned char physparams /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173BA0 -> 0x173DB4 + class xSimpleObjAsset * sasset; // r2 + unsigned int tmpsize; // r29+0x5C + class RpAtomic * modelData; // r17 + void * animData; // r16 + unsigned int animBoneCount; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173DC0 -> 0x00173DC8 +*/ +// Range: 0x173DC0 -> 0x173DC8 +void zEntSimpleObj_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173DC0 -> 0x173DC8 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173DD0 -> 0x00173DD8 +*/ +// Range: 0x173DD0 -> 0x173DD8 +void zEntTrackPhysics_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173DD0 -> 0x173DD8 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173DE0 -> 0x00173E2C +*/ +// Range: 0x173DE0 -> 0x173E2C +static void zEntSimpleObj_Render(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173DE0 -> 0x173E2C + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173E30 -> 0x00173EB4 +*/ +// Range: 0x173E30 -> 0x173EB4 +void zEntSimpleObj_MgrCustomRender() { + // Blocks + /* anonymous block */ { + // Range: 0x173E30 -> 0x173EB4 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173EC0 -> 0x00173F5C +*/ +// Range: 0x173EC0 -> 0x173F5C +void zEntSimpleObj_MgrCustomUpdate(class zScene * s /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173EC0 -> 0x173F5C + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00173F60 -> 0x001742A8 +*/ +// Range: 0x173F60 -> 0x1742A8 +void zEntSimpleObj_MgrUpdateRender(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x173F60 -> 0x1742A8 + unsigned int i; // r21 + class xVec3 * campos; // r20 + class zSimpleMgr * smgr; // r19 + class zEntSimpleObj * ent; // r18 + float camdist2; // r21 + unsigned char picklod; // r5 + class xModelInstance * model; // r4 + float duration; // r29+0xD0 + class xQuat * q0; // r17 + class xVec3 * t0; // r22 + class xVec3 blob_posrnd; // r29+0xC0 + class xVec3 pos; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zEntSimpleObj.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001742B0 -> 0x00174964 +*/ +// Range: 0x1742B0 -> 0x174964 +void zEntSimpleObj_MgrInit(class zEntSimpleObj * * entList /* r20 */, unsigned int entCount /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1742B0 -> 0x174964 + unsigned int i; // r18 + class zEntSimpleObj * * tempEntList; // r17 + unsigned int tempEntCount; // r22 + unsigned int custEntCount; // r16 + unsigned int trailerHash; // r23 + class zSimpleMgr * smgr; // r16 + class RpAtomic * model; // r21 + class RwSphere oldbound; // r29+0x90 + class zLODTable * lod; // r2 + float distscale; // r2 + } +} + diff --git a/dwarf/SB/Game/zEntTeleportBox.cpp b/dwarf/SB/Game/zEntTeleportBox.cpp new file mode 100644 index 000000000..0bcbd017f --- /dev/null +++ b/dwarf/SB/Game/zEntTeleportBox.cpp @@ -0,0 +1,2803 @@ +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static signed int sPlayerIn; // size: 0x4, address: 0x510070 +static unsigned int sPlayerNear; // size: 0x4, address: 0x510074 +static class zUIFont * sTeleportUI; // size: 0x4, address: 0x510078 +static float sTeleportCamPitch; // size: 0x4, address: 0x51007C +static float fudgex; // size: 0x4, address: 0x0 +static float fudgez; // size: 0x4, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +unsigned int CtoOEffectTboxEnableCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x3195F0 +unsigned int JumpOutEffectJOAnimCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x319540 +unsigned int JumpOutEffectPlrEjectCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x319550 +unsigned int JumpOutEffectPlrVisibleCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x3195C0 +unsigned int JumpInEffectJIAnimCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x319610 +unsigned int JumpInEffectPlrTeleportCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x319620 +unsigned int JumpInEffectPlrInvisibleCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x319630 +unsigned int CtoOCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x319660 +unsigned int CtoOCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x319700 +unsigned int JOtoOCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x319770 +unsigned int JOtoOCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x319780 +unsigned int JItoOCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x319790 +unsigned int JItoOCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3197A0 +unsigned int JumpInCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3197D0 +unsigned int JumpInCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3197E0 +unsigned int JumpOutCB(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3197B0 +unsigned int JumpOutCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3197C0 +unsigned int OpenCheck(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3197F0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +signed int zEntTeleportBoxEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x317F00 +void zEntTeleportBox_Update(class xEnt *, class xScene *, float); // size: 0x0, address: 0x318120 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class _zEntTeleportBox : public zEnt { + // total size: 0x140 +public: + unsigned int status; // offset 0xD4, size 0x4 + class teleport_asset * tasset; // offset 0xD8, size 0x4 + class zEnt * target; // offset 0xDC, size 0x4 + unsigned int currPlrState; // offset 0xE0, size 0x4 + unsigned int prevPlrState; // offset 0xE4, size 0x4 + unsigned int jumpInAnim; // offset 0xE8, size 0x4 + unsigned int jumpOutAnim; // offset 0xEC, size 0x4 + unsigned int JOtoOpenAnim; // offset 0xF0, size 0x4 + unsigned int JItoOpenAnim; // offset 0xF4, size 0x4 + class xBox trig[2]; // offset 0xF8, size 0x30 + unsigned int currPlayerIn; // offset 0x128, size 0x4 + unsigned int prevPlayerIn; // offset 0x12C, size 0x4 + unsigned int currPlayerNear; // offset 0x130, size 0x4 + unsigned int prevPlayerNear; // offset 0x134, size 0x4 + float lastdt; // offset 0x138, size 0x4 + float plrCtrlTimer; // offset 0x13C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class teleport_asset : public xDynAsset { + // total size: 0x24 +public: + unsigned int marker; // offset 0x10, size 0x4 + unsigned int opened; // offset 0x14, size 0x4 + unsigned int launchAngle; // offset 0x18, size 0x4 + unsigned int camAngle; // offset 0x1C, size 0x4 + unsigned int targetID; // offset 0x20, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +class zEntHangable { + // total size: 0x0 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xFFX { + // total size: 0x0 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zUIFontAsset : public zUIAsset { + // total size: 0xA4 +public: + unsigned short uiFontFlags; // offset 0x80, size 0x2 + unsigned char mode; // offset 0x82, size 0x1 + unsigned char fontID; // offset 0x83, size 0x1 + unsigned int textAssetID; // offset 0x84, size 0x4 + unsigned char bcolor[4]; // offset 0x88, size 0x4 + unsigned char color[4]; // offset 0x8C, size 0x4 + unsigned short inset[4]; // offset 0x90, size 0x8 + unsigned short space[2]; // offset 0x98, size 0x4 + unsigned short cdim[2]; // offset 0x9C, size 0x4 + unsigned int max_height; // offset 0xA0, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zUIFont : public _zUI { + // total size: 0xFC +public: + class zUIFontAsset * fasset; // offset 0xE4, size 0x4 + unsigned short uiFontFlags; // offset 0xE8, size 0x2 + unsigned short uiFontHackFlags; // offset 0xEA, size 0x2 + unsigned int text_id; // offset 0xEC, size 0x4 + float yscroll; // offset 0xF0, size 0x4 + unsigned int text_index; // offset 0xF4, size 0x4 + char * text; // offset 0xF8, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317F00 -> 0x00318020 +*/ +// Range: 0x317F00 -> 0x318020 +signed int zEntTeleportBoxEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317F00 -> 0x318020 + class _zEntTeleportBox * s; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00318020 -> 0x00318028 +*/ +// Range: 0x318020 -> 0x318028 +signed int zEntTeleportBox_playerIn() { + // Blocks + /* anonymous block */ { + // Range: 0x318020 -> 0x318028 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00318030 -> 0x003180B0 +*/ +// Range: 0x318030 -> 0x3180B0 +void zEntTeleportBox_Load(class _zEntTeleportBox * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x318030 -> 0x3180B0 + signed int open; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003180B0 -> 0x00318118 +*/ +// Range: 0x3180B0 -> 0x318118 +void zEntTeleportBox_Save(class _zEntTeleportBox * ent /* r17 */, class xSerial * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3180B0 -> 0x318118 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00318120 -> 0x003188F0 +*/ +// Range: 0x318120 -> 0x3188F0 +void zEntTeleportBox_Update(class xEnt * rawent /* r2 */, class xScene * sc /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x318120 -> 0x3188F0 + class _zEntTeleportBox * ent; // r18 + class _zEntTeleportBox * target; // r17 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + class xVec3 playerMid; // r29+0xA0 + class xMat4x3 & mat; // r16 + class xVec3 ypr; // r29+0x90 + class xVec3 dir; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003188F0 -> 0x00318B50 +*/ +// Range: 0x3188F0 -> 0x318B50 +void zEntTeleportBox_Setup(class _zEntTeleportBox * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3188F0 -> 0x318B50 + class _zEntTeleportBox * target; // r2 + class xBox wbox; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00318B50 -> 0x00318B58 +*/ +// Range: 0x318B50 -> 0x318B58 +void zEntTeleportBox_InitAll() { + // Blocks + /* anonymous block */ { + // Range: 0x318B50 -> 0x318B58 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00318B60 -> 0x00319530 +*/ +// Range: 0x318B60 -> 0x319530 +void zEntTeleportBox_Init(class _zEntTeleportBox * ent /* r18 */, class teleport_asset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x318B60 -> 0x319530 + class xEntAsset * easset; // r16 + unsigned int size; // r29+0x6C + class xMarkerAsset * marker; // r2 + class xAnimTable * table; // r17 + class xAnimState * state; // r16 + void * buf; // r2 + class xAnimFile * afile; // r2 + class xAnimFile * afile; // r2 + class xAnimFile * afile; // r2 + class xAnimFile * afile; // r2 + class xAnimFile * afile; // r2 + class xAnimFile * afile; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319530 -> 0x00319538 +*/ +// Range: 0x319530 -> 0x319538 +void zEntTeleportBox_Init(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319530 -> 0x319538 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319540 -> 0x00319550 +*/ +// Range: 0x319540 -> 0x319550 +static unsigned int JumpOutEffectJOAnimCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319540 -> 0x319550 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319550 -> 0x003195C0 +*/ +// Range: 0x319550 -> 0x3195C0 +static unsigned int JumpOutEffectPlrEjectCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319550 -> 0x3195C0 + class _zEntTeleportBox * tbox; // r2 + class xVec3 tmp; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003195C0 -> 0x003195F0 +*/ +// Range: 0x3195C0 -> 0x3195F0 +static unsigned int JumpOutEffectPlrVisibleCB() { + // Blocks + /* anonymous block */ { + // Range: 0x3195C0 -> 0x3195F0 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003195F0 -> 0x00319610 +*/ +// Range: 0x3195F0 -> 0x319610 +static unsigned int CtoOEffectTboxEnableCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3195F0 -> 0x319610 + class _zEntTeleportBox * tbox; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319610 -> 0x00319620 +*/ +// Range: 0x319610 -> 0x319620 +static unsigned int JumpInEffectJIAnimCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319610 -> 0x319620 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319620 -> 0x00319630 +*/ +// Range: 0x319620 -> 0x319630 +static unsigned int JumpInEffectPlrTeleportCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319620 -> 0x319630 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319630 -> 0x00319658 +*/ +// Range: 0x319630 -> 0x319658 +static unsigned int JumpInEffectPlrInvisibleCB() { + // Blocks + /* anonymous block */ { + // Range: 0x319630 -> 0x319658 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319660 -> 0x003196FC +*/ +// Range: 0x319660 -> 0x3196FC +static unsigned int CtoOCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319660 -> 0x3196FC + class xVec3 tmp; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319700 -> 0x00319768 +*/ +// Range: 0x319700 -> 0x319768 +static unsigned int CtoOCheck(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319700 -> 0x319768 + class zEnt * player; // r4 + float dx__; // r5 + float dy__; // r4 + float dz__; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319770 -> 0x0031977C +*/ +// Range: 0x319770 -> 0x31977C +static unsigned int JOtoOCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319770 -> 0x31977C + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319780 -> 0x0031978C +*/ +// Range: 0x319780 -> 0x31978C +static unsigned int JOtoOCheck(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319780 -> 0x31978C + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319790 -> 0x003197A0 +*/ +// Range: 0x319790 -> 0x3197A0 +static unsigned int JItoOCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319790 -> 0x3197A0 + class _zEntTeleportBox * tbox; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003197A0 -> 0x003197AC +*/ +// Range: 0x3197A0 -> 0x3197AC +static unsigned int JItoOCheck(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3197A0 -> 0x3197AC + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003197B0 -> 0x003197BC +*/ +// Range: 0x3197B0 -> 0x3197BC +static unsigned int JumpOutCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3197B0 -> 0x3197BC + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003197C0 -> 0x003197CC +*/ +// Range: 0x3197C0 -> 0x3197CC +static unsigned int JumpOutCheck(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3197C0 -> 0x3197CC + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003197D0 -> 0x003197DC +*/ +// Range: 0x3197D0 -> 0x3197DC +static unsigned int JumpInCB(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3197D0 -> 0x3197DC + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003197E0 -> 0x003197EC +*/ +// Range: 0x3197E0 -> 0x3197EC +static unsigned int JumpInCheck(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3197E0 -> 0x3197EC + } +} + +/* + Compile unit: C:\SB\Game\zEntTeleportBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003197F0 -> 0x00319800 +*/ +// Range: 0x3197F0 -> 0x319800 +unsigned int OpenCheck(void * object /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3197F0 -> 0x319800 + } +} + diff --git a/dwarf/SB/Game/zEntTrigger.cpp b/dwarf/SB/Game/zEntTrigger.cpp new file mode 100644 index 000000000..a1e85d8e5 --- /dev/null +++ b/dwarf/SB/Game/zEntTrigger.cpp @@ -0,0 +1,1316 @@ +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +signed int zEntTriggerEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x174C80 +void zEntTriggerUpdate(class zEntTrigger *, class xScene *, float); // size: 0x0, address: 0x174CC0 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zEntTrigger : public zEnt { + // total size: 0x140 +public: + class xMat4x3 triggerMatrix; // offset 0xE0, size 0x40 + class xBox triggerBox; // offset 0x120, size 0x18 + unsigned int entered; // offset 0x138, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xTriggerAsset { + // total size: 0x40 +public: + class xVec3 p[4]; // offset 0x0, size 0x30 + class xVec3 direction; // offset 0x30, size 0xC + unsigned int flags; // offset 0x3C, size 0x4 +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00174970 -> 0x00174C5C +*/ +// Range: 0x174970 -> 0x174C5C +unsigned char zEntTriggerHitsSphere(class zEntTrigger & trig /* r16 */, class xSphere & o /* r2 */, class xVec3 & dir /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x174970 -> 0x174C5C + } +} + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00174C60 -> 0x00174C68 +*/ +// Range: 0x174C60 -> 0x174C68 +void zEntTriggerLoad(class zEntTrigger * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x174C60 -> 0x174C68 + } +} + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00174C70 -> 0x00174C78 +*/ +// Range: 0x174C70 -> 0x174C78 +void zEntTriggerSave(class zEntTrigger * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x174C70 -> 0x174C78 + } +} + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00174C80 -> 0x00174CB8 +*/ +// Range: 0x174C80 -> 0x174CB8 +signed int zEntTriggerEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x174C80 -> 0x174CB8 + class zEntTrigger * trig; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00174CC0 -> 0x00175078 +*/ +// Range: 0x174CC0 -> 0x175078 +void zEntTriggerUpdate(class zEntTrigger * trig /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x174CC0 -> 0x175078 + unsigned int i; // r18 + class xLinkAsset * link; // r17 + class xTriggerAsset * tasset; // r16 + class xIsect isect; // r29+0x170 + signed int collide; // r20 + class xEnt * chkEnt; // r2 + class xVec3 * chkPos; // r2 + class xVec3 xformVec; // r29+0x1A0 + class xSphere sphere; // r29+0x160 + class xIsect isect; // r29+0x130 + class xCylinder cylinder; // r29+0x110 + class xIsect isect; // r29+0xE0 + class xSphere sphere; // r29+0xD0 + class xIsect isect; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175080 -> 0x00175230 +*/ +// Range: 0x175080 -> 0x175230 +void zEntTriggerInit(class zEntTrigger * ent /* r16 */, class xEntAsset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175080 -> 0x175230 + class xTriggerAsset * tasset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEntTrigger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175230 -> 0x00175238 +*/ +// Range: 0x175230 -> 0x175238 +void zEntTriggerInit(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175230 -> 0x175238 + } +} + diff --git a/dwarf/SB/Game/zEnv.cpp b/dwarf/SB/Game/zEnv.cpp new file mode 100644 index 000000000..e533b8921 --- /dev/null +++ b/dwarf/SB/Game/zEnv.cpp @@ -0,0 +1,2490 @@ +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zEnvEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x175240 +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class rxReq { + // total size: 0x0 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175240 -> 0x001752C0 +*/ +// Range: 0x175240 -> 0x1752C0 +signed int zEnvEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175240 -> 0x1752C0 + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001752C0 -> 0x001752C8 +*/ +// Range: 0x1752C0 -> 0x1752C8 +void zEnvLoad(class _zEnv * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1752C0 -> 0x1752C8 + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001752D0 -> 0x001752D8 +*/ +// Range: 0x1752D0 -> 0x1752D8 +void zEnvSave(class _zEnv * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1752D0 -> 0x1752D8 + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001752E0 -> 0x001753D4 +*/ +// Range: 0x1752E0 -> 0x1753D4 +void zEnvRender(class xEnv * env /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1752E0 -> 0x1753D4 + class RpWorld * world; // r19 + signed int num; // r18 + signed int i; // r17 + class xSurface * sp; // r2 + class zSurfaceProps * pp; // r3 + class RpMaterial * mp; // r21 + class xGroup * g; // r2 + unsigned int texid; // r2 + class RwTexture * texptr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001753E0 -> 0x00175424 +*/ +// Range: 0x1753E0 -> 0x175424 +void zEnvStartingCamera(class _zEnv * env /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1753E0 -> 0x175424 + class xCamera * cam; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175430 -> 0x0017546C +*/ +// Range: 0x175430 -> 0x17546C +void zEnvSetup(class _zEnv * env /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175430 -> 0x17546C + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175470 -> 0x0017560C +*/ +// Range: 0x175470 -> 0x17560C +void zEnvInit(class _zEnv * env /* r17 */, class xEnvAsset * easset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175470 -> 0x17560C + unsigned int bufsize; // r29+0x3C + void * buf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zEnv.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175610 -> 0x00175618 +*/ +// Range: 0x175610 -> 0x175618 +void zEnvInit(void * env /* r2 */, void * easset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175610 -> 0x175618 + } +} + diff --git a/dwarf/SB/Game/zEvent.cpp b/dwarf/SB/Game/zEvent.cpp new file mode 100644 index 000000000..60cf0e73e --- /dev/null +++ b/dwarf/SB/Game/zEvent.cpp @@ -0,0 +1,21 @@ +/* + Compile unit: C:\SB\Game\zEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static char * sEventTable[541]; // size: 0x874, address: 0x407660 + +/* + Compile unit: C:\SB\Game\zEvent.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175620 -> 0x00175638 +*/ +// Range: 0x175620 -> 0x175638 +char * zEventName(unsigned int eventEnum /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175620 -> 0x175638 + } +} + diff --git a/dwarf/SB/Game/zFMV.cpp b/dwarf/SB/Game/zFMV.cpp new file mode 100644 index 000000000..98b30d14d --- /dev/null +++ b/dwarf/SB/Game/zFMV.cpp @@ -0,0 +1,66 @@ +/* + Compile unit: C:\SB\Game\zFMV.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class zFMVFile zFMVFileTable[9]; // size: 0x144, address: 0x407EE0 +enum _GameOstrich { + eGameOstrich_Loading = 0, + eGameOstrich_PlayingMovie = 1, + eGameOstrich_InScene = 2, + eGameOstrich_Total = 3, +}; +enum eFMVFile { + eFMVFile_PromoFOP = 0, + eFMVFile_PromoTak = 1, + eFMVFile_PromoJN = 2, + eFMVFile_PromoSB = 3, + eFMVFile_LogoHeavyIron = 4, + eFMVFile_LogoNick = 5, + eFMVFile_LogoRW = 6, + eFMVFile_LogoTHQ = 7, + eFMVFile_Demo1 = 8, + eFMVFile_Demo2 = 9, + eFMVFile_Demo3 = 10, + eFMVFile_LogoPixar = 11, + eFMVFileCount = 12, +}; +class zFMVFile { + // total size: 0x24 +public: + enum eFMVFile type; // offset 0x0, size 0x4 + char fileName[32]; // offset 0x4, size 0x20 +}; + +/* + Compile unit: C:\SB\Game\zFMV.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175720 -> 0x00175780 +*/ +// Range: 0x175720 -> 0x175780 +char * zFMVFileGetName(enum eFMVFile fileEnum /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175720 -> 0x175780 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zFMV.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175780 -> 0x00175870 +*/ +// Range: 0x175780 -> 0x175870 +unsigned int zFMVPlay(char * filename /* r4 */, unsigned int buttons /* r18 */, float time /* r20 */, unsigned char skippable /* r17 */, unsigned char lockController /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175780 -> 0x175870 + char fullname[64]; // r29+0x60 + enum _GameOstrich old; // r19 + unsigned int ret; // r16 + } +} + diff --git a/dwarf/SB/Game/zFX.cpp b/dwarf/SB/Game/zFX.cpp new file mode 100644 index 000000000..5313787e5 --- /dev/null +++ b/dwarf/SB/Game/zFX.cpp @@ -0,0 +1,3343 @@ +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int gFXSurfaceFlags; // size: 0x4, address: 0x50F4D8 +static class xFXRing sPatrickStunRing[3]; // size: 0xB4, address: 0x4F3530 +static class xFXRing sThunderRing[1]; // size: 0x3C, address: 0x0 +static class xFXRing sHammerRing[1]; // size: 0x3C, address: 0x4F35F0 +static class xFXRing sPorterRing[2]; // size: 0x78, address: 0x4F3630 +static class xFXRing sMuscleArmRing[1]; // size: 0x3C, address: 0x4F36B0 +static float defaultGooTimes[4]; // size: 0x10, address: 0x4F36F0 +static float defaultGooWarbc[4]; // size: 0x10, address: 0x4F3700 +class zFXGooInstance zFXGooInstances[24]; // size: 0xA80, address: 0x51C000 +static class ztextbox * goo_timer_textbox; // size: 0x4, address: 0x50F4E0 +class xVec3 bubblehit_pos_rnd; // size: 0xC, address: 0x408028 +class xVec3 bubblehit_vel_rnd; // size: 0xC, address: 0x408038 +float bubblehit_vel_scale; // size: 0x4, address: 0x50E6F0 +class xVec3 bubbletrail_pos_rnd; // size: 0xC, address: 0x408048 +class xVec3 bubbletrail_vel_rnd; // size: 0xC, address: 0x408058 +float bubbletrail_vel_scale; // size: 0x4, address: 0x0 +static class xVec3 bubblewall_scale; // size: 0xC, address: 0x4F3710 +static class xVec3 bubblewall_velscale; // size: 0xC, address: 0x4F3720 +static class popper_data poppers[8]; // size: 0x6280, address: 0x51CA80 +static class entrail_type entrail_types[2]; // size: 0x80, address: 0x408080 +static class entrail_data * entrails; // size: 0x4, address: 0x50F4E4 +static unsigned int entrails_size; // size: 0x4, address: 0x50F4E8 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 m_UnitAxisY; // size: 0xC, address: 0x4F9980 +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class RpAtomic * (* gAtomicRenderCallBack)(class RpAtomic *); // size: 0x4, address: 0x50F9BC +class RxPipeline * xFXgooPipeline; // size: 0x4, address: 0x50F9FC +class _zEnv * gCurEnv; // size: 0x4, address: 0x50F704 +class _tagClimate gClimate; // size: 0x24, address: 0x52ECF0 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * zFXGooRenderAtomic(class RpAtomic *); // size: 0x0, address: 0x179A90 +void on_spawn_bubble_wall(class tweak_info &); // size: 0x0, address: 0x17A490 +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class popper_data { + // total size: 0xC50 +public: + enum state_enum state; // offset 0x0, size 0x4 + class xEnt * ent; // offset 0x4, size 0x4 + class RpAtomic * atomic[4]; // offset 0x8, size 0x10 + unsigned int atomic_size; // offset 0x18, size 0x4 + float time; // offset 0x1C, size 0x4 + float end_time; // offset 0x20, size 0x4 + union { // inferred + class xVec3 model_scale; // offset 0x24, size 0xC + unsigned int pipe_flags; // offset 0x24, size 0x4 + }; + float rate; // offset 0x30, size 0x4 + float vel; // offset 0x34, size 0x4 + float rloc; // offset 0x38, size 0x4 + float rvel; // offset 0x3C, size 0x4 + float emitted; // offset 0x40, size 0x4 + signed int faces; // offset 0x44, size 0x4 + float radius; // offset 0x48, size 0x4 + float area; // offset 0x4C, size 0x4 + float weight[768]; // offset 0x50, size 0xC00 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpSkin { + // total size: 0x0 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class entrail_data { + // total size: 0x24 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short type; // offset 0x2, size 0x2 + class xEnt * ent; // offset 0x4, size 0x4 + class xVec3 loc; // offset 0x8, size 0xC + class xVec3 vel; // offset 0x14, size 0xC + float emitted; // offset 0x20, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zFXGooInstance { + // total size: 0x70 +public: + class RpAtomic * atomic; // offset 0x0, size 0x4 + signed int freezeGroup; // offset 0x4, size 0x4 + class xVec3 * orig_verts; // offset 0x8, size 0x4 + class RwRGBA * orig_colors; // offset 0xC, size 0x4 + float time; // offset 0x10, size 0x4 + float timer; // offset 0x14, size 0x4 + float w0; // offset 0x18, size 0x4 + float w2; // offset 0x1C, size 0x4 + float warbc[4]; // offset 0x20, size 0x10 + float state_time[4]; // offset 0x30, size 0x10 + class xVec3 center; // offset 0x40, size 0xC + enum zFXGooState state; // offset 0x4C, size 0x4 + float warb_time; // offset 0x50, size 0x4 + float alpha; // offset 0x54, size 0x4 + float min; // offset 0x58, size 0x4 + float max; // offset 0x5C, size 0x4 + class xVec3 * ref_parentPos; // offset 0x60, size 0x4 + class xVec3 pos_parentOnFreeze; // offset 0x64, size 0xC +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xFXRing { + // total size: 0x3C +public: + unsigned int texture; // offset 0x0, size 0x4 + float lifetime; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + float time; // offset 0x14, size 0x4 + float ring_radius; // offset 0x18, size 0x4 + float ring_radius_delta; // offset 0x1C, size 0x4 + float ring_tilt; // offset 0x20, size 0x4 + float ring_tilt_delta; // offset 0x24, size 0x4 + float ring_height; // offset 0x28, size 0x4 + float ring_height_delta; // offset 0x2C, size 0x4 + class iColor_tag ring_color; // offset 0x30, size 0x4 + unsigned short ring_segs; // offset 0x34, size 0x2 + unsigned char u_repeat; // offset 0x36, size 0x1 + unsigned char v_repeat; // offset 0x37, size 0x1 + class xFXRing * * parent; // offset 0x38, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class asset_type : public xDynAsset { + // total size: 0x64 +public: + unsigned int text; // offset 0x10, size 0x4 + class basic_rect bounds; // offset 0x14, size 0x10 + unsigned int font; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } size; // offset 0x28, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + } space; // offset 0x30, size 0x8 + class color_type color; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 + } inset; // offset 0x3C, size 0x10 + enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, + } xjustify; // offset 0x4C, size 0x4 + enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, + } expand; // offset 0x50, size 0x4 + float max_height; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 + } backdrop; // offset 0x58, size 0xC +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class ztextbox : public xBase { + // total size: 0xD0 +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class xtextbox tb; // offset 0x18, size 0x68 + char * segments[16]; // offset 0x80, size 0x40 + unsigned int segments_size; // offset 0xC0, size 0x4 + class ztextbox * next; // offset 0xC4, size 0x4 + class ztextbox * prev; // offset 0xC8, size 0x4 + class RwRaster * bgtex; // offset 0xCC, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class _tagRain { + // total size: 0x10 +public: + signed int rain; // offset 0x0, size 0x4 + float strength; // offset 0x4, size 0x4 + class zParEmitter * rain_emitter; // offset 0x8, size 0x4 + class zParEmitter * snow_emitter; // offset 0xC, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class color_type { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagWind { + // total size: 0x14 +public: + float strength; // offset 0x0, size 0x4 + float angle; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum zFXGooState { + zFXGooStateNormal = 0, + zFXGooStateFreezing = 1, + zFXGooStateFrozen = 2, + zFXGooStateMelting = 3, + zFXGooStateInactive = -559038737, + zFXGooStateForce32Bit = -1, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class _tagClimate { + // total size: 0x24 +public: + class _tagRain rain; // offset 0x0, size 0x10 + class _tagWind wind; // offset 0x10, size 0x14 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class entrail_type { + // total size: 0x40 +public: + char * model_name; // offset 0x0, size 0x4 + signed int bone; // offset 0x4, size 0x4 + float rate; // offset 0x8, size 0x4 + float cull_dist; // offset 0xC, size 0x4 + class xVec3 offset; // offset 0x10, size 0xC + class xVec3 offset_rand; // offset 0x1C, size 0xC + class xVec3 vel; // offset 0x28, size 0xC + class xVec3 vel_rand; // offset 0x34, size 0xC +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +enum state_enum { + STATE_NONE = 0, + STATE_OFF = 1, + STATE_ON = 2, +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 +}; + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175870 -> 0x00175AE8 +*/ +// Range: 0x175870 -> 0x175AE8 +static void setup_entrails(class zScene & s /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175870 -> 0x175AE8 + unsigned int hash[2]; // r29+0xB8 + unsigned int hash_dff[2]; // r29+0xB0 + unsigned int hash_minf[2]; // r29+0xA8 + unsigned int i; // r19 + class zEnt * * it; // r3 + class zEnt * * end; // r10 + class xEnt * ent; // r5 + unsigned int model; // r9 + unsigned int i; // r8 + class zEnt * * it; // r5 + class zEnt * * end; // r4 + class xEnt * ent; // r3 + unsigned int model; // r12 + unsigned int i; // r11 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175AF0 -> 0x00175D7C +*/ +// Range: 0x175AF0 -> 0x175D7C +static void update_entrails(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175AF0 -> 0x175D7C + class entrail_data * it; // r18 + class entrail_data * end; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175EB0 -> 0x00176294 +*/ +// Range: 0x175EB0 -> 0x176294 +void zFXPopOff(class xEnt & ent /* r17 */, float rate /* r21 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x175EB0 -> 0x176294 + class popper_data * popper; // r16 + class xSphere o; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001762A0 -> 0x001766AC +*/ +// Range: 0x1762A0 -> 0x1766AC +void zFXPopOn(class xEnt & ent /* r17 */, float rate /* r21 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1762A0 -> 0x1766AC + class popper_data * popper; // r16 + class xSphere o; // r29+0x40 + class xVec3 tiny; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001766B0 -> 0x00176974 +*/ +// Range: 0x1766B0 -> 0x176974 +static void update_popper(class popper_data & popper /* r2 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1766B0 -> 0x176974 + float area; // r1 + float vel_add; // r29+0x30 + float rate; // r29+0x30 + float s; // r5 + float ss; // r5 + float scale; // r2 + signed int emit; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00176980 -> 0x00176D68 +*/ +// Range: 0x176980 -> 0x176D68 +static void emit_popper_bubbles(class popper_data & popper /* r21 */, signed int emit /* r20 */, float scale /* r23 */, float vel_add /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x176980 -> 0x176D68 + signed int max_emit; // r2 + class xVec3 * buffer; // r22 + class xVec3 * loc; // r19 + class xVec3 * end_loc; // r18 + class xVec3 * vel; // r17 + class xModelInstance * model; // r16 + class xMat3x3 oldmat; // r29+0x90 + class xMat3x3 & mat; // r5 + float svel; // r22 + float rloc; // r21 + float rvel; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00176D70 -> 0x00176E9C +*/ +// Range: 0x176D70 -> 0x176E9C +static void random_surface_point(class xVec3 & loc /* r20 */, class xVec3 & norm /* r19 */, class popper_data & popper /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x176D70 -> 0x176E9C + class xMat4x3 * mat; // r17 + signed int which; // r6 + class RpGeometry * geom; // r16 + class RpAtomic * * atomic; // r5 + class RpAtomic * * end; // r4 + signed int size; // r3 + class xVec3 v[3]; // r29+0x90 + class xVec3 n[3]; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00176EA0 -> 0x00177088 +*/ +// Range: 0x176EA0 -> 0x177088 +static void random_point_on_triangle(class xVec3 & loc /* r19 */, class xVec3 & norm /* r18 */, class xVec3 * v /* r17 */, class xVec3 * n /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x176EA0 -> 0x177088 + float s; // r20 + float t; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00177090 -> 0x00177968 +*/ +// Range: 0x177090 -> 0x177968 +static void eval_tri(class xVec3 * vert /* r22 */, class xVec3 * norm /* r17 */, class xMat4x3 * mat /* r16 */, class RpGeometry * geom /* r18 */, class RpTriangle * tri /* r29+0x120 */) { + // Blocks + /* anonymous block */ { + // Range: 0x177090 -> 0x177968 + class RpSkin * skin; // r18 + class RpMorphTarget * mt; // r4 + class xVec3 * in_vert; // r29+0x110 + class xVec3 * in_norm; // r29+0x100 + class xMat4x3 * skinmat; // r29+0xF0 + float * vert_bone_weight; // r29+0xEC + unsigned int * vert_bone_index; // r29+0xE8 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001779C0 -> 0x00177C78 +*/ +// Range: 0x1779C0 -> 0x177C78 +static unsigned char setup_popper_emitter(class popper_data & popper /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1779C0 -> 0x177C78 + float * weight; // r14 + class xModelInstance * model; // r13 + class RpGeometry * geom; // r9 + class xVec3 * vert; // r12 + class RpTriangle * tri; // r11 + float * end; // r10 + class xVec3 & a; // r9 + class xVec3 & b; // r17 + class xVec3 & c; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00177C80 -> 0x00178018 +*/ +// Range: 0x177C80 -> 0x178018 +void zFX_SpawnBubbleBlast(class xVec3 * pos /* r21 */, unsigned int num /* r20 */, float radius /* r22 */, float blast_vel /* r21 */, float rand_vel /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x177C80 -> 0x178018 + class xVec3 * buffer; // r19 + class xVec3 * itl; // r18 + class xVec3 * itv; // r17 + class xVec3 * end; // r16 + float ang; // r23 + float uz; // r25 + class xVec3 rvel; // r29+0x120 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178020 -> 0x0017827C +*/ +// Range: 0x178020 -> 0x17827C +void zFX_SpawnBubbleSlam(class xVec3 * pos /* r22 */, unsigned int num /* r21 */, float rang /* r23 */, float bvel /* r22 */, float rvel /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x178020 -> 0x17827C + class xVec3 * posbuf; // r20 + class xVec3 * velbuf; // r19 + class xVec3 * pp; // r18 + class xVec3 * vp; // r17 + unsigned int j; // r16 + float ang; // r24 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178280 -> 0x00178488 +*/ +// Range: 0x178280 -> 0x178488 +void zFX_SpawnBubbleWall() { + // Blocks + /* anonymous block */ { + // Range: 0x178280 -> 0x178488 + class RwCamera * camera; // r3 + class RwMatrixTag * mat; // r21 + class xVec3 pos[100]; // r29+0x530 + class xVec3 vel[100]; // r29+0x80 + class xVec3 * pp; // r20 + class xVec3 * vp; // r19 + unsigned int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178490 -> 0x00178660 +*/ +// Range: 0x178490 -> 0x178660 +void zFX_SpawnBubbleMenuTrail(class xVec3 * pos /* r30 */, unsigned int num /* r22 */, class xVec3 * pos_rnd /* r21 */, class xVec3 * vel_rnd /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x178490 -> 0x178660 + class xVec3 * posbuf; // r19 + class xVec3 * velbuf; // r18 + class xVec3 * pp; // r17 + class xVec3 * vp; // r16 + signed int j; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178660 -> 0x00178B04 +*/ +// Range: 0x178660 -> 0x178B04 +void zFX_SpawnBubbleTrail(class xVec3 * p1 /* r21 */, class xVec3 * p2 /* r16 */, class xVec3 * vel1 /* r20 */, class xVec3 * vel2 /* r29+0xCC */, unsigned int num /* r22 */, class xVec3 * pos_rnd /* r19 */, class xVec3 * vel_rnd /* r18 */, float scale /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x178660 -> 0x178B04 + class xVec3 * posbuf; // r30 + class xVec3 * velbuf; // r29+0xB0 + class xVec3 offset; // r29+0x180 + class xVec3 vel_offset; // r29+0x170 + class xVec3 * pp; // r17 + class xVec3 * vp; // r16 + signed int j; // r23 + float t; // r29+0x190 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178B10 -> 0x00178E30 +*/ +// Range: 0x178B10 -> 0x178E30 +void zFX_SpawnBubbleTrail(class xVec3 * p1 /* r21 */, class xVec3 * p2 /* r16 */, unsigned int num /* r20 */, class xVec3 * pos_rnd /* r19 */, class xVec3 * vel_rnd /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x178B10 -> 0x178E30 + class xVec3 * posbuf; // r23 + class xVec3 * velbuf; // r30 + class xVec3 offset; // r29+0xF0 + class xVec3 * pp; // r17 + class xVec3 * vp; // r16 + signed int j; // r22 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178E30 -> 0x00178FE0 +*/ +// Range: 0x178E30 -> 0x178FE0 +void zFX_SpawnBubbleTrailNoNegRandVel(class xVec3 * pos /* r30 */, unsigned int num /* r22 */, class xVec3 * pos_rnd /* r21 */, class xVec3 * vel_rnd /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x178E30 -> 0x178FE0 + class xVec3 * posbuf; // r19 + class xVec3 * velbuf; // r18 + class xVec3 * pp; // r17 + class xVec3 * vp; // r16 + signed int j; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00178FE0 -> 0x001791C0 +*/ +// Range: 0x178FE0 -> 0x1791C0 +void zFX_SpawnBubbleTrail(class xVec3 * pos /* r30 */, unsigned int num /* r22 */, class xVec3 * pos_rnd /* r21 */, class xVec3 * vel_rnd /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x178FE0 -> 0x1791C0 + class xVec3 * posbuf; // r19 + class xVec3 * velbuf; // r18 + class xVec3 * pp; // r17 + class xVec3 * vp; // r16 + signed int j; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001791C0 -> 0x001791D4 +*/ +// Range: 0x1791C0 -> 0x1791D4 +void zFX_SpawnBubbleTrail(class xVec3 * pos /* r2 */, unsigned int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1791C0 -> 0x1791D4 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001791E0 -> 0x00179454 +*/ +// Range: 0x1791E0 -> 0x179454 +void zFX_SpawnBubbleHit(class xVec3 * pos /* r30 */, unsigned int num /* r22 */, class xVec3 * pos_rnd /* r21 */, class xVec3 * vel_rnd /* r20 */, float vel_scale /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1791E0 -> 0x179454 + class xVec3 * posbuf; // r19 + class xVec3 * velbuf; // r18 + class xVec3 * pp; // r17 + class xVec3 * vp; // r16 + signed int j; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179460 -> 0x00179478 +*/ +// Range: 0x179460 -> 0x179478 +void zFX_SpawnBubbleHit(class xVec3 * pos /* r2 */, unsigned int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179460 -> 0x179478 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179480 -> 0x00179510 +*/ +// Range: 0x179480 -> 0x179510 +void zFXGooEventMelt(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179480 -> 0x179510 + signed int i; // r9 + class zFXGooInstance * goo; // r8 + signed int freezeGroup; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179510 -> 0x001795A0 +*/ +// Range: 0x179510 -> 0x1795A0 +void zFXGooEventSetFreezeDuration(class xEnt * ent /* r2 */, float duration /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179510 -> 0x1795A0 + signed int i; // r9 + class zFXGooInstance * goo; // r8 + signed int freezeGroup; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001795A0 -> 0x00179628 +*/ +// Range: 0x1795A0 -> 0x179628 +void zFXGooEventSetWarb(class xEnt * ent /* r2 */, float * warb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1795A0 -> 0x179628 + signed int i; // r8 + class zFXGooInstance * goo; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179630 -> 0x00179738 +*/ +// Range: 0x179630 -> 0x179738 +signed int zFXGooIs(class xEnt * obj /* r2 */, float & depth /* r2 */, unsigned int playerCheck /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179630 -> 0x179738 + signed int i; // r9 + class zFXGooInstance * goo; // r8 + class xVec3 * pos; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179740 -> 0x00179908 +*/ +// Range: 0x179740 -> 0x179908 +void zFXGooFreeze(class RpAtomic * atomic /* r2 */, class xVec3 * center /* r18 */, class xVec3 * ref_parPosVec /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179740 -> 0x179908 + signed int i; // r6 + class zFXGooInstance * goo; // r5 + signed int freezeGroup; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179910 -> 0x00179A90 +*/ +// Range: 0x179910 -> 0x179A90 +void zFXUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179910 -> 0x179A90 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179A90 -> 0x00179B60 +*/ +// Range: 0x179A90 -> 0x179B60 +class RpAtomic * zFXGooRenderAtomic(class RpAtomic * atomic /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179A90 -> 0x179B60 + signed int i; // r5 + class zFXGooInstance * goo; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179B60 -> 0x00179FC4 +*/ +// Range: 0x179B60 -> 0x179FC4 +void zFXGooUpdateInstance(class zFXGooInstance * goo /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179B60 -> 0x179FC4 + float tmp; // r29+0x40 + enum zFXGooState old_state; // r2 + float rate; // r29+0x40 + class xVec3 pos; // r29+0x30 + float freeze_time; // r3 + signed int s; // r2 + char counter_text[6]; // @ 0x0050E6E8 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00179FD0 -> 0x0017A150 +*/ +// Range: 0x179FD0 -> 0x17A150 +void zFXGooEnable(class RpAtomic * atomic /* r17 */, signed int freezeGroup /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x179FD0 -> 0x17A150 + signed int i; // r6 + class zFXGooInstance * goo; // r16 + class xVec3 * orig_verts; // r18 + class RwRGBA * orig_colors; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A150 -> 0x0017A15C +*/ +// Range: 0x17A150 -> 0x17A15C +class xFXRing * zFXMuscleArmWave(class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A150 -> 0x17A15C + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A160 -> 0x0017A19C +*/ +// Range: 0x17A160 -> 0x17A19C +void zFXPorterWave(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A160 -> 0x17A19C + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A1A0 -> 0x0017A200 +*/ +// Range: 0x17A1A0 -> 0x17A200 +void zFXHammer(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A1A0 -> 0x17A200 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A200 -> 0x0017A24C +*/ +// Range: 0x17A200 -> 0x17A24C +void zFXPatrickStun(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A200 -> 0x17A24C + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A250 -> 0x0017A2F8 +*/ +// Range: 0x17A250 -> 0x17A2F8 +void zFX_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x17A250 -> 0x17A2F8 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A300 -> 0x0017A360 +*/ +// Range: 0x17A300 -> 0x17A360 +void zFX_SceneExit(class RpWorld * world /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A300 -> 0x17A360 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A360 -> 0x0017A48C +*/ +// Range: 0x17A360 -> 0x17A48C +void zFX_SceneEnter(class RpWorld * world /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A360 -> 0x17A48C + signed char @4297; // @ 0x0050F4DC + class tweak_callback cb_spawn_bubble_wall; // @ 0x0051BFD0 + } +} + +/* + Compile unit: C:\SB\Game\zFX.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A490 -> 0x0017A498 +*/ +// Range: 0x17A490 -> 0x17A498 +static void on_spawn_bubble_wall() { + // Blocks + /* anonymous block */ { + // Range: 0x17A490 -> 0x17A498 + } +} + diff --git a/dwarf/SB/Game/zFeet.cpp b/dwarf/SB/Game/zFeet.cpp new file mode 100644 index 000000000..b129cd70f --- /dev/null +++ b/dwarf/SB/Game/zFeet.cpp @@ -0,0 +1,2079 @@ +/* + Compile unit: C:\SB\Game\zFeet.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int sSurfaceSoundIDStep[23]; // size: 0x5C, address: 0x51BF70 +static class xBase * paremit_sd_pawprint; // size: 0x4, address: 0x50F4CC +static class xBase * paremit_vil_footprint; // size: 0x4, address: 0x50F4D0 +static class RwRaster * sSkidMarkRaster; // size: 0x4, address: 0x50F4D4 +static float cPlayerSkidWidth[4]; // size: 0x10, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +unsigned int zFeetStepVillainCB(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // size: 0x0, address: 0x0 +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class _tagFeetSkidMark { + // total size: 0x24 +public: + signed int total_feet; // offset 0x0, size 0x4 + class _tagSkidEdge * edge[4]; // offset 0x4, size 0x10 + signed int first_idx; // offset 0x14, size 0x4 + signed int total_edges; // offset 0x18, size 0x4 + float sample_timer; // offset 0x1C, size 0x4 + float remove_timer; // offset 0x20, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagSkidEdge { + // total size: 0x1C +public: + class xVec3 centre; // offset 0x0, size 0xC + class xVec3 local_x; // offset 0xC, size 0xC + float width; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class tagzFeet { + // total size: 0xC +public: + signed int total; // offset 0x0, size 0x4 + class xEnt * owner; // offset 0x4, size 0x4 + signed short entity_type; // offset 0x8, size 0x2 + signed short pitch; // offset 0xA, size 0x2 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagFoot { + // total size: 0x8 +public: + class tagzFeet * feet; // offset 0x0, size 0x4 + signed int idx; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; + +/* + Compile unit: C:\SB\Game\zFeet.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00175640 -> 0x00175714 +*/ +// Range: 0x175640 -> 0x175714 +void zFeetGetIDs() { + // Blocks + /* anonymous block */ { + // Range: 0x175640 -> 0x175714 + char type_name[128]; // r29+0xB0 + char name[128]; // r29+0x30 + signed int i; // r17 + class RwTexture * tex; // r2 + } +} + diff --git a/dwarf/SB/Game/zGame.cpp b/dwarf/SB/Game/zGame.cpp new file mode 100644 index 000000000..30dac65df --- /dev/null +++ b/dwarf/SB/Game/zGame.cpp @@ -0,0 +1,3032 @@ +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x4F3790 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int gGameSfxReport; // size: 0x4, address: 0x50F4EC +enum _CurrentPlayer gPendingPlayer; // size: 0x4, address: 0x50E6F4 +static unsigned int sPlayerMarkerStartID; // size: 0x4, address: 0x50F4F0 +static unsigned int sPlayerMarkerStartCamID; // size: 0x4, address: 0x50F4F4 +static float sPlayerStartAngle; // size: 0x4, address: 0x50F4F8 +static signed int sPortalling; // size: 0x4, address: 0x50F4FC +static float sGameOverTimer; // size: 0x4, address: 0x50F500 +float sTimeElapsed; // size: 0x4, address: 0x50F504 +signed long sTimeLast; // size: 0x4, address: 0x50F508 +signed long sTimeCurrent; // size: 0x4, address: 0x50F510 +unsigned int gLevelChanged; // size: 0x4, address: 0x50F518 +static signed int g_hiphopReloadHIP; // size: 0x4, address: 0x50F51C +static signed int g_hiphopForcePortal; // size: 0x4, address: 0x50F520 +static signed int g_hiphopResetOnly; // size: 0x4, address: 0x0 +static signed int g_hiphopEnabled; // size: 0x4, address: 0x0 +unsigned int startPressed; // size: 0x4, address: 0x50E6F8 +static class iColor_tag sFadeColor; // size: 0x4, address: 0x0 +class iColor_tag black; // size: 0x4, address: 0x50E6FC +class iColor_tag clear; // size: 0x4, address: 0x50F524 +unsigned int gSoak; // size: 0x4, address: 0x50F528 +char * soaklevels_gameorder[57]; // size: 0xE4, address: 0x408100 +char * soaklevels_alphaorder[50]; // size: 0xC8, address: 0x0 +char * * soaklevels; // size: 0x4, address: 0x50E700 +float soaktime; // size: 0x4, address: 0x50E704 +class xPortalAsset dummyPortalAsset; // size: 0x18, address: 0x522D00 +class _zPortal dummyPortal; // size: 0x14, address: 0x522D20 +static unsigned int loadMeter; // size: 0x4, address: 0x50F52C +static unsigned int loadCDMeter; // size: 0x4, address: 0x0 +static signed long t0; // size: 0x4, address: 0x50F548 +static signed long t1; // size: 0x4, address: 0x50F550 +static signed long w0; // size: 0x4, address: 0x50F558 +static signed long w1; // size: 0x4, address: 0x50F560 +static signed long gloop_time; // size: 0x4, address: 0x50F568 +static signed long gwait_time; // size: 0x4, address: 0x50F570 +static signed int gloop_ct; // size: 0x4, address: 0x50F578 +static float gloop_time_secs; // size: 0x4, address: 0x50F57C +static float gwait_time_secs; // size: 0x4, address: 0x50F580 +static float gloop_net_time_secs; // size: 0x4, address: 0x50F584 +float snd_radius; // size: 0x4, address: 0x0 +unsigned int gLastProfileDump; // size: 0x4, address: 0x0 +class RwCamera * sGameScreenTransCam; // size: 0x4, address: 0x50F590 +static class RpWorld * World; // size: 0x4, address: 0x50F594 +static class RpLight * DirectionalLight; // size: 0x4, address: 0x50F598 +unsigned int bgID; // size: 0x4, address: 0x50E708 +float bgu1; // size: 0x4, address: 0x50F59C +float bgv1; // size: 0x4, address: 0x50F5A0 +float bgu2; // size: 0x4, address: 0x50E70C +float bgv2; // size: 0x4, address: 0x50E710 +unsigned char bgr; // size: 0x1, address: 0x50E714 +unsigned char bgg; // size: 0x1, address: 0x50E718 +unsigned char bgb; // size: 0x1, address: 0x50E71C +unsigned char bga; // size: 0x1, address: 0x50E720 +enum eGameWhereAmI gGameWhereAmI; // size: 0x4, address: 0x50F5A4 +static char * gGameWhereAmI_str[85]; // size: 0x154, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +signed int gWaitingToAutoSave; // size: 0x4, address: 0x50F460 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +signed int gGameState; // size: 0x4, address: 0x50E728 +class callback text_cb; // size: 0xC, address: 0x4F87A8 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int gBusStopIsRunning; // size: 0x4, address: 0x510080 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +class _zEnv * gCurEnv; // size: 0x4, address: 0x50F704 +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +enum pause_ability { + PA_NONE = 0, + PA_MENU = 1, + PA_STALL = 2, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zEntHangable { + // total size: 0x0 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum eGameWhereAmI { + eGameWhere_NA = 0, + eGameWhere_InitStart = 1, + eGameWhere_InitScene = 2, + eGameWhere_InitCamera = 3, + eGameWhere_InitMusic = 4, + eGameWhere_InitOther = 5, + eGameWhere_InitEnd = 6, + eGameWhere_ExitStart = 7, + eGameWhere_ExitRumble = 8, + eGameWhere_ExitHUD = 9, + eGameWhere_ExitSound = 10, + eGameWhere_ExitCamera = 11, + eGameWhere_ExitScene = 12, + eGameWhere_ExitEnd = 13, + eGameWhere_SetupScene = 14, + eGameWhere_SetupZFX = 15, + eGameWhere_SetupPlayer = 16, + eGameWhere_SetupCamera = 17, + eGameWhere_SetupScrFX = 18, + eGameWhere_SetupSceneLoad = 19, + eGameWhere_SetupMusicNotify = 20, + eGameWhere_SetupHudSetup = 21, + eGameWhere_SetupSkydome = 22, + eGameWhere_SetupSceneEvents = 23, + eGameWhere_SetupUpdateCull = 24, + eGameWhere_SetupLOD = 25, + eGameWhere_SetupExtras = 26, + eGameWhere_SetupEnd = 27, + eGameWhere_LoopStart = 28, + eGameWhere_CutsceneFinish = 29, + eGameWhere_LoopDo = 30, + eGameWhere_LoopCalcTime = 31, + eGameWhere_LoopPadUpdate = 32, + eGameWhere_LoopTRCCheck = 33, + eGameWhere_LoopCheats = 34, + eGameWhere_LoopSceneUpdate = 35, + eGameWhere_LoopPlayerUpdate = 36, + eGameWhere_LoopSoundUpdate = 37, + eGameWhere_LoopSFXWidgets = 38, + eGameWhere_LoopHUDUpdate = 39, + eGameWhere_LoopCameraUpdate = 40, + eGameWhere_LoopCameraFXUpdate = 41, + eGameWhere_LoopFlyToInterface = 42, + eGameWhere_LoopCameraBegin = 43, + eGameWhere_LoopSceneRender = 44, + eGameWhere_LoopCameraEnd = 45, + eGameWhere_LoopCameraShowRaster = 46, + eGameWhere_LoopCameraFXEnd = 47, + eGameWhere_LoopMusicUpdate = 48, + eGameWhere_LoopUpdateMode = 49, + eGameWhere_LoopContinue = 50, + eGameWhere_LoopEndGameLoop = 51, + eGameWhere_SaveLoop = 52, + eGameWhere_ModeSceneSwitch = 53, + eGameWhere_ModeCutsceneFinish = 54, + eGameWhere_ModeGameExit = 55, + eGameWhere_ModeGameInit = 56, + eGameWhere_ModeGameSetup = 57, + eGameWhere_ModeSwitchAutoSave = 58, + eGameWhere_ModeSwitchCutsceneFinish = 59, + eGameWhere_ModeStoreCheckpoint = 60, + eGameWhere_LoseChanceReset = 61, + eGameWhere_LoseChanceResetDone = 62, + eGameWhere_TransitionBubbles = 63, + eGameWhere_TransitionBegin = 64, + eGameWhere_TransitionSnapShot = 65, + eGameWhere_TransitionUpdate = 66, + eGameWhere_TransitionPadUpdate = 67, + eGameWhere_TransitionTRCCheck = 68, + eGameWhere_TransitionCameraClear = 69, + eGameWhere_TransitionCameraBegin = 70, + eGameWhere_TransitionRenderBackground = 71, + eGameWhere_TransitionSpawnBubbles = 72, + eGameWhere_TransitionDrawEnd = 73, + eGameWhere_TransitionUpdateBubbles = 74, + eGameWhere_TransitionCameraEnd = 75, + eGameWhere_TransitionCameraShowRaster = 76, + eGameWhere_TransitionUpdateEnd = 77, + eGameWhere_TransitionUIRender = 78, + eGameWhere_TransitionUIRenderEnd = 79, + eGameWhere_TransitionEnd = 80, + eGameWhere_TransitionEnded = 81, + eGameWhere_SetupPlayerInit = 82, + eGameWhere_SetupPlayerCamera = 83, + eGameWhere_SetupPlayerEnd = 84, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum en_SOAK_DIR { + SOAK_FOR = 0, + SOAK_BACK = 1, + SOAK_RAND = 2, + SOAK_NOMORE = 3, + SOAK_FORCE = 2147483647, +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A4A0 -> 0x0017A62C +*/ +// Range: 0x17A4A0 -> 0x17A62C +void zGameSetupPlayer() { + // Blocks + /* anonymous block */ { + // Range: 0x17A4A0 -> 0x17A62C + class xEntAsset * asset; // r2 + signed int playerCount; // r2 + unsigned int size; // r29+0x1C + class xMarkerAsset * m; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A630 -> 0x0017A6CC +*/ +// Range: 0x17A630 -> 0x17A6CC +void zGameScreenTransitionEnd() { + // Blocks + /* anonymous block */ { + // Range: 0x17A630 -> 0x17A6CC + class RwFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017A6D0 -> 0x0017ADD4 +*/ +// Range: 0x17A6D0 -> 0x17ADD4 +void zGameScreenTransitionUpdate(float percentComplete /* r21 */, char * msg /* r16 */, unsigned char * rgba /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17A6D0 -> 0x17ADD4 + class RwRGBA back_col; // r29+0x24C + class RwTexture * tex; // r2 + class RwRaster * ras; // r17 + float recipCamZ; // r20 + class RwSky2DVertex vx[4]; // r29+0x140 + float z; // r29+0x250 + char meter[256]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017ADE0 -> 0x0017AE24 +*/ +// Range: 0x17ADE0 -> 0x17AE24 +void zGameScreenTransitionUpdate(float percentComplete /* r20 */, char * msg /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17ADE0 -> 0x17AE24 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017AE30 -> 0x0017AF0C +*/ +// Range: 0x17AE30 -> 0x17AF0C +void zGameScreenTransitionBegin() { + // Blocks + /* anonymous block */ { + // Range: 0x17AE30 -> 0x17AF0C + class RwFrame * frame; // r2 + class RwRGBAReal col; // r29+0x30 + class RwBBox box; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017AF10 -> 0x0017B718 +*/ +// Range: 0x17AF10 -> 0x17B718 +static void zGameUpdateMode() { + // Blocks + /* anonymous block */ { + // Range: 0x17AF10 -> 0x17B718 + class xPortalAsset * passet; // r3 + char * id; // r8 + unsigned int nextSceneID; // r16 + signed int result; // r2 + class xBase * sendTo; // r2 + unsigned int size; // r29+0x2C + class xMarkerAsset * m; // r2 + class xCamera * cam; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017B720 -> 0x0017BCE0 +*/ +// Range: 0x17B720 -> 0x17BCE0 +static void zGame_HackPostPortalAutoSaveDraw() { + // Blocks + /* anonymous block */ { + // Range: 0x17B720 -> 0x17BCE0 + class RwCamera * cam; // r21 + class RwCamera * ccam; // r20 + class RwRGBA bg; // r29+0x9FC + char str[2048]; // r29+0x1E0 + class xtextbox tb; // r29+0x170 + float yextent; // r20 + unsigned int i; // r19 + class RwTexture * tex; // r2 + class RwRaster * rast; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017BCE0 -> 0x0017BE38 +*/ +// Range: 0x17BCE0 -> 0x17BE38 +static void zGame_HackDrawCard(float x /* r23 */, float y /* r22 */, float w /* r21 */, float h /* r20 */, class RwRaster * rast /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17BCE0 -> 0x17BE38 + class RwSky2DVertex quad[4]; // r29+0x30 + float screenZ; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017BE40 -> 0x0017BEDC +*/ +// Range: 0x17BE40 -> 0x17BEDC +void zGameStall() { + // Blocks + /* anonymous block */ { + // Range: 0x17BE40 -> 0x17BEDC + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017BEE0 -> 0x0017C234 +*/ +// Range: 0x17BEE0 -> 0x17C234 +void zGamePauseIfPossible() { + // Blocks + /* anonymous block */ { + // Range: 0x17BEE0 -> 0x17C234 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017C240 -> 0x0017C280 +*/ +// Range: 0x17C240 -> 0x17C280 +signed int zGameIsPaused() { + // Blocks + /* anonymous block */ { + // Range: 0x17C240 -> 0x17C280 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017C280 -> 0x0017C924 +*/ +// Range: 0x17C280 -> 0x17C924 +void zGameLoop() { + // Blocks + /* anonymous block */ { + // Range: 0x17C280 -> 0x17C924 + signed int ostrich_delay; // r19 + signed int cheats; // r2 + class xMat4x3 playerMat; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017C930 -> 0x0017CA9C +*/ +// Range: 0x17C930 -> 0x17CA9C +void zGameSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x17C930 -> 0x17CA9C + class RpWorld * world; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017CAA0 -> 0x0017CB44 +*/ +// Range: 0x17CAA0 -> 0x17CB44 +void zGameExit() { + // Blocks + /* anonymous block */ { + // Range: 0x17CAA0 -> 0x17CB44 + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017CB50 -> 0x0017CC3C +*/ +// Range: 0x17CB50 -> 0x17CC3C +void zGameInit(unsigned int theSceneID /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17CB50 -> 0x17CC3C + } +} + +/* + Compile unit: C:\SB\Game\zGame.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017CC40 -> 0x0017CEDC +*/ +// Range: 0x17CC40 -> 0x17CEDC +static unsigned int PickNextSoak() { + // Blocks + /* anonymous block */ { + // Range: 0x17CC40 -> 0x17CEDC + unsigned int nextsoak; // r2 + char * name; // r2 + unsigned int tag; // r4 + char useme[5]; // r29+0x38 + unsigned int sumtotal; // @ 0x0050F540 + signed int soakcnt; // @ 0x0050F534 + enum en_SOAK_DIR soakdir; // @ 0x0050F538 + signed int soakidx; // @ 0x0050F530 + signed int justwrap; // @ 0x0050F53C + } +} + diff --git a/dwarf/SB/Game/zGameExtras.cpp b/dwarf/SB/Game/zGameExtras.cpp new file mode 100644 index 000000000..476d495a0 --- /dev/null +++ b/dwarf/SB/Game/zGameExtras.cpp @@ -0,0 +1,2887 @@ +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int g_enableGameExtras; // size: 0x4, address: 0x50F5A8 +static signed int g_currDay; // size: 0x4, address: 0x50F5AC +static signed int g_currMonth; // size: 0x4, address: 0x50F5B0 +static signed int g_gameExtraFlags; // size: 0x4, address: 0x50F5B4 +static class EGGItemFuncs EGGModuleTest; // size: 0x10, address: 0x0 +static class EGGItemFuncs EGGBirthDay; // size: 0x10, address: 0x0 +static class EGGItemFuncs EGGSnow; // size: 0x10, address: 0x0 +static class EGGItemFuncs EGGRain; // size: 0x10, address: 0x0 +static class EGGItemFuncs EGGEmpty; // size: 0x10, address: 0x522D40 +static class EGGItem g_eggBasket[2]; // size: 0x20, address: 0x4082F0 +static signed int g_flg_chEnabled; // size: 0x4, address: 0x50F5B8 +static float sCheatTimer; // size: 0x4, address: 0x50F5BC +static signed int sCheatInputCount; // size: 0x4, address: 0x50F5C0 +unsigned int sCheatAddShiny[16]; // size: 0x40, address: 0x408310 +unsigned int sCheatAddSpatulas[16]; // size: 0x40, address: 0x408350 +unsigned int sCheatBubbleBowl[16]; // size: 0x40, address: 0x408390 +unsigned int sCheatCruiseBubble[16]; // size: 0x40, address: 0x4083D0 +unsigned int sCheatMonsterGallery[16]; // size: 0x40, address: 0x408410 +unsigned int sCheatArtTheatre[16]; // size: 0x40, address: 0x408450 +unsigned int sCheatChaChing[16]; // size: 0x40, address: 0x408490 +unsigned int sCheatExpertMode[16]; // size: 0x40, address: 0x4084D0 +unsigned int sCheatTikiCheat[16]; // size: 0x40, address: 0x0 +unsigned int sCheatSwapCCLR[16]; // size: 0x40, address: 0x408510 +unsigned int sCheatSwapCCUD[16]; // size: 0x40, address: 0x408550 +unsigned int sCheatRestoreHealth[16]; // size: 0x40, address: 0x408590 +unsigned int sCheatTeflonPlayer[16]; // size: 0x40, address: 0x0 +unsigned int sCheatVikingFeet[16]; // size: 0x40, address: 0x0 +unsigned int sCheatDryBobMode[16]; // size: 0x40, address: 0x0 +unsigned int sCheatShrapBob[16]; // size: 0x40, address: 0x4085D0 +unsigned int sCheatBigFlopper[16]; // size: 0x40, address: 0x0 +unsigned int sCheatNoPants[16]; // size: 0x40, address: 0x408610 +unsigned int sCheatCruiseControl[16]; // size: 0x40, address: 0x408650 +unsigned int sCheatBigPlank[16]; // size: 0x40, address: 0x408690 +unsigned int sCheatSmallPeep[16]; // size: 0x40, address: 0x4086D0 +unsigned int sCheatSmallCoStars[16]; // size: 0x40, address: 0x408710 +unsigned int sCheatRichPeep[16]; // size: 0x40, address: 0x408750 +unsigned int sCheatPanHandle[16]; // size: 0x40, address: 0x408790 +unsigned int sCheatMedics[16]; // size: 0x40, address: 0x4087D0 +unsigned int sCheatDogTrix[16]; // size: 0x40, address: 0x408810 +static class GECheat cheatList[22]; // size: 0x160, address: 0x408850 +unsigned int sCheatPressed[16]; // size: 0x40, address: 0x522D50 +static class xEnt * sGalleryTitle; // size: 0x4, address: 0x50F5DC +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class EGGItem { + // total size: 0x10 +public: + signed int (* fun_check)(class EGGItem *); // offset 0x0, size 0x4 + class EGGItemFuncs * funcs; // offset 0x4, size 0x4 + signed int enabled; // offset 0x8, size 0x4 + class EGGData eggdata; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xCounterAsset : public xBaseAsset { + // total size: 0xC +public: + signed short count; // offset 0x8, size 0x2 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class GECheat { + // total size: 0x10 +public: + unsigned int * key_code; // offset 0x0, size 0x4 + void (* fun_cheat)(); // offset 0x4, size 0x4 + signed int flg_keep; // offset 0x8, size 0x4 + signed int flg_mode; // offset 0xC, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class rxReq { + // total size: 0x0 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class EGGItemFuncs { + // total size: 0x10 +public: + void (* fun_update)(float, class EGGItem *); // offset 0x0, size 0x4 + void (* fun_init)(class EGGItem *); // offset 0x4, size 0x4 + void (* fun_reset)(class EGGItem *); // offset 0x8, size 0x4 + void (* fun_done)(class EGGItem *); // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _xCounter : public xBase { + // total size: 0x18 +public: + class xCounterAsset * asset; // offset 0x10, size 0x4 + signed short count; // offset 0x14, size 0x2 + unsigned char state; // offset 0x16, size 0x1 + unsigned char counterFlags; // offset 0x17, size 0x1 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class EGGMisc { + // total size: 0x4 +public: + signed int other; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class EGGData { + // total size: 0x4 +public: + union { // inferred + signed int placeholder; // offset 0x0, size 0x4 + class EGGMisc misc; // offset 0x0, size 0x4 + }; +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017CEE0 -> 0x0017CF20 +*/ +// Range: 0x17CEE0 -> 0x17CF20 +unsigned int zGame_HackIsGallery() { + // Blocks + /* anonymous block */ { + // Range: 0x17CEE0 -> 0x17CF20 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017CF20 -> 0x0017CF4C +*/ +// Range: 0x17CF20 -> 0x17CF4C +void zGame_HackGalleryInit() { + // Blocks + /* anonymous block */ { + // Range: 0x17CF20 -> 0x17CF4C + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017CF50 -> 0x0017D094 +*/ +// Range: 0x17CF50 -> 0x17D094 +static void GEC_cb_PanHandle() { + // Blocks + /* anonymous block */ { + // Range: 0x17CF50 -> 0x17D094 + unsigned int aid_sndList[6]; // @ 0x00522DC0 + signed char @5620; // @ 0x0050F5D8 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D0A0 -> 0x0017D1E4 +*/ +// Range: 0x17D0A0 -> 0x17D1E4 +static void GEC_cb_RichPeep() { + // Blocks + /* anonymous block */ { + // Range: 0x17D0A0 -> 0x17D1E4 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D1F0 -> 0x0017D334 +*/ +// Range: 0x17D1F0 -> 0x17D334 +static void GEC_cb_SmallCostars() { + // Blocks + /* anonymous block */ { + // Range: 0x17D1F0 -> 0x17D334 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D340 -> 0x0017D484 +*/ +// Range: 0x17D340 -> 0x17D484 +static void GEC_cb_SmallPeep() { + // Blocks + /* anonymous block */ { + // Range: 0x17D340 -> 0x17D484 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D490 -> 0x0017D5D4 +*/ +// Range: 0x17D490 -> 0x17D5D4 +static void GEC_cb_DogTrix() { + // Blocks + /* anonymous block */ { + // Range: 0x17D490 -> 0x17D5D4 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D5E0 -> 0x0017D724 +*/ +// Range: 0x17D5E0 -> 0x17D724 +static void GEC_cb_Medics() { + // Blocks + /* anonymous block */ { + // Range: 0x17D5E0 -> 0x17D724 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D730 -> 0x0017D874 +*/ +// Range: 0x17D730 -> 0x17D874 +static void GEC_cb_BigPlank() { + // Blocks + /* anonymous block */ { + // Range: 0x17D730 -> 0x17D874 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D880 -> 0x0017D9DC +*/ +// Range: 0x17D880 -> 0x17D9DC +static void GEC_cb_SwapCCUD() { + // Blocks + /* anonymous block */ { + // Range: 0x17D880 -> 0x17D9DC + unsigned int aid_sndList[7]; // @ 0x00522D90 + signed char @5449; // @ 0x0050F5C4 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017D9E0 -> 0x0017DB3C +*/ +// Range: 0x17D9E0 -> 0x17DB3C +static void GEC_cb_SwapCCLR() { + // Blocks + /* anonymous block */ { + // Range: 0x17D9E0 -> 0x17DB3C + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017DB40 -> 0x0017DC4C +*/ +// Range: 0x17DB40 -> 0x17DC4C +static void GEC_cb_CruiseControl() { + // Blocks + /* anonymous block */ { + // Range: 0x17DB40 -> 0x17DC4C + unsigned int choices[3]; // @ 0x00522DB0 + signed char @5598; // @ 0x0050F5D4 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017DC50 -> 0x0017DC98 +*/ +// Range: 0x17DC50 -> 0x17DC98 +static void GEC_cb_NoPantsMode() { + // Blocks + /* anonymous block */ { + // Range: 0x17DC50 -> 0x17DC98 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017DCA0 -> 0x0017DDFC +*/ +// Range: 0x17DCA0 -> 0x17DDFC +static void GEC_cb_ShrapBobMode() { + // Blocks + /* anonymous block */ { + // Range: 0x17DCA0 -> 0x17DDFC + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017DE00 -> 0x0017DF5C +*/ +// Range: 0x17DE00 -> 0x17DF5C +static void GEC_cb_ExpertMode() { + // Blocks + /* anonymous block */ { + // Range: 0x17DE00 -> 0x17DF5C + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017DF60 -> 0x0017E054 +*/ +// Range: 0x17DF60 -> 0x17E054 +static void GEC_cb_RestoreHealth() { + // Blocks + /* anonymous block */ { + // Range: 0x17DF60 -> 0x17E054 + unsigned int choices[2]; // @ 0x0050F5C8 + signed char @5558; // @ 0x0050F5D0 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E060 -> 0x0017E0D8 +*/ +// Range: 0x17E060 -> 0x17E0D8 +static void GEC_cb_ChaChing() { + // Blocks + /* anonymous block */ { + // Range: 0x17E060 -> 0x17E0D8 + class zGlobalSettings * gs; // r5 + unsigned int aid_snd; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E0E0 -> 0x0017E11C +*/ +// Range: 0x17E0E0 -> 0x17E11C +static void GEC_cb_UnlockArtTheatre() { + // Blocks + /* anonymous block */ { + // Range: 0x17E0E0 -> 0x17E11C + char * nam_theatreCounter; // r2 + unsigned int aid_theatreCounter; // r2 + class _xCounter * cntr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E120 -> 0x0017E1D4 +*/ +// Range: 0x17E120 -> 0x17E1D4 +static void GEC_cb_MonsterGallery() { + // Blocks + /* anonymous block */ { + // Range: 0x17E120 -> 0x17E1D4 + char tempString[32]; // r29+0x50 + char c; // r19 + signed int i; // r18 + unsigned int id; // r2 + class _xCounter * cntr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E1E0 -> 0x0017E23C +*/ +// Range: 0x17E1E0 -> 0x17E23C +static void GEC_cb_CruiseBubble() { + // Blocks + /* anonymous block */ { + // Range: 0x17E1E0 -> 0x17E23C + unsigned int aid_snd; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E240 -> 0x0017E29C +*/ +// Range: 0x17E240 -> 0x17E29C +static void GEC_cb_BubbleBowl() { + // Blocks + /* anonymous block */ { + // Range: 0x17E240 -> 0x17E29C + unsigned int aid_snd; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E2A0 -> 0x0017E31C +*/ +// Range: 0x17E2A0 -> 0x17E31C +static void GEC_cb_AddSpatulas() { + // Blocks + /* anonymous block */ { + // Range: 0x17E2A0 -> 0x17E31C + class zPlayerGlobals * pg; // r3 + unsigned int aid_snd; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E320 -> 0x0017E3B4 +*/ +// Range: 0x17E320 -> 0x17E3B4 +static void GEC_cb_AddShiny() { + // Blocks + /* anonymous block */ { + // Range: 0x17E320 -> 0x17E3B4 + class zPlayerGlobals * pg; // r3 + unsigned int aid_snd; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E3C0 -> 0x0017E670 +*/ +// Range: 0x17E3C0 -> 0x17E670 +void zGameCheats(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17E3C0 -> 0x17E670 + signed int startover; // r8 + signed int match; // r17 + class GECheat * rec_next; // r16 + class GECheat * rec_curr; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E670 -> 0x0017E6A0 +*/ +// Range: 0x17E670 -> 0x17E6A0 +void zGameExtras_Load(class xSerial * xser /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17E670 -> 0x17E6A0 + signed int keepers; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E6A0 -> 0x0017E6A8 +*/ +// Range: 0x17E6A0 -> 0x17E6A8 +void zGameExtras_Save(class xSerial * xser /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17E6A0 -> 0x17E6A8 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E6B0 -> 0x0017E6E8 +*/ +// Range: 0x17E6B0 -> 0x17E6E8 +void zGameExtras_NewGameReset() { + // Blocks + /* anonymous block */ { + // Range: 0x17E6B0 -> 0x17E6E8 + class zGlobalSettings * gs; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E6F0 -> 0x0017E6F8 +*/ +// Range: 0x17E6F0 -> 0x17E6F8 +signed int zGameExtras_CheatFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x17E6F0 -> 0x17E6F8 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E700 -> 0x0017E928 +*/ +// Range: 0x17E700 -> 0x17E928 +static signed int EGG_check_ExtrasFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x17E700 -> 0x17E928 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E930 -> 0x0017E9CC +*/ +// Range: 0x17E930 -> 0x17E9CC +void zGameExtras_SceneUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17E930 -> 0x17E9CC + class EGGItem * egg_next; // r16 + class EGGItem * egg; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017E9D0 -> 0x0017EA78 +*/ +// Range: 0x17E9D0 -> 0x17EA78 +void zGameExtras_SceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x17E9D0 -> 0x17EA78 + class EGGItem * egg_next; // r16 + class EGGItem * egg; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017EA80 -> 0x0017EAF0 +*/ +// Range: 0x17EA80 -> 0x17EAF0 +void zGameExtras_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x17EA80 -> 0x17EAF0 + class EGGItem * egg_next; // r16 + class EGGItem * egg; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017EAF0 -> 0x0017EBB0 +*/ +// Range: 0x17EAF0 -> 0x17EBB0 +void zGameExtras_SceneInit() { + // Blocks + /* anonymous block */ { + // Range: 0x17EAF0 -> 0x17EBB0 + signed int somethingIsEnabled; // r18 + class EGGItem * egg_next; // r17 + class EGGItem * egg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017EBB0 -> 0x0017EBC4 +*/ +// Range: 0x17EBB0 -> 0x17EBC4 +void zGameExtras_MoDay(signed int * month /* r2 */, signed int * day /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17EBB0 -> 0x17EBC4 + } +} + +/* + Compile unit: C:\SB\Game\zGameExtras.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017EBD0 -> 0x0017EBD8 +*/ +// Range: 0x17EBD0 -> 0x17EBD8 +signed int zGameExtras_ExtrasFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x17EBD0 -> 0x17EBD8 + } +} + diff --git a/dwarf/SB/Game/zGameState.cpp b/dwarf/SB/Game/zGameState.cpp new file mode 100644 index 000000000..f77e67267 --- /dev/null +++ b/dwarf/SB/Game/zGameState.cpp @@ -0,0 +1,2138 @@ +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +signed int gGameState; // size: 0x4, address: 0x50E728 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +enum _GameOstrich gGameOstrich; // size: 0x4, address: 0x50F5E4 +static unsigned int sGameMode_DispatchTable[13]; // size: 0x34, address: 0x522DE0 +static unsigned int sGameState_DispatchTable[8]; // size: 0x20, address: 0x4089B0 +static unsigned int sPauseState_DispatchTable[2]; // size: 0x8, address: 0x50E730 +static unsigned int sSaveState_DispatchTable[3]; // size: 0xC, address: 0x4089D0 +static unsigned int sOptionsState_DispatchTable[1]; // size: 0x4, address: 0x50E738 +static unsigned int sLoadState_DispatchTable[3]; // size: 0xC, address: 0x4089E0 +static unsigned int sTitleState_DispatchTable[2]; // size: 0x8, address: 0x50E740 +static unsigned int sIntroState_DispatchTable[4]; // size: 0x10, address: 0x4089F0 +static unsigned int sGameState_DoDispatchTable[8]; // size: 0x20, address: 0x408A00 +static unsigned int sPauseState_DoDispatchTable[2]; // size: 0x8, address: 0x50E748 +static unsigned int sSaveState_DoDispatchTable[3]; // size: 0xC, address: 0x408A20 +static unsigned int sOptionsState_DoDispatchTable[1]; // size: 0x4, address: 0x50E750 +static unsigned int sLoadState_DoDispatchTable[3]; // size: 0xC, address: 0x408A30 +static unsigned int sTitleState_DoDispatchTable[2]; // size: 0x8, address: 0x50E758 +static unsigned int sIntroState_DoDispatchTable[4]; // size: 0x10, address: 0x408A40 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int startPressed; // size: 0x4, address: 0x50E6F8 +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +enum _GameOstrich { + eGameOstrich_Loading = 0, + eGameOstrich_PlayingMovie = 1, + eGameOstrich_InScene = 2, + eGameOstrich_Total = 3, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zPlatform { + // total size: 0x0 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017EBE0 -> 0x0017ECC0 +*/ +// Range: 0x17EBE0 -> 0x17ECC0 +void zGameModeSwitch(enum eGameMode modeNew /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17EBE0 -> 0x17ECC0 + enum eGameMode modeOld; // r5 + unsigned char pausing; // r2 + unsigned char unpausing; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017ECC0 -> 0x0017EDD4 +*/ +// Range: 0x17ECC0 -> 0x17EDD4 +void zGameStateSwitch(signed int theNewState /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17ECC0 -> 0x17EDD4 + signed int stateOld; // r5 + unsigned int theEvent; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017EDE0 -> 0x0017F04C +*/ +// Range: 0x17EDE0 -> 0x17F04C +void zGameStateSwitchEvent(signed int event /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17EDE0 -> 0x17F04C + signed int new_mode; // r19 + signed int new_state; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F050 -> 0x0017F058 +*/ +// Range: 0x17F050 -> 0x17F058 +void zGameSetOstrich(enum _GameOstrich o /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F050 -> 0x17F058 + } +} + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F060 -> 0x0017F068 +*/ +// Range: 0x17F060 -> 0x17F068 +enum _GameOstrich zGameGetOstrich() { + // Blocks + /* anonymous block */ { + // Range: 0x17F060 -> 0x17F068 + } +} + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F070 -> 0x0017F078 +*/ +// Range: 0x17F070 -> 0x17F078 +signed int zGameModeGet() { + // Blocks + /* anonymous block */ { + // Range: 0x17F070 -> 0x17F078 + } +} + +/* + Compile unit: C:\SB\Game\zGameState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F080 -> 0x0017F088 +*/ +// Range: 0x17F080 -> 0x17F088 +signed int zGameStateGet() { + // Blocks + /* anonymous block */ { + // Range: 0x17F080 -> 0x17F088 + } +} + diff --git a/dwarf/SB/Game/zGoo.cpp b/dwarf/SB/Game/zGoo.cpp new file mode 100644 index 000000000..6483dfe43 --- /dev/null +++ b/dwarf/SB/Game/zGoo.cpp @@ -0,0 +1,1144 @@ +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zGooParams * zgoo_gps; // size: 0x4, address: 0x510018 +static signed int zgoo_ngps; // size: 0x4, address: 0x51001C +static signed int zgoo_nused; // size: 0x4, address: 0x510020 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEnv { + // total size: 0x0 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zGooParams { + // total size: 0xC +public: + float depth; // offset 0x0, size 0x4 + float orig_depth; // offset 0x4, size 0x4 + class xEnt * goo_ent; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F8A0 -> 0x0030F938 +*/ +// Range: 0x30F8A0 -> 0x30F938 +void zGooMeltFinished(class RpAtomic * atomic /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F8A0 -> 0x30F938 + signed int i; // r17 + class xEnt * gooey; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F940 -> 0x0030F9B4 +*/ +// Range: 0x30F940 -> 0x30F9B4 +void zGooStopTide() { + // Blocks + /* anonymous block */ { + // Range: 0x30F940 -> 0x30F9B4 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F9C0 -> 0x0030FA64 +*/ +// Range: 0x30F9C0 -> 0x30FA64 +void zGooCollsEnd() { + // Blocks + /* anonymous block */ { + // Range: 0x30F9C0 -> 0x30FA64 + signed int i; // r19 + class xEnt * gooey; // r2 + class xVec3 change; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FA70 -> 0x0030FBD4 +*/ +// Range: 0x30FA70 -> 0x30FBD4 +void zGooCollsBegin() { + // Blocks + /* anonymous block */ { + // Range: 0x30FA70 -> 0x30FBD4 + signed int i; // r20 + class xEnt * gooey; // r19 + float ignoredepth; // r29+0x7C + class xVec3 change; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FBE0 -> 0x0030FCAC +*/ +// Range: 0x30FBE0 -> 0x30FCAC +signed int zGooIs(class xEnt * obj /* r2 */, float & depth /* r16 */, unsigned int playerCheck /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30FBE0 -> 0x30FCAC + signed int ret; // r2 + signed int i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FCB0 -> 0x0030FD6C +*/ +// Range: 0x30FCB0 -> 0x30FD6C +signed int zGooAdd(class xEnt * obj /* r2 */, float depth /* r29+0x10 */, signed int freezeGroup /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30FCB0 -> 0x30FD6C + signed int i; // r7 + class zGooParams * gp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FD70 -> 0x0030FD80 +*/ +// Range: 0x30FD70 -> 0x30FD80 +void zGooExit() { + // Blocks + /* anonymous block */ { + // Range: 0x30FD70 -> 0x30FD80 + } +} + +/* + Compile unit: C:\SB\Game\zGoo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FD80 -> 0x0030FDC0 +*/ +// Range: 0x30FD80 -> 0x30FDC0 +void zGooInit(signed int nobj /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30FD80 -> 0x30FDC0 + } +} + diff --git a/dwarf/SB/Game/zGrid.cpp b/dwarf/SB/Game/zGrid.cpp new file mode 100644 index 000000000..aa5a3313a --- /dev/null +++ b/dwarf/SB/Game/zGrid.cpp @@ -0,0 +1,1323 @@ +/* + Compile unit: C:\SB\Game\zGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +class xGrid npcs_grid; // size: 0x34, address: 0x5CEC50 +static signed int zGridInitted; // size: 0x4, address: 0x50FFD8 +signed int gGridIterActive; // size: 0x4, address: 0x50FFC8 +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xFFX { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00306050 -> 0x003061F8 +*/ +// Range: 0x306050 -> 0x3061F8 +void zGridUpdateEnt(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x306050 -> 0x3061F8 + signed int oversize; // r6 + class xGrid * grid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00306200 -> 0x00306240 +*/ +// Range: 0x306200 -> 0x306240 +void zGridExit() { + // Blocks + /* anonymous block */ { + // Range: 0x306200 -> 0x306240 + } +} + +/* + Compile unit: C:\SB\Game\zGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00306240 -> 0x00306944 +*/ +// Range: 0x306240 -> 0x306944 +void zGridInit(class zScene * s /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x306240 -> 0x306944 + class xBox * ebox; // r16 + float min_csize; // r22 + class xBox osobox; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00306950 -> 0x00306A54 +*/ +// Range: 0x306950 -> 0x306A54 +void zGridReset(class zScene * s /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x306950 -> 0x306A54 + unsigned int i; // r18 + class xBase * base; // r17 + class xEnt * ent; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zGrid.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00306A60 -> 0x00306D38 +*/ +// Range: 0x306A60 -> 0x306D38 +static void hack_flag_shadows(class zScene * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x306A60 -> 0x306D38 + unsigned int * end_special_models; // r9 + class zEnt * * it; // r8 + class zEnt * * end; // r7 + class xEnt * ent; // r6 + unsigned int * id; // r5 + unsigned int special_models[25]; // @ 0x005CEC90 + signed char @3381; // @ 0x0050FFDC + } +} + diff --git a/dwarf/SB/Game/zGust.cpp b/dwarf/SB/Game/zGust.cpp new file mode 100644 index 000000000..74dd43c73 --- /dev/null +++ b/dwarf/SB/Game/zGust.cpp @@ -0,0 +1,1522 @@ +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zGust * gusts; // size: 0x4, address: 0x50F5E8 +static unsigned short ngusts; // size: 0x2, address: 0x50F5EC +static class zParEmitter * sGustDustEmitter; // size: 0x4, address: 0x50F5F0 +static class zParEmitter * sGustDebrisEmitter; // size: 0x4, address: 0x50F5F4 +signed int zGustEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x17F460 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zGust : public xBase { + // total size: 0x24 +public: + unsigned int flags; // offset 0x10, size 0x4 + class zGustAsset * asset; // offset 0x14, size 0x4 + class zVolume * volume; // offset 0x18, size 0x4 + class zVolume * fx_volume; // offset 0x1C, size 0x4 + float debris_timer; // offset 0x20, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zGustAsset : public xBaseAsset { + // total size: 0x28 +public: + unsigned int flags; // offset 0x8, size 0x4 + unsigned int volumeID; // offset 0xC, size 0x4 + unsigned int effectID; // offset 0x10, size 0x4 + class xVec3 vel; // offset 0x14, size 0xC + float fade; // offset 0x20, size 0x4 + float partMod; // offset 0x24, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zVolume : public xVolume { + // total size: 0x14 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xParGroup { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zGustData { + // total size: 0x24 +public: + unsigned int gust_on; // offset 0x0, size 0x4 + class zGust * g[4]; // offset 0x4, size 0x10 + float lerp[4]; // offset 0x14, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xFFX { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xVolumeAsset : public xBaseAsset { + // total size: 0x64 +public: + unsigned int flags; // offset 0x8, size 0x4 + class xBound bound; // offset 0xC, size 0x4C + float rot; // offset 0x58, size 0x4 + float xpivot; // offset 0x5C, size 0x4 + float zpivot; // offset 0x60, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F090 -> 0x0017F110 +*/ +// Range: 0x17F090 -> 0x17F110 +void zGustUpdateFX(float seconds /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F090 -> 0x17F110 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F110 -> 0x0017F45C +*/ +// Range: 0x17F110 -> 0x17F45C +static void UpdateGustFX(class zGust * g /* r20 */, float seconds /* r29+0x220 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F110 -> 0x17F45C + class xBBox * box; // r2 + class xParEmitterCustomSettings info; // r29+0xB0 + class zParEmitter * e; // r30 + signed int total_debris; // r22 + signed int vol_area; // r3 + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F460 -> 0x0017F524 +*/ +// Range: 0x17F460 -> 0x17F524 +signed int zGustEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F460 -> 0x17F524 + class zGust * g; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F530 -> 0x0017F538 +*/ +// Range: 0x17F530 -> 0x17F538 +void zGustLoad(class zGust * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F530 -> 0x17F538 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F540 -> 0x0017F548 +*/ +// Range: 0x17F540 -> 0x17F548 +void zGustSave(class zGust * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F540 -> 0x17F548 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F550 -> 0x0017F8C8 +*/ +// Range: 0x17F550 -> 0x17F8C8 +void zGustUpdateEnt(class xEnt * ent /* r19 */, float dt /* r20 */, void * gdata /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F550 -> 0x17F8C8 + unsigned int i; // r18 + unsigned int j; // r3 + unsigned int minidx; // r17 + float minlerp; // r1 + class zGustData * data; // r16 + class xCollis coll; // r29+0x60 + float lerpinc; // r3 + class xVec3 * gvel; // r4 + class xVec3 dpos; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F8D0 -> 0x0017F8F8 +*/ +// Range: 0x17F8D0 -> 0x17F8F8 +class zGust * zGustGetGust(unsigned short n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17F8D0 -> 0x17F8F8 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F900 -> 0x0017F9C0 +*/ +// Range: 0x17F900 -> 0x17F9C0 +void zGustSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x17F900 -> 0x17F9C0 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zGust.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017F9C0 -> 0x0017FAE4 +*/ +// Range: 0x17F9C0 -> 0x17FAE4 +void zGustInit() { + // Blocks + /* anonymous block */ { + // Range: 0x17F9C0 -> 0x17FAE4 + unsigned short i; // r19 + unsigned int size; // r29+0x5C + class zGustAsset * asset; // r18 + } +} + diff --git a/dwarf/SB/Game/zHud.cpp b/dwarf/SB/Game/zHud.cpp new file mode 100644 index 000000000..7e2c291a1 --- /dev/null +++ b/dwarf/SB/Game/zHud.cpp @@ -0,0 +1,2497 @@ +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int meter_widget_index[5]; // size: 0x14, address: 0x4F4430 +static signed int model_widget_index[5]; // size: 0x14, address: 0x4F4450 +static unsigned int * value[5]; // size: 0x14, address: 0x522E20 +static unsigned int old_value[5]; // size: 0x14, address: 0x522E40 +static unsigned int * max_value[5]; // size: 0x14, address: 0x522E60 +static unsigned int old_max_value[5]; // size: 0x14, address: 0x522E80 +static unsigned char hiding[5]; // size: 0x5, address: 0x50F5F8 +static unsigned char inited; // size: 0x1, address: 0x50F600 +static unsigned char last_paused; // size: 0x1, address: 0x50E760 +static char * widget_resources[9]; // size: 0x24, address: 0x408A50 +static class special_data level_specials[15]; // size: 0x78, address: 0x408A80 +static class widget * widgets[9]; // size: 0x24, address: 0x522EA0 +void hide_widget(class widget &, class motive &); // size: 0x0, address: 0x180580 +unsigned char delay_motive_update(class widget &, class motive &, float); // size: 0x0, address: 0x2981F0 +unsigned char shake_motive_update(class widget &, class motive &, float); // size: 0x0, address: 0x298250 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +class special_data { + // total size: 0x8 +public: + char * hud_model; // offset 0x0, size 0x4 + signed int max_value; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class meter_widget : public widget { + // total size: 0xC4 +public: + class meter_asset & res; // offset 0x84, size 0x4 + float value; // offset 0x88, size 0x4 + float min_value; // offset 0x8C, size 0x4 + float max_value; // offset 0x90, size 0x4 + float end_value; // offset 0x94, size 0x4 + float value_vel; // offset 0x98, size 0x4 + float value_accel; // offset 0x9C, size 0x4 + float ping_delay; // offset 0xA0, size 0x4 + float pitch; // offset 0xA4, size 0x4 + class sound_queue pings; // offset 0xA8, size 0x1C +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class widget { + // total size: 0x84 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 + } flag; // offset 0x0, size 0x2 + class render_context rc; // offset 0x4, size 0x34 + class render_context start_rc; // offset 0x38, size 0x34 + class asset * a; // offset 0x6C, size 0x4 + enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, + } activity; // offset 0x70, size 0x4 + class motive_node * _motive_top; // offset 0x78, size 0x4 + class motive_node * _motive_temp; // offset 0x7C, size 0x4 + class motive_node * * _motive_temp_tail; // offset 0x80, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class motive { + // total size: 0x24 +public: + float * value; // offset 0x0, size 0x4 + float delta; // offset 0x4, size 0x4 + float start_delta; // offset 0x8, size 0x4 + float max_offset; // offset 0xC, size 0x4 + float offset; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + unsigned char (* fp_update)(class widget &, class motive &, float); // offset 0x18, size 0x4 + void * context; // offset 0x1C, size 0x4 + unsigned char inverse; // offset 0x20, size 0x1 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class widget_chunk : public xBase { + // total size: 0x94 +public: + class widget w; // offset 0x10, size 0x84 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class font_meter_widget : public meter_widget { + // total size: 0x14C +public: + class font_context font; // offset 0xC4, size 0x24 + class font_context start_font; // offset 0xE8, size 0x24 + signed int precision; // offset 0x10C, size 0x4 + class xVec2 offset; // offset 0x110, size 0x8 + char buffer[12]; // offset 0x118, size 0xC + signed int last_value; // offset 0x124, size 0x4 + class xfont xf; // offset 0x128, size 0x24 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class meter_asset : public asset { + // total size: 0x4C +public: + float start_value; // offset 0x28, size 0x4 + float min_value; // offset 0x2C, size 0x4 + float max_value; // offset 0x30, size 0x4 + float increment_time; // offset 0x34, size 0x4 + float decrement_time; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 + } sound; // offset 0x3C, size 0x10 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char visible; // offset 0x0, size 0x1 + unsigned char enabled; // offset 0x1, size 0x1 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + class xVec3 size; // offset 0x1C, size 0xC +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class sound_queue { + // total size: 0x1C +public: + unsigned int _playing[5]; // offset 0x0, size 0x14 + signed int head; // offset 0x14, size 0x4 + signed int tail; // offset 0x18, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +enum /* @enum */ { + ACT_NONE = 0, + ACT_SHOW = 1, + ACT_HIDE = 2, + MAX_ACT = 3, +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class motive_node { + // total size: 0x28 +public: + class motive m; // offset 0x0, size 0x24 + class motive_node * next; // offset 0x24, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class color32u { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zEntHangable { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class model_widget : public widget { + // total size: 0x8C +public: + unsigned int mid; // offset 0x84, size 0x4 + class xModelInstance * model; // offset 0x88, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class font_context { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + signed int justify; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 + float space; // offset 0x10, size 0x4 + float drop_x; // offset 0x14, size 0x4 + float drop_y; // offset 0x18, size 0x4 + class color32u c; // offset 0x1C, size 0x4 + class color32u drop_c; // offset 0x20, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class render_context { + // total size: 0x34 +public: + class xVec3 loc; // offset 0x0, size 0xC + class xVec3 size; // offset 0xC, size 0xC + class xVec3 rot; // offset 0x18, size 0xC + float r; // offset 0x24, size 0x4 + float g; // offset 0x28, size 0x4 + float b; // offset 0x2C, size 0x4 + float a; // offset 0x30, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int start_increment; // offset 0x0, size 0x4 + unsigned int increment; // offset 0x4, size 0x4 + unsigned int start_decrement; // offset 0x8, size 0x4 + unsigned int decrement; // offset 0xC, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017FAF0 -> 0x0017FB94 +*/ +// Range: 0x17FAF0 -> 0x17FB94 +void hide() { + // Blocks + /* anonymous block */ { + // Range: 0x17FAF0 -> 0x17FB94 + class widget * * it; // r17 + class widget * * end; // r16 + class widget * widget; // r2 + unsigned char * it; // r5 + unsigned char * end; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017FBA0 -> 0x0017FC58 +*/ +// Range: 0x17FBA0 -> 0x17FC58 +void show() { + // Blocks + /* anonymous block */ { + // Range: 0x17FBA0 -> 0x17FC58 + class widget * * it; // r18 + class widget * * end; // r17 + class widget * widget; // r16 + unsigned char * it; // r4 + unsigned char * end; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017FC60 -> 0x0017FC68 +*/ +// Range: 0x17FC60 -> 0x17FC68 +void render() { + // Blocks + /* anonymous block */ { + // Range: 0x17FC60 -> 0x17FC68 + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0017FC70 -> 0x00180224 +*/ +// Range: 0x17FC70 -> 0x180224 +void update(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x17FC70 -> 0x180224 + signed int i; // r21 + signed int i; // r16 + signed char @3956; // @ 0x0050F610 + unsigned int model_type; // @ 0x0050F60C + signed char @3948; // @ 0x0050F608 + unsigned int meter_type; // @ 0x0050F604 + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180230 -> 0x0018026C +*/ +// Range: 0x180230 -> 0x18026C +void destroy() { + // Blocks + /* anonymous block */ { + // Range: 0x180230 -> 0x18026C + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180270 -> 0x00180568 +*/ +// Range: 0x180270 -> 0x180568 +void setup() { + // Blocks + /* anonymous block */ { + // Range: 0x180270 -> 0x180568 + signed int i; // r18 + unsigned int id; // r2 + class widget_chunk * wc; // r2 + class special_data & special; // r16 + unsigned int id; // r2 + class widget_chunk * wc; // r2 + class font_meter_widget & meter; // r4 + unsigned int id; // r2 + class widget_chunk * wc; // r2 + signed int i; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180570 -> 0x0018057C +*/ +// Range: 0x180570 -> 0x18057C +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x180570 -> 0x18057C + } +} + +/* + Compile unit: C:\SB\Game\zHud.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180580 -> 0x00180588 +*/ +// Range: 0x180580 -> 0x180588 +static void hide_widget(class widget & w /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180580 -> 0x180588 + } +} + diff --git a/dwarf/SB/Game/zLOD.cpp b/dwarf/SB/Game/zLOD.cpp new file mode 100644 index 000000000..eb2c75e8c --- /dev/null +++ b/dwarf/SB/Game/zLOD.cpp @@ -0,0 +1,2362 @@ +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int sTableCount; // size: 0x4, address: 0x50F630 +static class zLODTable * sTableList; // size: 0x4, address: 0x50F634 +static unsigned int sManagerIndex; // size: 0x4, address: 0x50F638 +static unsigned int sManagerCount; // size: 0x4, address: 0x50F63C +static class zLODManager sManagerList[2048]; // size: 0x8000, address: 0x5248F0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xEnt * AddToLODList(class xEnt *, class xScene *, void *); // size: 0x0, address: 0x185700 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xFFX { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zEntDestructObj : public zEnt { + // total size: 0x114 +public: + class zEntDestructObjAsset * dasset; // offset 0xD4, size 0x4 + unsigned int state; // offset 0xD8, size 0x4 + unsigned int healthCnt; // offset 0xDC, size 0x4 + float fx_timer; // offset 0xE0, size 0x4 + class zParEmitter * fx_emitter; // offset 0xE4, size 0x4 + float respawn_timer; // offset 0xE8, size 0x4 + unsigned int throw_target; // offset 0xEC, size 0x4 + class zShrapnelAsset * shrapnel_destroy; // offset 0xF0, size 0x4 + class zShrapnelAsset * shrapnel_hit; // offset 0xF4, size 0x4 + class xModelInstance * base_model; // offset 0xF8, size 0x4 + class xModelInstance * hit_model; // offset 0xFC, size 0x4 + class xModelInstance * destroy_model; // offset 0x100, size 0x4 + void (* destroy_notify)(class zEntDestructObj &, void *); // offset 0x104, size 0x4 + void * notify_context; // offset 0x108, size 0x4 + class xSFXAsset * sfx_destroy; // offset 0x10C, size 0x4 + class xSFXAsset * sfx_hit; // offset 0x110, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zPlatform { + // total size: 0x0 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLODTable { + // total size: 0x20 +public: + class xModelBucket * * baseBucket; // offset 0x0, size 0x4 + float noRenderDist; // offset 0x4, size 0x4 + class xModelBucket * * lodBucket[3]; // offset 0x8, size 0xC + float lodDist[3]; // offset 0x14, size 0xC +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class zEntHangable { + // total size: 0x0 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zEntDestructObjAsset { + // total size: 0x38 +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned int health; // offset 0x8, size 0x4 + unsigned int spawnItemID; // offset 0xC, size 0x4 + unsigned int dflags; // offset 0x10, size 0x4 + unsigned char collType; // offset 0x14, size 0x1 + unsigned char fxType; // offset 0x15, size 0x1 + unsigned char pad[2]; // offset 0x16, size 0x2 + float blast_radius; // offset 0x18, size 0x4 + float blast_strength; // offset 0x1C, size 0x4 + unsigned int shrapnelID_destroy; // offset 0x20, size 0x4 + unsigned int shrapnelID_hit; // offset 0x24, size 0x4 + unsigned int sfx_destroy; // offset 0x28, size 0x4 + unsigned int sfx_hit; // offset 0x2C, size 0x4 + unsigned int hitModel; // offset 0x30, size 0x4 + unsigned int destroyModel; // offset 0x34, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zLODManager { + // total size: 0x10 +public: + signed int numextra; // offset 0x0, size 0x4 + class zLODTable * lod; // offset 0x4, size 0x4 + class xModelInstance * model; // offset 0x8, size 0x4 + float adjustNoRenderDist; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zFrag { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00184F20 -> 0x001851A0 +*/ +// Range: 0x184F20 -> 0x1851A0 +void zLOD_UseCustomTable(class xEnt * ent /* r2 */, class zLODTable * lod /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x184F20 -> 0x1851A0 + unsigned int i; // r8 + class xModelInstance * model; // r3 + class xVec3 * campos; // r8 + float camdist2; // r4 + float distscale; // r6 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001851A0 -> 0x00185220 +*/ +// Range: 0x1851A0 -> 0x185220 +class zLODTable * zLOD_Get(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1851A0 -> 0x185220 + unsigned int i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00185220 -> 0x001854B0 +*/ +// Range: 0x185220 -> 0x1854B0 +void zLOD_Update(unsigned int percent_update /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x185220 -> 0x1854B0 + class xVec3 * campos; // r5 + unsigned int numUpdates; // r4 + class zLODTable * lod; // r9 + class xModelInstance * model; // r3 + float camdist2; // r4 + float distscale; // r6 + signed int i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001854B0 -> 0x001856F4 +*/ +// Range: 0x1854B0 -> 0x1856F4 +void zLOD_Setup() { + // Blocks + /* anonymous block */ { + // Range: 0x1854B0 -> 0x1856F4 + unsigned int tmpsize; // r29+0x5C + unsigned int i; // r16 + unsigned int j; // r19 + void * data; // r2 + unsigned int count; // r18 + class zLODTable * tableCurr; // r17 + class RpAtomic * model; // r2 + class RpAtomic * model; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00185700 -> 0x00185788 +*/ +// Range: 0x185700 -> 0x185788 +static class xEnt * AddToLODList(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x185700 -> 0x185788 + class zEntDestructObj * destruct; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zLOD.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00185790 -> 0x00185958 +*/ +// Range: 0x185790 -> 0x185958 +static void AddToLODList(class xModelInstance * model /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x185790 -> 0x185958 + unsigned int i; // r6 + unsigned int i; // r9 + class xModelInstance * minst; // r5 + unsigned int numextra; // r3 + float distscale; // r2 + } +} + diff --git a/dwarf/SB/Game/zLasso.cpp b/dwarf/SB/Game/zLasso.cpp new file mode 100644 index 000000000..2546839e7 --- /dev/null +++ b/dwarf/SB/Game/zLasso.cpp @@ -0,0 +1,1506 @@ +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class RwRaster * sLassoRaster; // size: 0x4, address: 0x50FDF4 +static class zLassoGuideList sGuideList[64]; // size: 0x3800, address: 0x5C6E30 +static unsigned int sNumGuideLists; // size: 0x4, address: 0x50FDF8 +static class zLassoGuide * sCurrentGuide; // size: 0x4, address: 0x50FDFC +static class RxObjSpace3DVertex * lnverts; // size: 0x4, address: 0x50FE00 +static signed int negativeHondaX; // size: 0x4, address: 0x50EF34 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class tagiRenderArrays gRenderArr; // size: 0x5280, address: 0x533950 +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class tagiRenderArrays { + // total size: 0x5280 +public: + unsigned short m_index[960]; // offset 0x0, size 0x780 + class RxObjSpace3DVertex m_vertex[480]; // offset 0x780, size 0x4380 + float m_vertexTZ[480]; // offset 0x4B00, size 0x780 +}; +class rxReq { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zLassoGuide { + // total size: 0x48 +public: + class xModelInstance * poly; // offset 0x0, size 0x4 + class xAnimState * lassoAnim; // offset 0x4, size 0x4 + signed int vertMap[16]; // offset 0x8, size 0x40 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zLassoGuideList { + // total size: 0xE0 +public: + class xEnt * target; // offset 0x0, size 0x4 + unsigned int numGuides; // offset 0x4, size 0x4 + class zLassoGuide guide[3]; // offset 0x8, size 0xD8 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AC50 -> 0x0029AE00 +*/ +// Range: 0x29AC50 -> 0x29AE00 +static void bakeMorphAnim(class RpGeometry * geom /* r16 */, void * anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AC50 -> 0x29AE00 + class xMat4x3 mat; // r29+0x740 + class xVec3 tran[64]; // r29+0x440 + class xQuat quat[64]; // r29+0x40 + signed int i; // r3 + signed int j; // r18 + signed int numV; // r17 + class xVec3 * v; // r25 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AE00 -> 0x0029AF68 +*/ +// Range: 0x29AE00 -> 0x29AF68 +static void initVertMap(class zLassoGuide * guide /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AE00 -> 0x29AF68 + signed int center; // r3 + signed int init; // r13 + signed int curr; // r12 + signed int currTri; // r11 + signed int i; // r8 + class RpGeometry * geom; // r3 + signed int numTri; // r10 + class RpTriangle * tris; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AF70 -> 0x0029AF7C +*/ +// Range: 0x29AF70 -> 0x29AF7C +void zLasso_scenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x29AF70 -> 0x29AF7C + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029AF80 -> 0x0029B150 +*/ +// Range: 0x29AF80 -> 0x29B150 +static void nonfizzicalHonda(class zLasso * lasso /* r2 */, class xVec3 * newPoint /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29AF80 -> 0x29B150 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029B150 -> 0x0029B408 +*/ +// Range: 0x29B150 -> 0x29B408 +static void fizzicalHonda(class zLasso * lasso /* r16 */, class xVec3 * newPoint /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29B150 -> 0x29B408 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029B410 -> 0x0029B494 +*/ +// Range: 0x29B410 -> 0x29B494 +void zLasso_ResetTimer(class zLasso * lasso /* r2 */, float interpTime /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29B410 -> 0x29B494 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029B4A0 -> 0x0029B62C +*/ +// Range: 0x29B4A0 -> 0x29B62C +void zLasso_InitTimer(class zLasso * lasso /* r16 */, float interpTime /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29B4A0 -> 0x29B62C + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029B630 -> 0x0029BEE4 +*/ +// Range: 0x29B630 -> 0x29BEE4 +void zLasso_Update(class zLasso * lasso /* r16 */, class xEnt * ent /* r17 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29B630 -> 0x29BEE4 + signed int i; // r6 + class xVec3 newPoint; // r29+0x40 + float interp; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029BEF0 -> 0x0029DC50 +*/ +// Range: 0x29BEF0 -> 0x29DC50 +void zLasso_Render(class zLasso * lasso /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29BEF0 -> 0x29DC50 + signed int i; // r4 + class xVec3 loop[16]; // r29+0x240 + signed int numVerts; // r23 + float arc_length; // r31 + unsigned char shouldUseGuide; // r29+0x130 + class RpGeometry * geom; // r5 + signed int numMorphs; // r8 + signed int mIndx1; // r6 + float interp; // r1 + class RwV3d * m1V; // r3 + class RwV3d * m2V; // r10 + class xVec3 dif; // r29+0x380 + float closestDistSqr; // r29 + float len; // r29+0x390 + class RxObjSpace3DVertex * tmp_pt; // r20 + class xVec3 b1; // r29+0x370 + class xVec3 b2; // r29+0x360 + class xVec3 b3; // r29+0x350 + class xVec3 crossSection[3]; // r29+0x210 + class xVec3 sections[6]; // r29+0x1C0 + signed int currSection; // r17 + signed int lastSection; // r21 + signed int numSections; // r22 + float distSoFar; // r30 + float distTotal; // r29 + float spokeDistIncr; // r28 + unsigned int numVertsSoFar; // r19 + float u; // r29+0x390 + float v; // r6 + float ustep; // r27 + float xDisp; // r26 + float yDisp; // r7 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + signed int shouldRepeat; // r21 + class xMat4x3 rotMatrix; // r29+0x180 + class xVec3 temp; // r29+0x340 + signed int k; // r10 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class xMat4x3 rotMatrix; // r29+0x140 + class xVec3 norm; // r29+0x330 + signed int k; // r29+0x120 + signed int k1; // r29+0x110 + signed int k2; // r4 + signed int k3; // r3 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029DC50 -> 0x0029E1B4 +*/ +// Range: 0x29DC50 -> 0x29E1B4 +void zLasso_InterpToGuide(class zLasso * lasso /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29DC50 -> 0x29E1B4 + class RpGeometry * geom; // r3 + class RwV3d * v; // r6 + signed int numVerts; // r5 + signed int i; // r4 + class xVec3 rad1; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E1C0 -> 0x0029E2C0 +*/ +// Range: 0x29E1C0 -> 0x29E2C0 +void zLasso_SetGuide(class xEnt * ent /* r2 */, class xAnimState * lassoAnim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E1C0 -> 0x29E2C0 + unsigned int i; // r8 + unsigned int j; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E2C0 -> 0x0029E434 +*/ +// Range: 0x29E2C0 -> 0x29E434 +void zLasso_AddGuide(class xEnt * ent /* r2 */, class xAnimState * lassoAnim /* r15 */, class xModelInstance * lassoModel /* r14 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E2C0 -> 0x29E434 + unsigned int i; // r7 + signed int givenSlot; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zLasso.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E440 -> 0x0029E4F8 +*/ +// Range: 0x29E440 -> 0x29E4F8 +void zLasso_Init(class zLasso * lasso /* r17 */, class xModelInstance * model /* r16 */, float x /* r22 */, float y /* r21 */, float z /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x29E440 -> 0x29E4F8 + class RwTexture * tempTexture; // r2 + } +} + diff --git a/dwarf/SB/Game/zLight.cpp b/dwarf/SB/Game/zLight.cpp new file mode 100644 index 000000000..b63400853 --- /dev/null +++ b/dwarf/SB/Game/zLight.cpp @@ -0,0 +1,1472 @@ +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class _zLight * sLight[32]; // size: 0x80, address: 0x522ED0 +static signed int sLightTotal; // size: 0x4, address: 0x50F614 +static class _tagPartition sLightPart; // size: 0x40, address: 0x522F50 +static class zVolume * sPartitionVolume; // size: 0x4, address: 0x50F618 +static signed int gNumTemporaryLights; // size: 0x4, address: 0x50F61C +static class _zLight * gTemporaryLights[32]; // size: 0x80, address: 0x522F90 +void (* sEffectFuncs[18])(class _zLight *, float); // size: 0x48, address: 0x408B00 +void (* sEffectInitFuncs[18])(class _zLight *); // size: 0x48, address: 0x408B50 +static class xVec3 sDefaultShadowVec; // size: 0xC, address: 0x408B98 +class RpWorld * gLightWorld; // size: 0x4, address: 0x50F7EC +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int zLightEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x180940 +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xVolumeAsset { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class _xFColor { + // total size: 0x10 +public: + float r; // offset 0x0, size 0x4 + float g; // offset 0x4, size 0x4 + float b; // offset 0x8, size 0x4 + float a; // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class _zLight : public xBase { + // total size: 0x64 +public: + unsigned int flags; // offset 0x10, size 0x4 + class zLightAsset * tasset; // offset 0x14, size 0x4 + class iLight light; // offset 0x18, size 0x3C + class xBase * attached_to; // offset 0x54, size 0x4 + signed int true_idx; // offset 0x58, size 0x4 + float * reg; // offset 0x5C, size 0x4 + signed int effect_idx; // offset 0x60, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xSurface { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zLightAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned char lightType; // offset 0x8, size 0x1 + unsigned char lightEffect; // offset 0x9, size 0x1 + unsigned char lightPad[2]; // offset 0xA, size 0x2 + unsigned int lightFlags; // offset 0xC, size 0x4 + float lightColor[4]; // offset 0x10, size 0x10 + class xVec3 lightDir; // offset 0x20, size 0xC + float lightConeAngle; // offset 0x2C, size 0x4 + class xSphere lightSphere; // offset 0x30, size 0x10 + unsigned int attachID; // offset 0x40, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagPartLink { + // total size: 0x8 +public: + void * data; // offset 0x0, size 0x4 + class _tagPartLink * next; // offset 0x4, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zVolume : public xVolume { + // total size: 0x14 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class _tagPartSpace { + // total size: 0xC +public: + signed int total; // offset 0x0, size 0x4 + class _tagPartLink head; // offset 0x4, size 0x8 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagPartition { + // total size: 0x40 +public: + class xVec3 min; // offset 0x0, size 0xC + class xVec3 max; // offset 0xC, size 0xC + class xVec3 space_dim; // offset 0x18, size 0xC + signed int total_x; // offset 0x24, size 0x4 + signed int total_y; // offset 0x28, size 0x4 + signed int total_z; // offset 0x2C, size 0x4 + class _tagPartSpace * space; // offset 0x30, size 0x4 + class _tagPartSpace global; // offset 0x34, size 0xC +}; +class xFFX { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class iLight { + // total size: 0x3C +public: + unsigned int type; // offset 0x0, size 0x4 + class RpLight * hw; // offset 0x4, size 0x4 + class xSphere sph; // offset 0x8, size 0x10 + float radius_sq; // offset 0x18, size 0x4 + class _xFColor color; // offset 0x1C, size 0x10 + class xVec3 dir; // offset 0x2C, size 0xC + float coneangle; // offset 0x38, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180590 -> 0x001805C0 +*/ +// Range: 0x180590 -> 0x1805C0 +void zLightOn(class _zLight * zl /* r2 */, signed int on /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180590 -> 0x1805C0 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001805C0 -> 0x00180610 +*/ +// Range: 0x1805C0 -> 0x180610 +void zLightSetVolume(class zVolume * vol /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1805C0 -> 0x180610 + unsigned int lp_id; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180610 -> 0x00180660 +*/ +// Range: 0x180610 -> 0x180660 +void zLightRemoveLocalEnv() { + // Blocks + /* anonymous block */ { + // Range: 0x180610 -> 0x180660 + signed int i; // r6 + class RwLLLink * link; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180660 -> 0x0018073C +*/ +// Range: 0x180660 -> 0x18073C +void zLightAddLocal(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180660 -> 0x18073C + class xVec3 default_light_pos; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180740 -> 0x00180844 +*/ +// Range: 0x180740 -> 0x180844 +void zLightAddLocalEnv() { + // Blocks + /* anonymous block */ { + // Range: 0x180740 -> 0x180844 + signed int i; // r19 + class _zLight * zlight; // r18 + class iLight * light; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180850 -> 0x00180934 +*/ +// Range: 0x180850 -> 0x180934 +void zLightUpdate(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180850 -> 0x180934 + class _zLight * t; // r16 + class xVec3 pos; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180940 -> 0x00180A24 +*/ +// Range: 0x180940 -> 0x180A24 +signed int zLightEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180940 -> 0x180A24 + class _zLight * t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180A30 -> 0x00180A38 +*/ +// Range: 0x180A30 -> 0x180A38 +void zLightLoad(class _zLight * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180A30 -> 0x180A38 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180A40 -> 0x00180A48 +*/ +// Range: 0x180A40 -> 0x180A48 +void zLightSave(class _zLight * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180A40 -> 0x180A48 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180A50 -> 0x00180AC4 +*/ +// Range: 0x180A50 -> 0x180AC4 +void zLightDestroyAll() { + // Blocks + /* anonymous block */ { + // Range: 0x180A50 -> 0x180AC4 + signed int total; // r18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180AD0 -> 0x00180B60 +*/ +// Range: 0x180AD0 -> 0x180B60 +void zLightResolveLinks() { + // Blocks + /* anonymous block */ { + // Range: 0x180AD0 -> 0x180B60 + signed int i; // r16 + class _zLight * zl; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180B60 -> 0x00180D54 +*/ +// Range: 0x180B60 -> 0x180D54 +void zLightInit(class xBase * b /* r17 */, class zLightAsset * tasset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180B60 -> 0x180D54 + class _zLight * t; // r2 + unsigned int itype; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180D60 -> 0x00180D68 +*/ +// Range: 0x180D60 -> 0x180D68 +void zLightInit(void * b /* r2 */, void * tasset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180D60 -> 0x180D68 + } +} + +/* + Compile unit: C:\SB\Game\zLight.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180D70 -> 0x00180E04 +*/ +// Range: 0x180D70 -> 0x180E04 +void zLightResetAll(class xEnv * env /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180D70 -> 0x180E04 + } +} + diff --git a/dwarf/SB/Game/zLightEffect.cpp b/dwarf/SB/Game/zLightEffect.cpp new file mode 100644 index 000000000..66693e17e --- /dev/null +++ b/dwarf/SB/Game/zLightEffect.cpp @@ -0,0 +1,464 @@ +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class iLight { + // total size: 0x3C +public: + unsigned int type; // offset 0x0, size 0x4 + class RpLight * hw; // offset 0x4, size 0x4 + class xSphere sph; // offset 0x8, size 0x10 + float radius_sq; // offset 0x18, size 0x4 + class _xFColor color; // offset 0x1C, size 0x10 + class xVec3 dir; // offset 0x2C, size 0xC + float coneangle; // offset 0x38, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class _zLight : public xBase { + // total size: 0x64 +public: + unsigned int flags; // offset 0x10, size 0x4 + class zLightAsset * tasset; // offset 0x14, size 0x4 + class iLight light; // offset 0x18, size 0x3C + class xBase * attached_to; // offset 0x54, size 0x4 + signed int true_idx; // offset 0x58, size 0x4 + float * reg; // offset 0x5C, size 0x4 + signed int effect_idx; // offset 0x60, size 0x4 +}; +class _xFColor { + // total size: 0x10 +public: + float r; // offset 0x0, size 0x4 + float g; // offset 0x4, size 0x4 + float b; // offset 0x8, size 0x4 + float a; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zLightAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned char lightType; // offset 0x8, size 0x1 + unsigned char lightEffect; // offset 0x9, size 0x1 + unsigned char lightPad[2]; // offset 0xA, size 0x2 + unsigned int lightFlags; // offset 0xC, size 0x4 + float lightColor[4]; // offset 0x10, size 0x10 + class xVec3 lightDir; // offset 0x20, size 0xC + float lightConeAngle; // offset 0x2C, size 0x4 + class xSphere lightSphere; // offset 0x30, size 0x10 + unsigned int attachID; // offset 0x40, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00180E10 -> 0x00181090 +*/ +// Range: 0x180E10 -> 0x181090 +void zLightEffectCauldron(class _zLight * zlight /* r2 */, float seconds /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x180E10 -> 0x181090 + class iLight * l; // r17 + float * reg; // r16 + float amount; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181090 -> 0x001810A0 +*/ +// Range: 0x181090 -> 0x1810A0 +void zLightEffectInitCauldron(class _zLight * zlight /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181090 -> 0x1810A0 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001810A0 -> 0x001810A8 +*/ +// Range: 0x1810A0 -> 0x1810A8 +void zLightEffectRandomColFast() { + // Blocks + /* anonymous block */ { + // Range: 0x1810A0 -> 0x1810A8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001810B0 -> 0x001810B8 +*/ +// Range: 0x1810B0 -> 0x1810B8 +void zLightEffectRandomCol() { + // Blocks + /* anonymous block */ { + // Range: 0x1810B0 -> 0x1810B8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001810C0 -> 0x001810C8 +*/ +// Range: 0x1810C0 -> 0x1810C8 +void zLightEffectRandomColSlow() { + // Blocks + /* anonymous block */ { + // Range: 0x1810C0 -> 0x1810C8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001810D0 -> 0x001810D8 +*/ +// Range: 0x1810D0 -> 0x1810D8 +void zLightEffectHalfDimFast() { + // Blocks + /* anonymous block */ { + // Range: 0x1810D0 -> 0x1810D8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001810E0 -> 0x001810E8 +*/ +// Range: 0x1810E0 -> 0x1810E8 +void zLightEffectHalfDim() { + // Blocks + /* anonymous block */ { + // Range: 0x1810E0 -> 0x1810E8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001810F0 -> 0x001810F8 +*/ +// Range: 0x1810F0 -> 0x1810F8 +void zLightEffectHalfDimSlow() { + // Blocks + /* anonymous block */ { + // Range: 0x1810F0 -> 0x1810F8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181100 -> 0x00181108 +*/ +// Range: 0x181100 -> 0x181108 +void zLightEffectDimFast() { + // Blocks + /* anonymous block */ { + // Range: 0x181100 -> 0x181108 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181110 -> 0x00181118 +*/ +// Range: 0x181110 -> 0x181118 +void zLightEffectDim() { + // Blocks + /* anonymous block */ { + // Range: 0x181110 -> 0x181118 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181120 -> 0x00181128 +*/ +// Range: 0x181120 -> 0x181128 +void zLightEffectDimSlow() { + // Blocks + /* anonymous block */ { + // Range: 0x181120 -> 0x181128 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181130 -> 0x00181138 +*/ +// Range: 0x181130 -> 0x181138 +void zLightEffectStrobeFast() { + // Blocks + /* anonymous block */ { + // Range: 0x181130 -> 0x181138 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181140 -> 0x00181148 +*/ +// Range: 0x181140 -> 0x181148 +void zLightEffectStrobe() { + // Blocks + /* anonymous block */ { + // Range: 0x181140 -> 0x181148 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181150 -> 0x00181158 +*/ +// Range: 0x181150 -> 0x181158 +void zLightEffectStrobeSlow() { + // Blocks + /* anonymous block */ { + // Range: 0x181150 -> 0x181158 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181160 -> 0x0018117C +*/ +// Range: 0x181160 -> 0x18117C +void zLightEffectFlickerErratic(class _zLight * zlight /* r2 */, float seconds /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181160 -> 0x18117C + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181180 -> 0x001811A4 +*/ +// Range: 0x181180 -> 0x1811A4 +void zLightEffectFlickerSlow(class _zLight * zlight /* r2 */, float seconds /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181180 -> 0x1811A4 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001811B0 -> 0x001811D4 +*/ +// Range: 0x1811B0 -> 0x1811D4 +void zLightEffectFlicker(class _zLight * zlight /* r2 */, float seconds /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1811B0 -> 0x1811D4 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001811E0 -> 0x001814D8 +*/ +// Range: 0x1811E0 -> 0x1814D8 +static void EffectFlicker(class _zLight * zlight /* r18 */, float seconds /* r29+0x50 */, float min /* r21 */, float rnd /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1811E0 -> 0x1814D8 + class iLight * l; // r17 + float * reg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001814E0 -> 0x001814F0 +*/ +// Range: 0x1814E0 -> 0x1814F0 +void zLightEffectInitFlicker(class _zLight * zlight /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1814E0 -> 0x1814F0 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001814F0 -> 0x001814F8 +*/ +// Range: 0x1814F0 -> 0x1814F8 +void zLightEffectInitRandomCol() { + // Blocks + /* anonymous block */ { + // Range: 0x1814F0 -> 0x1814F8 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181500 -> 0x00181508 +*/ +// Range: 0x181500 -> 0x181508 +void zLightEffectInitHalfDim() { + // Blocks + /* anonymous block */ { + // Range: 0x181500 -> 0x181508 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181510 -> 0x00181518 +*/ +// Range: 0x181510 -> 0x181518 +void zLightEffectInitDim() { + // Blocks + /* anonymous block */ { + // Range: 0x181510 -> 0x181518 + } +} + +/* + Compile unit: C:\SB\Game\zLightEffect.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181520 -> 0x00181528 +*/ +// Range: 0x181520 -> 0x181528 +void zLightEffectInitStrobe() { + // Blocks + /* anonymous block */ { + // Range: 0x181520 -> 0x181528 + } +} + diff --git a/dwarf/SB/Game/zLightning.cpp b/dwarf/SB/Game/zLightning.cpp new file mode 100644 index 000000000..946237493 --- /dev/null +++ b/dwarf/SB/Game/zLightning.cpp @@ -0,0 +1,2727 @@ +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zLightning * sLightning[48]; // size: 0xC0, address: 0x523010 +static class zParEmitter * sSparkEmitter; // size: 0x4, address: 0x50F620 +static class RwRaster * sLightningRaster; // size: 0x4, address: 0x50F624 +static class xFuncPiece sLFuncX[10]; // size: 0x140, address: 0x5230D0 +static class xFuncPiece sLFuncY[10]; // size: 0x140, address: 0x523210 +static class xFuncPiece sLFuncZ[10]; // size: 0x140, address: 0x523350 +static class xVec3 sLFuncVal[10]; // size: 0x78, address: 0x523490 +static class xVec3 sLFuncSlope[10][2]; // size: 0xF0, address: 0x523510 +static float sLFuncEnd[10]; // size: 0x28, address: 0x523600 +static float sLFuncJerkFreq; // size: 0x4, address: 0x50E764 +static float sLFuncJerkTime; // size: 0x4, address: 0x50F628 +static float sLFuncShift; // size: 0x4, address: 0x50E768 +static float sLFuncMaxPStep; // size: 0x4, address: 0x50E76C +static float sLFuncMinPStep; // size: 0x4, address: 0x50E770 +static float sLFuncMinScale; // size: 0x4, address: 0x50E774 +static float sLFuncMaxScale; // size: 0x4, address: 0x50E778 +static float sLFuncScalePerLength; // size: 0x4, address: 0x50E77C +static float sLFuncMinSpan; // size: 0x4, address: 0x50E780 +static float sLFuncSpanPerLength; // size: 0x4, address: 0x50E784 +static float sLFuncSlopeRange; // size: 0x4, address: 0x50E788 +static float sLFuncUVSpeed; // size: 0x4, address: 0x50E78C +static float sLFuncUVOffset; // size: 0x4, address: 0x50F62C +class _tagLightningAdd gLightningTweakAddInfo; // size: 0x40, address: 0x523630 +static class xVec3 sTweakStart; // size: 0xC, address: 0x523670 +static class xVec3 sTweakEnd; // size: 0xC, address: 0x523680 +static class tweak_callback sLightningStartCB; // size: 0x28, address: 0x523690 +static class tweak_callback sLightningChangeCB; // size: 0x28, address: 0x5236C0 +char * lightning_type_names[4]; // size: 0x10, address: 0x0 +static unsigned char cSparkColors[24]; // size: 0x18, address: 0x0 +static class xVec3 sPoint[5]; // size: 0x3C, address: 0x0 +static float sSize[5]; // size: 0x14, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class tagiRenderArrays gRenderArr; // size: 0x5280, address: 0x533950 +class iColor_tag g_WHITE; // size: 0x4, address: 0x4F80A0 +class _tagxPad * gDebugPad; // size: 0x4, address: 0x50FA68 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +void lightningTweakChangeType(class tweak_info &); // size: 0x0, address: 0x184F10 +void lightningTweakStart(class tweak_info &); // size: 0x0, address: 0x184E50 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class xFuncPiece { + // total size: 0x20 +public: + float coef[5]; // offset 0x0, size 0x14 + float end; // offset 0x14, size 0x4 + signed int order; // offset 0x18, size 0x4 + class xFuncPiece * next; // offset 0x1C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class rxReq { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class tagiRenderArrays { + // total size: 0x5280 +public: + unsigned short m_index[960]; // offset 0x0, size 0x780 + class RxObjSpace3DVertex m_vertex[480]; // offset 0x780, size 0x4380 + float m_vertexTZ[480]; // offset 0x4B00, size 0x780 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xFFX { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181530 -> 0x00181C64 +*/ +// Range: 0x181530 -> 0x181C64 +void zLightningModifyEndpoints(class zLightning * l /* r18 */, class xVec3 * start /* r17 */, class xVec3 * end /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181530 -> 0x181C64 + signed int i; // r8 + class xVec3 dir; // r29+0x70 + signed int j; // r3 + signed int zeusOnStraightPoint; // r7 + float pos; // r4 + float inc; // r3 + signed int j; // r11 + float scalar; // r11 + class xVec3 * dir; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181C70 -> 0x00181C84 +*/ +// Range: 0x181C70 -> 0x181C84 +void zLightningKill(class zLightning * l /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181C70 -> 0x181C84 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181C90 -> 0x00181CC0 +*/ +// Range: 0x181C90 -> 0x181CC0 +void zLightningShow(class zLightning * l /* r2 */, signed int show /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181C90 -> 0x181CC0 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181CC0 -> 0x00181D5C +*/ +// Range: 0x181CC0 -> 0x181D5C +void zLightningRender() { + // Blocks + /* anonymous block */ { + // Range: 0x181CC0 -> 0x181D5C + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00181D60 -> 0x00182E00 +*/ +// Range: 0x181D60 -> 0x182E00 +static void RenderLightning(class zLightning * l /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x181D60 -> 0x182E00 + class xMat4x3 * cam; // r20 + float alphaf; // r2 + unsigned char alphau8; // r22 + signed int i; // r29+0x100 + unsigned int verts; // r16 + class xVec3 nextN; // r29+0x120 + class xVec3 next; // r29+0x110 + float len; // r29+0x130 + signed int lastPoint; // r29+0xF0 + class RwRGBA * _col; // r5 + class RwRGBA * _col; // r4 + signed int backwards; // r3 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + float thicknessScale; // r27 + class RwRGBA * _col; // r5 + class RwRGBA * _col; // r4 + signed int backwards; // r4 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RxObjSpace3DVertex sStripVert[128]; // @ 0x005236F0 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00182E00 -> 0x00183594 +*/ +// Range: 0x182E00 -> 0x183594 +static void zLightningFunc_Render(class zLightning * l /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x182E00 -> 0x183594 + float percent; // r26 + float pstep; // r25 + class xVec3 val[2]; // r29+0x100 + float param[2]; // r29+0x138 + class xFuncPiece * xI[2]; // r29+0x130 + class xFuncPiece * yI[2]; // r29+0x128 + class xFuncPiece * zI[2]; // r29+0x120 + signed int i; // r7 + class xVec3 drawAxis[2]; // r29+0xE0 + class RxObjSpace3DVertex * verts[2]; // r29+0x118 + unsigned int numVerts; // r29+0xD0 + signed int u; // r29+0xC0 + unsigned char aVal; // r6 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + float newParam; // r2 + float p2; // r10 + float p3; // r9 + float w1; // r24 + float w2; // r23 + float scalar; // r4 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001835A0 -> 0x001839F4 +*/ +// Range: 0x1835A0 -> 0x1839F4 +void zLightningUpdate(float seconds /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1835A0 -> 0x1839F4 + signed int i; // r17 + signed int picker; // r21 + signed int j; // r4 + float prevEnd; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00183A00 -> 0x0018404C +*/ +// Range: 0x183A00 -> 0x18404C +static void UpdateLightning(class zLightning * l /* r20 */, float seconds /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x183A00 -> 0x18404C + signed int i; // r17 + float full; // r21 + float half; // r29+0x260 + float sc1; // r4 + class xVec3 dir; // r29+0x250 + float full; // r22 + float half; // r29+0x260 + signed int i; // r19 + class xMat3x3 mat3; // r29+0x210 + class xVec3 vec; // r29+0x240 + float sc2; // r21 + float sc1; // r2 + class xParEmitterCustomSettings info; // r29+0xA0 + signed int i; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00184050 -> 0x001848B8 +*/ +// Range: 0x184050 -> 0x1848B8 +class zLightning * zLightningAdd(class _tagLightningAdd * add /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x184050 -> 0x1848B8 + float currot; // r20 + signed int zeusOnStraightPoint; // r17 + class xVec3 dir; // r29+0x70 + signed int j; // r5 + float pos; // r12 + float inc; // r11 + signed int i; // r8 + signed int j; // r12 + float scalar; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001848C0 -> 0x00184E4C +*/ +// Range: 0x1848C0 -> 0x184E4C +void zLightningInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1848C0 -> 0x184E4C + signed int i; // r3 + class RwTexture * tex; // r2 + signed int j; // r4 + float prevEnd; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00184E50 -> 0x00184F10 +*/ +// Range: 0x184E50 -> 0x184F10 +static void lightningTweakStart() { + // Blocks + /* anonymous block */ { + // Range: 0x184E50 -> 0x184F10 + class xVec3 s; // r29+0x20 + class xVec3 e; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zLightning.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00184F10 -> 0x00184F18 +*/ +// Range: 0x184F10 -> 0x184F18 +static void lightningTweakChangeType() { + // Blocks + /* anonymous block */ { + // Range: 0x184F10 -> 0x184F18 + } +} + diff --git a/dwarf/SB/Game/zMain.cpp b/dwarf/SB/Game/zMain.cpp new file mode 100644 index 000000000..9ab5437cc --- /dev/null +++ b/dwarf/SB/Game/zMain.cpp @@ -0,0 +1,2757 @@ +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static class _zHipDepend sHipDependTable[1]; // size: 0x8, address: 0x0 +unsigned int RlePalette[101]; // size: 0x194, address: 0x408BB0 +unsigned char RleData[52247]; // size: 0xCC17, address: 0x408D50 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xGlobals * xglobals; // size: 0x4, address: 0x50E790 +signed int gBuildNumber; // size: 0x4, address: 0x0 +unsigned int gEE2BuildNumber; // size: 0x4, address: 0x0 +static signed int sShowMenuOnBoot; // size: 0x4, address: 0x50E794 +static class st_SERIAL_PERCID_SIZE g_xser_sizeinfo[3]; // size: 0x18, address: 0x415970 +float gSkipTimeCutscene; // size: 0x4, address: 0x50E798 +float gSkipTimeFlythrough; // size: 0x4, address: 0x50E79C +static signed int percentageDone; // size: 0x4, address: 0x50F640 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +signed int bad_card_needed; // size: 0x4, address: 0x50F778 +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +unsigned int gSoak; // size: 0x4, address: 0x50F528 +unsigned int gGameSfxReport; // size: 0x4, address: 0x50F4EC +float zcam_overrot_max; // size: 0x4, address: 0x50E5E8 +float zcam_overrot_mid; // size: 0x4, address: 0x50E5E4 +float zcam_overrot_min; // size: 0x4, address: 0x50E5E0 +float zcam_wall_pitch; // size: 0x4, address: 0x50E5B8 +float zcam_highbounce_pitch; // size: 0x4, address: 0x50E5DC +float zcam_below_pitch; // size: 0x4, address: 0x50E5D0 +float zcam_above_pitch; // size: 0x4, address: 0x50E5C4 +float zcam_far_pitch; // size: 0x4, address: 0x50E5AC +float zcam_near_pitch; // size: 0x4, address: 0x50E5A0 +float zcam_overrot_tmanual; // size: 0x4, address: 0x50E600 +float zcam_overrot_velmax; // size: 0x4, address: 0x50E5FC +float zcam_overrot_velmin; // size: 0x4, address: 0x50E5F8 +float zcam_overrot_tend; // size: 0x4, address: 0x50E5F4 +float zcam_overrot_tstart; // size: 0x4, address: 0x50E5F0 +float zcam_overrot_rate; // size: 0x4, address: 0x50E5EC +float zcam_wall_h; // size: 0x4, address: 0x50E5B4 +float zcam_wall_d; // size: 0x4, address: 0x50E5B0 +float zcam_highbounce_h; // size: 0x4, address: 0x50E5D8 +float zcam_highbounce_d; // size: 0x4, address: 0x50E5D4 +float zcam_below_h; // size: 0x4, address: 0x50E5CC +float zcam_below_d; // size: 0x4, address: 0x50E5C8 +float zcam_above_h; // size: 0x4, address: 0x50E5C0 +float zcam_above_d; // size: 0x4, address: 0x50E5BC +float zcam_far_h; // size: 0x4, address: 0x50E5A8 +float zcam_far_d; // size: 0x4, address: 0x50E5A4 +float zcam_near_h; // size: 0x4, address: 0x50E59C +float zcam_near_d; // size: 0x4, address: 0x50E598 +float zcam_pad_pitch_scale; // size: 0x4, address: 0x50E594 +float zcam_pad_pyaw_scale; // size: 0x4, address: 0x50E590 +float xcam_collis_stiffness; // size: 0x4, address: 0x50E824 +float xcam_collis_radius; // size: 0x4, address: 0x50E820 +class _tagxPad * gDebugPad; // size: 0x4, address: 0x50FA68 +void zMainMemLvlChkCB(); // size: 0x0, address: 0x187A40 +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xIniFile { + // total size: 0x214 +public: + signed int NumValues; // offset 0x0, size 0x4 + signed int NumSections; // offset 0x4, size 0x4 + class xIniValue * Values; // offset 0x8, size 0x4 + class xIniSection * Sections; // offset 0xC, size 0x4 + void * mem; // offset 0x10, size 0x4 + char name[256]; // offset 0x14, size 0x100 + char pathname[256]; // offset 0x114, size 0x100 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +enum eStartupErrors { + eNoError = 0, + eNoFormat = 1, + eDamagedCard = 2, + eWrongDevice = 3, + eNoCards = 4, + eCorruptFile = 5, + eNoController = 6, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xFFX { + // total size: 0x0 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class _zHipDepend { + // total size: 0x8 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned int dependID; // offset 0x4, size 0x4 +}; +class xIniValue { + // total size: 0x8 +public: + char * tok; // offset 0x0, size 0x4 + char * val; // offset 0x4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xIniSection { + // total size: 0xC +public: + char * sec; // offset 0x0, size 0x4 + signed int first; // offset 0x4, size 0x4 + signed int count; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class st_SERIAL_PERCID_SIZE { + // total size: 0x8 +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int needsize; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00185960 -> 0x00185A64 +*/ +// Range: 0x185960 -> 0x185A64 +static void zMainLoadFontHIP() { + // Blocks + /* anonymous block */ { + // Range: 0x185960 -> 0x185A64 + signed long t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00185A70 -> 0x001861E4 +*/ +// Range: 0x185A70 -> 0x1861E4 +void zMainMemCardSpaceQuery() { + // Blocks + /* anonymous block */ { + // Range: 0x185A70 -> 0x1861E4 + signed int bytesNeeded; // r29+0xCC + signed int availOnDisk; // r29+0xC8 + signed int neededFiles; // r29+0xC4 + signed int do_chk; // r16 + signed int fullCard; // r30 + unsigned char formatInProgress; // r21 + unsigned char formatFailed; // r20 + enum eStartupErrors startupError; // r19 + signed int status; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001861F0 -> 0x00186430 +*/ +// Range: 0x1861F0 -> 0x186430 +void zMainFirstScreen(signed int mode /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1861F0 -> 0x186430 + class RwCamera * cam; // r18 + class RwRGBA bg; // r29+0x6C + signed int i; // r17 + signed int vbl; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00186430 -> 0x00186708 +*/ +// Range: 0x186430 -> 0x186708 +static void zMainReadINI() { + // Blocks + /* anonymous block */ { + // Range: 0x186430 -> 0x186708 + char * str; // r2 + void * buf; // r16 + unsigned int size; // r29+0x4C + class xIniFile * ini; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00186710 -> 0x00187A38 +*/ +// Range: 0x186710 -> 0x187A38 +static void zMainLoop() { + // Blocks + /* anonymous block */ { + // Range: 0x186710 -> 0x187A38 + signed long t; // r16 + unsigned int * preinit; // r16 + class RpAtomic * modl; // r2 + class RpAtomic * modl; // r2 + class RpAtomic * modl; // r2 + unsigned int newGameSceneID; // r16 + unsigned int iconDataSize; // r29+0x87C + void * iconData; // r2 + unsigned int gameSceneID; // @ 0x0050F644 + unsigned int menuModeID; // @ 0x0050E7A0 + signed char @5697; // @ 0x0050F648 + unsigned int preinit_bubble_matfx[6]; // @ 0x00415B90 + unsigned int preinit_shiny_models[8]; // @ 0x00415B70 + unsigned int preinit_ADC_models[10]; // @ 0x00415B40 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00187A40 -> 0x00187A48 +*/ +// Range: 0x187A40 -> 0x187A48 +static void zMainMemLvlChkCB() { + // Blocks + /* anonymous block */ { + // Range: 0x187A40 -> 0x187A48 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00187A50 -> 0x00189C20 +*/ +// Range: 0x187A50 -> 0x189C20 +static void zMainParseINIGlobals(class xIniFile * ini /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x187A50 -> 0x189C20 + unsigned int use_degrees; // r16 + float fbuf[4]; // @ 0x0052E960 + float fbuf[4]; // @ 0x00415B30 + float fbuf[4]; // @ 0x00415B20 + float fbuf[4]; // @ 0x00415B10 + float fbuf[4]; // @ 0x00415B00 + float fbuf[3]; // @ 0x00415AE8 + float fbuf[3]; // @ 0x00415AD8 + float fbuf[3]; // @ 0x00415AC8 + float fbuf[6]; // @ 0x00415AB0 + float fbuf[4]; // @ 0x0052E950 + float fbuf[4]; // @ 0x00415AA0 + float fbuf[4]; // @ 0x00415A90 + float fbuf[4]; // @ 0x00415A80 + float fbuf[4]; // @ 0x00415A70 + float fbuf[3]; // @ 0x00415A58 + float fbuf[3]; // @ 0x00415A48 + float fbuf[3]; // @ 0x00415A38 + float fbuf[6]; // @ 0x00415A20 + float fbuf[4]; // @ 0x0052E940 + float fbuf[4]; // @ 0x00415A10 + float fbuf[4]; // @ 0x00415A00 + float fbuf[4]; // @ 0x004159F0 + float fbuf[4]; // @ 0x004159E0 + float fbuf[3]; // @ 0x004159C8 + float fbuf[3]; // @ 0x004159B8 + float fbuf[3]; // @ 0x004159A8 + float fbuf[6]; // @ 0x00415990 + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00189C20 -> 0x00189C4C +*/ +// Range: 0x189C20 -> 0x189C4C +static void zMainOutputMgrSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x189C20 -> 0x189C4C + } +} + +/* + Compile unit: C:\SB\Game\zMain.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00189C50 -> 0x0018A304 +*/ +// Range: 0x189C50 -> 0x18A304 +void main(signed int argc /* r19 */, char * * argv /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x189C50 -> 0x18A304 + unsigned int options; // r18 + signed int i; // r17 + } +} + diff --git a/dwarf/SB/Game/zMenu.cpp b/dwarf/SB/Game/zMenu.cpp new file mode 100644 index 000000000..50e4f0e62 --- /dev/null +++ b/dwarf/SB/Game/zMenu.cpp @@ -0,0 +1,2498 @@ +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +unsigned char menu_fmv_played; // size: 0x1, address: 0x50F64C +static signed int sFirstBoot; // size: 0x4, address: 0x50E7A4 +static signed int logoTmr; // size: 0x4, address: 0x0 +static float time_elapsed; // size: 0x4, address: 0x50E7A8 +static float time_last; // size: 0x4, address: 0x50F650 +static float time_current; // size: 0x4, address: 0x50F654 +static signed long t1; // size: 0x4, address: 0x0 +static unsigned int sPlayerMarkerStartID; // size: 0x4, address: 0x0 +static unsigned int sPlayerMarkerStartCamID; // size: 0x4, address: 0x0 +static unsigned int s_dbloop_elaptick; // size: 0x4, address: 0x0 +static float s_dbloop_elapsec; // size: 0x4, address: 0x0 +static float s_dbloop_fps; // size: 0x4, address: 0x0 +static float sAttractMode_timer; // size: 0x4, address: 0x50F658 +static signed int promptSel; // size: 0x4, address: 0x0 +static signed int card; // size: 0x4, address: 0x50F65C +static signed int var; // size: 0x4, address: 0x0 +static signed int fullCard; // size: 0x4, address: 0x0 +static signed int sInMenu; // size: 0x4, address: 0x50F660 +static float holdTmr; // size: 0x4, address: 0x50E7AC +static char corruptFiles[3][64]; // size: 0xC0, address: 0x0 +static signed int corruptFileCount; // size: 0x4, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +class _zEnv * gCurEnv; // size: 0x4, address: 0x50F704 +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class st_XSAVEGAME_DATA { + // total size: 0x0 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class rxReq { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018A310 -> 0x0018A318 +*/ +// Range: 0x18A310 -> 0x18A318 +signed int zMenuIsFirstBoot() { + // Blocks + /* anonymous block */ { + // Range: 0x18A310 -> 0x18A318 + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018A320 -> 0x0018A32C +*/ +// Range: 0x18A320 -> 0x18A32C +unsigned int zMenuGetBadCard() { + // Blocks + /* anonymous block */ { + // Range: 0x18A320 -> 0x18A32C + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018A330 -> 0x0018A640 +*/ +// Range: 0x18A330 -> 0x18A640 +signed int zMenuCardCheckStartup(signed int * bytesNeeded /* r20 */, signed int * availOnDisk /* r19 */, signed int * neededFiles /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18A330 -> 0x18A640 + class st_XSAVEGAME_DATA * ldinst; // r17 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x7C + signed int rc; // r2 + signed int tgtslot; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018A640 -> 0x0018A710 +*/ +// Range: 0x18A640 -> 0x18A710 +static unsigned int zMenuUpdateMode() { + // Blocks + /* anonymous block */ { + // Range: 0x18A640 -> 0x18A710 + unsigned int retVal; // r16 + float elapsed1; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018A710 -> 0x0018ADF8 +*/ +// Range: 0x18A710 -> 0x18ADF8 +unsigned int zMenuLoop() { + // Blocks + /* anonymous block */ { + // Range: 0x18A710 -> 0x18ADF8 + unsigned int s; // r29+0x4C + class iColor_tag black; // r29+0x48 + class iColor_tag clear; // r29+0x44 + signed int ostrich_delay; // r17 + signed int draw_black; // r16 + signed int ss; // r2 + class xEnt * title1; // r18 + class xEnt * title2; // r2 + char * src; // r2 + char * tgt; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AE00 -> 0x0018AEAC +*/ +// Range: 0x18AE00 -> 0x18AEAC +void zMenuSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x18AE00 -> 0x18AEAC + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AEB0 -> 0x0018AEEC +*/ +// Range: 0x18AEB0 -> 0x18AEEC +void zMenuExit() { + // Blocks + /* anonymous block */ { + // Range: 0x18AEB0 -> 0x18AEEC + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AEF0 -> 0x0018AF80 +*/ +// Range: 0x18AEF0 -> 0x18AF80 +void zMenuInit(unsigned int theSceneID /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18AEF0 -> 0x18AF80 + } +} + +/* + Compile unit: C:\SB\Game\zMenu.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AF80 -> 0x0018AF88 +*/ +// Range: 0x18AF80 -> 0x18AF88 +signed int zMenuRunning() { + // Blocks + /* anonymous block */ { + // Range: 0x18AF80 -> 0x18AF88 + } +} + diff --git a/dwarf/SB/Game/zMovePoint.cpp b/dwarf/SB/Game/zMovePoint.cpp new file mode 100644 index 000000000..99b468384 --- /dev/null +++ b/dwarf/SB/Game/zMovePoint.cpp @@ -0,0 +1,2391 @@ +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class zMovePoint * g_mvpt_list; // size: 0x4, address: 0x50F664 +static signed int g_mvpt_cnt; // size: 0x4, address: 0x50F668 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int MVPT_dflt_chklos(void *, class xVec3 *, class zMovePoint *); // size: 0x0, address: 0x0 +signed int zMovePointEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x18AFC0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xSerial { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xSpline3 { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AF90 -> 0x0018AF98 +*/ +// Range: 0x18AF90 -> 0x18AF98 +float zMovePointGetDelay(class zMovePoint * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18AF90 -> 0x18AF98 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AFA0 -> 0x0018AFA8 +*/ +// Range: 0x18AFA0 -> 0x18AFA8 +class xVec3 * zMovePointGetPos(class zMovePoint * m /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18AFA0 -> 0x18AFA8 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AFB0 -> 0x0018AFB8 +*/ +// Range: 0x18AFB0 -> 0x18AFB8 +float zMovePointGetNext(class zMovePoint * current /* r2 */, class zMovePoint * prev /* r2 */, class zMovePoint * * next /* r2 */, class xVec3 * hdng /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18AFB0 -> 0x18AFB8 + float dist; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018AFC0 -> 0x0018B080 +*/ +// Range: 0x18AFC0 -> 0x18B080 +signed int zMovePointEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18AFC0 -> 0x18B080 + class zMovePoint * m; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B080 -> 0x0018B088 +*/ +// Range: 0x18B080 -> 0x18B088 +void zMovePointLoad(class zMovePoint * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B080 -> 0x18B088 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B090 -> 0x0018B098 +*/ +// Range: 0x18B090 -> 0x18B098 +void zMovePointSave(class zMovePoint * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B090 -> 0x18B098 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B0A0 -> 0x0018B0E8 +*/ +// Range: 0x18B0A0 -> 0x18B0E8 +class zMovePoint * zMovePoint_From_xAssetID(unsigned int aid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B0A0 -> 0x18B0E8 + class zMovePoint * da_mvpt; // r2 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B0F0 -> 0x0018B0F8 +*/ +// Range: 0x18B0F0 -> 0x18B0F8 +void zMovePointSetup(class zMovePoint * mvpt /* r2 */, class zScene * scn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B0F0 -> 0x18B0F8 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B100 -> 0x0018B118 +*/ +// Range: 0x18B100 -> 0x18B118 +class zMovePoint * zMovePoint_GetInst(signed int n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B100 -> 0x18B118 + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B120 -> 0x0018B18C +*/ +// Range: 0x18B120 -> 0x18B18C +void zMovePointInit(class zMovePoint * m /* r16 */, class xMovePointAsset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B120 -> 0x18B18C + } +} + +/* + Compile unit: C:\SB\Game\zMovePoint.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B190 -> 0x0018B1E8 +*/ +// Range: 0x18B190 -> 0x18B1E8 +class zMovePoint * zMovePoint_GetMemPool(signed int cnt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B190 -> 0x18B1E8 + } +} + diff --git a/dwarf/SB/Game/zMusic.cpp b/dwarf/SB/Game/zMusic.cpp new file mode 100644 index 000000000..5935ceaac --- /dev/null +++ b/dwarf/SB/Game/zMusic.cpp @@ -0,0 +1,2235 @@ +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static unsigned int sMusicPaused; // size: 0x4, address: 0x50F66C +static unsigned int sMusicSoundID[24][2]; // size: 0xC0, address: 0x52E970 +static signed int sMusicLastEnum[2]; // size: 0x8, address: 0x50F670 +static float sMusicTimer[2]; // size: 0x8, address: 0x50F678 +static class zMusicSituation * sMusicQueueData[2]; // size: 0x8, address: 0x50F680 +static class zMusicSituation sMusicInfo[8]; // size: 0x160, address: 0x415BB0 +static class zMusicTrackInfo sMusicTrack[2]; // size: 0x28, address: 0x52EA30 +static class /* @class */ { + // total size: 0x14 +public: + float cur; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float inc; // offset 0x8, size 0x4 + unsigned int adjusted[2]; // offset 0xC, size 0x8 +} volume; // size: 0x14, address: 0x52EA60 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class /* @class */ { + // total size: 0x14 +public: + float cur; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float inc; // offset 0x8, size 0x4 + unsigned int adjusted[2]; // offset 0xC, size 0x8 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zMusicSituation { + // total size: 0x2C +public: + signed int track; // offset 0x0, size 0x4 + unsigned int priority; // offset 0x4, size 0x4 + unsigned int countMax; // offset 0x8, size 0x4 + float delay; // offset 0xC, size 0x4 + float punchDelay; // offset 0x10, size 0x4 + float elapsedTime; // offset 0x14, size 0x4 + unsigned int count; // offset 0x18, size 0x4 + unsigned int sndid; // offset 0x1C, size 0x4 + signed int situation; // offset 0x20, size 0x4 + signed int music_enum; // offset 0x24, size 0x4 + signed int game_state; // offset 0x28, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zMusicTrackInfo { + // total size: 0x14 +public: + unsigned int snd_id; // offset 0x0, size 0x4 + unsigned int loop; // offset 0x4, size 0x4 + class zMusicSituation * situation; // offset 0x8, size 0x4 + unsigned int assetID; // offset 0xC, size 0x4 + float lastVol; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xFFX { + // total size: 0x0 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B1F0 -> 0x0018B228 +*/ +// Range: 0x18B1F0 -> 0x18B228 +void zMusicReset() { + // Blocks + /* anonymous block */ { + // Range: 0x18B1F0 -> 0x18B228 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B230 -> 0x0018B280 +*/ +// Range: 0x18B230 -> 0x18B280 +void zMusicSetVolume(float vol /* r29 */, float delay /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B230 -> 0x18B280 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B280 -> 0x0018B354 +*/ +// Range: 0x18B280 -> 0x18B354 +void zMusicUnpause(signed int kill /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B280 -> 0x18B354 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B360 -> 0x0018B3CC +*/ +// Range: 0x18B360 -> 0x18B3CC +void zMusicPause() { + // Blocks + /* anonymous block */ { + // Range: 0x18B360 -> 0x18B3CC + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B3D0 -> 0x0018B434 +*/ +// Range: 0x18B3D0 -> 0x18B434 +void zMusicKill() { + // Blocks + /* anonymous block */ { + // Range: 0x18B3D0 -> 0x18B434 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B440 -> 0x0018B750 +*/ +// Range: 0x18B440 -> 0x18B750 +void zMusicUpdate(float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B440 -> 0x18B750 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B750 -> 0x0018B878 +*/ +// Range: 0x18B750 -> 0x18B878 +void zMusicNotifyEvent(float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B750 -> 0x18B878 + class zMusicSituation * s; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B880 -> 0x0018B930 +*/ +// Range: 0x18B880 -> 0x18B930 +void zMusicNotify(signed int situation /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B880 -> 0x18B930 + class zMusicSituation * s; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018B930 -> 0x0018BBCC +*/ +// Range: 0x18B930 -> 0x18BBCC +static signed int zMusicDo(signed int track /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18B930 -> 0x18BBCC + signed int snd_enum; // r21 + float vol; // r20 + float pitch; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018BBD0 -> 0x0018BCE4 +*/ +// Range: 0x18BBD0 -> 0x18BCE4 +static signed int getCurrLevelMusicEnum() { + // Blocks + /* anonymous block */ { + // Range: 0x18BBD0 -> 0x18BCE4 + signed int snd_enum; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018BCF0 -> 0x0018C0E8 +*/ +// Range: 0x18BCF0 -> 0x18C0E8 +void zMusicInit() { + // Blocks + /* anonymous block */ { + // Range: 0x18BCF0 -> 0x18C0E8 + } +} + +/* + Compile unit: C:\SB\Game\zMusic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C0F0 -> 0x0018C14C +*/ +// Range: 0x18C0F0 -> 0x18C14C +void zMusicRefreshVolume() { + // Blocks + /* anonymous block */ { + // Range: 0x18C0F0 -> 0x18C14C + signed int i; // r17 + } +} + diff --git a/dwarf/SB/Game/zNPCFXCinematic.cpp b/dwarf/SB/Game/zNPCFXCinematic.cpp new file mode 100644 index 000000000..35e3f0b50 --- /dev/null +++ b/dwarf/SB/Game/zNPCFXCinematic.cpp @@ -0,0 +1,5412 @@ +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class NCINEntry g_JF01_cin_fodder[7]; // size: 0x32C, address: 0x4E46F0 +static class NCINEntry g_RB01_cin_fodBomb[1]; // size: 0x74, address: 0x0 +static class NCINEntry g_RB01_cin_fodBzzt[1]; // size: 0x74, address: 0x0 +static class NCINEntry g_RB01_cin_chomper[1]; // size: 0x74, address: 0x0 +static class NCINEntry g_JF01_cin_hammer[8]; // size: 0x3A0, address: 0x4E4A20 +static class NCINEntry g_JF03_cin_tartar[10]; // size: 0x488, address: 0x4E4DC0 +static class NCINEntry g_BB01_cin_glove[6]; // size: 0x2B8, address: 0x4E5250 +static class NCINEntry g_GL01_cin_monsoon[2]; // size: 0xE8, address: 0x4E5510 +static class NCINEntry g_RB01_cin_sleepytime[3]; // size: 0x15C, address: 0x4E5600 +static class NCINEntry g_BC01_cin_arfarf[9]; // size: 0x414, address: 0x4E5760 +static class NCINEntry g_BB01_cin_chuck[3]; // size: 0x15C, address: 0x4E5B80 +static class NCINEntry g_KF01_cin_tubelet[5]; // size: 0x244, address: 0x4E5CE0 +static class NCINEntry g_GY01_cin_slick[5]; // size: 0x244, address: 0x4E5F30 +static class NCINEntry g_GY01_cin_gy_open[2]; // size: 0xE8, address: 0x4E6180 +static class NCINEntry g_GY01_cin_gy_end[2]; // size: 0xE8, address: 0x4E6270 +static class NCINEntry g_B101_b1_open[4]; // size: 0x1D0, address: 0x4E6360 +static class NCINEntry g_B101_b1_round2[4]; // size: 0x1D0, address: 0x4E6530 +static class NCINEntry g_B101_b1_ending[10]; // size: 0x488, address: 0x4E6700 +static class NCINEntry g_B201_b2_open[2]; // size: 0xE8, address: 0x4E6B90 +static class NCINEntry g_B201_b2_round2[4]; // size: 0x1D0, address: 0x4E6C80 +static class NCINEntry g_B201_b2_round3[2]; // size: 0xE8, address: 0x4E6E50 +static class NCINEntry g_B201_b2_ending[2]; // size: 0xE8, address: 0x4E6F40 +static class NCINEntry g_B302_begin[27]; // size: 0xC3C, address: 0x4E7030 +static class NCINEntry g_B302_end[31]; // size: 0xE0C, address: 0x4E7C70 +static class NCINEntry g_B303_end[28]; // size: 0xCB0, address: 0x4E8A80 +static class NCINEntry g_HB00_prologue[24]; // size: 0xAE0, address: 0x4E9730 +static class NCINMap g_cutmap[24]; // size: 0x120, address: 0x4EA210 +class NCINBeNosey * g_noz_ncin; // size: 0x4, address: 0x5102FC +struct /* @anon1 */ { + // total size: 0x10 +} __vt__11NCINBeNosey; // size: 0x10, address: 0x50E3F0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class zNPCB_SB2 * _singleton; // size: 0x4, address: 0x510184 +class xVec3 g_NX3; // size: 0xC, address: 0x4F8DB0 +class xVec3 g_Z3; // size: 0xC, address: 0x4F8DA0 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class xVec3 g_X3; // size: 0xC, address: 0x4F8D80 +struct /* @anon0 */ { + // total size: 0x10 +} __vt__9XCSNNosey; // size: 0x10, address: 0x0 +class NCINDRay { + // total size: 0x4 +public: + class RwRaster * rast; // offset 0x0, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class NCINEntry { + // total size: 0x74 +public: + enum en_ncinfx typ_ncinfx; // offset 0x0, size 0x4 + void (* cb_fxupd)(class zCutsceneMgr *, class NCINEntry *, signed int); // offset 0x4, size 0x4 + void (* cb_fxanim)(class zCutsceneMgr *, class NCINEntry *, class RpAtomic *, class RwMatrixTag *, unsigned int, unsigned int); // offset 0x8, size 0x4 + void (* cb_fxrend)(class zCutsceneMgr *, class NCINEntry *); // offset 0xC, size 0x4 + float tym_beg; // offset 0x10, size 0x4 + float tym_end; // offset 0x14, size 0x4 + class xVec3 pos_A[2]; // offset 0x18, size 0x18 + class xVec3 pos_B[2]; // offset 0x30, size 0x18 + char * twk_name; // offset 0x48, size 0x4 + signed int idx_anim; // offset 0x4C, size 0x4 + signed int idx_bone; // offset 0x50, size 0x4 + signed int flg_stat; // offset 0x54, size 0x4 + class NCINData fxdata; // offset 0x58, size 0x1C +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class /* @class */ { + // total size: 0x30 +public: + class xVec3 body; // offset 0x0, size 0xC + class xVec3 mouth; // offset 0xC, size 0xC + class xVec3 hand[2]; // offset 0x18, size 0x18 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpSkin { + // total size: 0x0 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xModelTagWithNormal : public xModelTag { + // total size: 0x2C +public: + class xVec3 normal; // offset 0x20, size 0xC +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class NCINLamp { + // total size: 0x10 +public: + class xVec3 pos_robo; // offset 0x0, size 0xC + class RwRaster * rast; // offset 0xC, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class NCINStrk { + // total size: 0x8 +public: + unsigned int sid_vert; // offset 0x0, size 0x4 + unsigned int sid_horz; // offset 0x4, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class zNPCNewsFish { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class NCINBeNosey : public XCSNNosey { + // total size: 0x14 +public: + class zCutsceneMgr * use_csnmgr; // offset 0xC, size 0x4 + class NCINEntry * use_fxtab; // offset 0x10, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class NCINMap { + // total size: 0xC +public: + char * cinname; // offset 0x0, size 0x4 + class NCINEntry * cinfxtab; // offset 0x4, size 0x4 + unsigned int cinhash; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class node_data { + // total size: 0x74 +public: + class zEntDestructObj * ent; // offset 0x0, size 0x4 + float pulse; // offset 0x4, size 0x4 + class xLightKit * old_light_kit; // offset 0x8, size 0x4 + class RpAtomic * skin_model; // offset 0xC, size 0x4 + class RwMatrixTag * skin_mat; // offset 0x10, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x4C + public: + class xModelTagWithNormal tag; // offset 0x0, size 0x2C + class xModelTag uptag; // offset 0x2C, size 0x20 + } v2n1; // offset 0x14, size 0x4C + class /* @class */ { + // total size: 0x60 + public: + class xModelTag tag[3]; // offset 0x0, size 0x60 + } v3; // offset 0x14, size 0x60 + }; +}; +class zEntHangable { + // total size: 0x0 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class NPARMgmt { + // total size: 0x20 +public: + enum en_nparptyp typ_npar; // offset 0x0, size 0x4 + signed int flg_npar; // offset 0x4, size 0x4 + class NPARData * par_buf; // offset 0x8, size 0x4 + signed int cnt_active; // offset 0xC, size 0x4 + signed int num_max; // offset 0x10, size 0x4 + class RwTexture * txtr; // offset 0x14, size 0x4 + class NPARXtraData * xtra_data; // offset 0x18, size 0x4 + void * * user_data; // offset 0x1C, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class bound_data { + // total size: 0x140 +public: + class xEnt ent; // offset 0x0, size 0xD0 + class xMat4x3 mat; // offset 0xD0, size 0x40 + class xMat3x3 rot_mat; // offset 0x110, size 0x30 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zEntDestructObj { + // total size: 0x0 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class NCINArc { + // total size: 0x10 +public: + class zLightning * lightning; // offset 0x0, size 0x4 + class xVec3 endPos; // offset 0x4, size 0xC +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class NPARXtraData { + // total size: 0x1 +}; +class zNPCBPlankton { + // total size: 0x0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zNPCB_SB2 : public zNPCBoss { + // total size: 0x1B40 +public: + class /* @class */ { + // total size: 0x10 + public: + unsigned char face_player; // offset 0x0, size 0x1 + unsigned char face_follow; // offset 0x1, size 0x1 + unsigned char dizzy; // offset 0x2, size 0x1 + enum move_enum move; // offset 0x4, size 0x4 + unsigned char vulnerable; // offset 0x8, size 0x1 + unsigned char cruise_exploding; // offset 0x9, size 0x1 + unsigned char cruise_hit_body; // offset 0xA, size 0x1 + unsigned char cruise_hit_target; // offset 0xB, size 0x1 + unsigned char nodes_taken; // offset 0xC, size 0x1 + unsigned char updated; // offset 0xD, size 0x1 + } flag; // offset 0x2B4, size 0x10 + signed int life; // offset 0x2C4, size 0x4 + signed int round; // offset 0x2C8, size 0x4 + signed int stage; // offset 0x2CC, size 0x4 + float delay; // offset 0x2D0, size 0x4 + float stage_delay; // offset 0x2D4, size 0x4 + float player_damage_timer; // offset 0x2D8, size 0x4 + unsigned int old_player_health; // offset 0x2DC, size 0x4 + enum hand_enum active_hand; // offset 0x2E0, size 0x4 + class zNPCBPlankton * plankton; // offset 0x2E4, size 0x4 + class zNPCNewsFish * newsfish; // offset 0x2E8, size 0x4 + unsigned char said_intro; // offset 0x2EC, size 0x1 + class xModelInstance * models[4]; // offset 0x2F0, size 0x10 + class node_data nodes[9]; // offset 0x300, size 0x414 + class hand_data hands[2]; // offset 0x714, size 0x218 + class platform_data platforms[16]; // offset 0x92C, size 0x5C0 + class bound_data bounds[5]; // offset 0xEF0, size 0x640 + class slug_data slugs[3]; // offset 0x1530, size 0x270 + class /* @class */ { + // total size: 0x14 + public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + } turn; // offset 0x17A0, size 0x14 + class move_data move; // offset 0x17B4, size 0x2C + class /* @class */ { + // total size: 0x10 + public: + float begin; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float time; // offset 0x8, size 0x4 + float end_time; // offset 0xC, size 0x4 + } ymove; // offset 0x17E0, size 0x10 + class /* @class */ { + // total size: 0x30 + public: + class xVec3 body; // offset 0x0, size 0xC + class xVec3 mouth; // offset 0xC, size 0xC + class xVec3 hand[2]; // offset 0x18, size 0x18 + } sound_loc; // offset 0x17F0, size 0x30 + float node_pulse; // offset 0x1820, size 0x4 + class /* @class */ { + // total size: 0x310 + public: + class xLightKit kit; // offset 0x0, size 0x10 + class xLightKitLight light[8]; // offset 0x10, size 0x300 + } glow_light; // offset 0x1824, size 0x310 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x10 +}; +enum en_ncinfx { + NCIN_FXTYP_UNKNOWN = 0, + NCIN_FXTYP_EXAMPLE = 1, + NCIN_FXTYP_BUBSLAM_LG = 2, + NCIN_FXTYP_BUBSLAM_SM = 3, + NCIN_FXTYP_SMOKETRAIL = 4, + NCIN_FXTYP_BUBTRAIL = 5, + NCIN_FXTYP_BUBTRAILBONE = 6, + NCIN_FXTYP_BUBWIPE = 7, + NCIN_FXTYP_JELLYLIGHT_01 = 8, + NCIN_FXTYP_WATERSPLASH = 9, + NCIN_FXTYP_TARTARSHOOT = 10, + NCIN_FXTYP_OILSHOOT = 11, + NCIN_FXTYP_BONESHOOT = 12, + NCIN_FXTYP_BONETRAIL = 13, + NCIN_FXTYP_BOMBTRAIL = 14, + NCIN_FXTYP_OILHAZARD = 15, + NCIN_FXTYP_TARTARSTEAM = 16, + NCIN_FXTYP_ARFDOGBOOM = 17, + NCIN_FXTYP_SHIELDPOP = 18, + NCIN_FXTYP_TTGUNSMOKE = 19, + NCIN_FXTYP_SPATULAGLOW = 20, + NCIN_FXTYP_HOOKRECOIL = 21, + NCIN_FXTYP_FODDERPROD = 22, + NCIN_FXTYP_BZZTDANCE = 23, + NCIN_FXTYP_BZZTBEAM = 24, + NCIN_FXTYP_BADBREATH = 25, + NCIN_FXTYP_BOMBBLINK = 26, + NCIN_FXTYP_HAMSHOCK = 27, + NCIN_FXTYP_HAMSTREAK = 28, + NCIN_FXTYP_MONCLOUD = 29, + NCIN_FXTYP_MIDFISH = 30, + NCIN_FXTYP_GLOVEFRAG = 31, + NCIN_FXTYP_MARYBOOM = 32, + NCIN_FXTYP_PETEBONK = 33, + NCIN_FXTYP_FIRESPIRAL = 34, + NCIN_FXTYP_SLEEPYLAMP = 35, + NCIN_FXTYP_SLEEPYDRAY = 36, + NCIN_FXTYP_B101OPEN_SBENTER = 37, + NCIN_FXTYP_B101OPEN_PATENTER = 38, + NCIN_FXTYP_B101OPEN_SHOCKWAVE = 39, + NCIN_FXTYP_B101ROUND1_SHOCK1 = 40, + NCIN_FXTYP_B101ROUND1_SHOCK2 = 41, + NCIN_FXTYP_B101ROUND1_SHOCK3 = 42, + NCIN_FXTYP_B101ENDING_SHOCK1 = 43, + NCIN_FXTYP_B101ENDING_SHOCK2 = 44, + NCIN_FXTYP_B101ENDING_SHOCK3 = 45, + NCIN_FXTYP_B101ENDING_SHOCK4 = 46, + NCIN_FXTYP_B101ENDING_SHOCKWAVE = 47, + NCIN_FXTYP_B201OPEN_FREEZE = 48, + NCIN_FXTYP_B201ROUND1_FREEZE = 49, + NCIN_FXTYP_B201HIDECONVEYOR = 50, + NCIN_FXTYP_B201GOOLEVER = 51, + NCIN_FXTYP_B201FRAG = 52, + NCIN_FXTYP_B303STUFF = 53, + NCIN_FXTYP_PAR_ENTITY_BONE = 54, + NCIN_FXTYP_PROBE = 55, + NCIN_FXTYP_DUPLOPUFFS = 56, + NCIN_FXTYP_SPAWNRING = 57, + NCIN_FXTYP_BUBPLYRSKEL = 58, + NCIN_FXTYP_GLINT = 59, + NCIN_FXTYP_NOMORE = 60, + NCIN_FXTYP_FORCE = 2147483647, +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class NCINPar { + // total size: 0x4 +public: + class zParEmitter * emitter; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x4C +public: + class xModelTagWithNormal tag; // offset 0x0, size 0x2C + class xModelTag uptag; // offset 0x2C, size 0x20 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class NPARData { + // total size: 0x50 +public: + class xVec3 pos; // offset 0x0, size 0xC + float xy_size[2]; // offset 0xC, size 0x8 + float uv_tl[2]; // offset 0x14, size 0x8 + float uv_br[2]; // offset 0x1C, size 0x8 + class RwRGBA color; // offset 0x24, size 0x4 + float tmr_remain; // offset 0x28, size 0x4 + float tym_exist; // offset 0x2C, size 0x4 + float fac_abuse; // offset 0x30, size 0x4 + class xVec3 vel; // offset 0x34, size 0xC + signed int flg_popts : 24; // offset 0x40, size 0x4 + signed int nparmode : 8; // offset 0x40, size 0x4 + float unused[3]; // offset 0x44, size 0xC +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class /* @class */ { + // total size: 0x310 +public: + class xLightKit kit; // offset 0x0, size 0x10 + class xLightKitLight light[8]; // offset 0x10, size 0x300 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +class NCINEnts { + // total size: 0x10 +public: + class xEnt * ent[4]; // offset 0x0, size 0x10 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +enum slug_stage { + SLUG_INACTIVE = 0, + SLUG_AIM = 1, + SLUG_DELAY = 2, + SLUG_DYING = 3, + SLUG_FIRE = 4, +}; +class /* @class */ { + // total size: 0x60 +public: + class xModelTag tag[3]; // offset 0x0, size 0x60 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class NCINMat { + // total size: 0x4 +public: + class RwMatrixTag * mat; // offset 0x0, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum hand_enum { + LEFT_HAND = 0, + RIGHT_HAND = 1, +}; +class NCINShrap { + // total size: 0x4 +public: + class zShrapnelAsset * shrap; // offset 0x0, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class move_config { + // total size: 0x10 +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float turn_accel; // offset 0x8, size 0x4 + float turn_max_vel; // offset 0xC, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class slug_data { + // total size: 0xD0 +public: + enum slug_stage stage; // offset 0x0, size 0x4 + unsigned char spun; // offset 0x4, size 0x1 + unsigned char abandoned; // offset 0x5, size 0x1 + float time; // offset 0x8, size 0x4 + float stage_delay; // offset 0xC, size 0x4 + class xEnt * ent; // offset 0x10, size 0x4 + class platform_data * target; // offset 0x14, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 dmat; // offset 0x60, size 0x40 + class xVec3 move_dir; // offset 0xA0, size 0xC + float dist; // offset 0xAC, size 0x4 + float vel; // offset 0xB0, size 0x4 + float accel; // offset 0xB4, size 0x4 + float end_dist; // offset 0xB8, size 0x4 + float max_vel; // offset 0xBC, size 0x4 + float ydist; // offset 0xC0, size 0x4 + float yvel; // offset 0xC4, size 0x4 + float end_ydist; // offset 0xC8, size 0x4 + unsigned int sound_handle; // offset 0xCC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class NCINData { + // total size: 0x1C +public: + union { // inferred + class NCINLyt lytdata; // offset 0x0, size 0x4 + class NCINHaz hazdata; // offset 0x0, size 0x4 + class NCINLamp lampdata; // offset 0x0, size 0x10 + class NCINDRay draydata; // offset 0x0, size 0x4 + class NCINStrk strkdata; // offset 0x0, size 0x8 + class NCINArc arcdata; // offset 0x0, size 0x10 + class NCINPar pardata; // offset 0x0, size 0x4 + class NCINEnts entdata; // offset 0x0, size 0x10 + class NCINShrap shrapdata; // offset 0x0, size 0x4 + class NCINCustom customdata; // offset 0x0, size 0x1C + class NCINRast rastinfo; // offset 0x0, size 0x4 + class NCINMat matdata; // offset 0x0, size 0x4 + }; +}; +class NPCCone { + // total size: 0x20 +public: + float rad_cone; // offset 0x0, size 0x4 + class RwRGBA rgba_top; // offset 0x4, size 0x4 + class RwRGBA rgba_bot; // offset 0x8, size 0x4 + class RwRaster * rast_cone; // offset 0xC, size 0x4 + float uv_tip[2]; // offset 0x10, size 0x8 + float uv_slice[2]; // offset 0x18, size 0x8 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class NCINLyt { + // total size: 0x4 +public: + class zLightning * lyt_zap; // offset 0x0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class NCINCustom { + // total size: 0x1C +public: + float f[1]; // offset 0x0, size 0x4 + class xVec3 v[2]; // offset 0x4, size 0x18 +}; +class RyzMemData { + // total size: 0x1 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class platform_data { + // total size: 0x5C +public: + unsigned char stopping; // offset 0x0, size 0x1 + class xEnt * ent; // offset 0x4, size 0x4 + float radius; // offset 0x8, size 0x4 + class xMat3x3 mat; // offset 0xC, size 0x30 + class /* @class */ { + // total size: 0x20 + public: + class xVec3 axis; // offset 0x0, size 0xC + float ang; // offset 0xC, size 0x4 + float end_ang; // offset 0x10, size 0x4 + float vel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 + float accel; // offset 0x1C, size 0x4 + } spin; // offset 0x3C, size 0x20 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class move_data : public move_config { + // total size: 0x2C +public: + class xVec2 dest; // offset 0x10, size 0x8 + class xVec2 dir; // offset 0x18, size 0x8 + float vel; // offset 0x20, size 0x4 + float yaw; // offset 0x24, size 0x4 + float yaw_vel; // offset 0x28, size 0x4 +}; +class hand_data { + // total size: 0x10C +public: + unsigned char hurt_player; // offset 0x0, size 0x1 + unsigned char hit_platforms; // offset 0x1, size 0x1 + class xModelTag head_tag[4]; // offset 0x4, size 0x80 + class xModelTag tail_tag[4]; // offset 0x84, size 0x80 + class xEnt * ent; // offset 0x104, size 0x4 + float radius; // offset 0x108, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class NCINHaz { + // total size: 0x4 +public: + class NPCHazard * npchaz; // offset 0x0, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class NCINRast { + // total size: 0x4 +public: + class RwRaster * raster; // offset 0x0, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +enum en_nparptyp { + NPAR_TYP_UNKNOWN = 0, + NPAR_TYP_OILBUB = 1, + NPAR_TYP_TUBESPIRAL = 2, + NPAR_TYP_TUBECONFETTI = 3, + NPAR_TYP_GLOVEDUST = 4, + NPAR_TYP_MONSOONRAIN = 5, + NPAR_TYP_SLEEPYZEEZ = 6, + NPAR_TYP_CHUCKSPLASH = 7, + NPAR_TYP_TARTARGUNK = 8, + NPAR_TYP_DOGBREATH = 9, + NPAR_TYP_VISSPLASH = 10, + NPAR_TYP_FIREWORKS = 11, + NPAR_TYP_NOMORE = 12, + NPAR_TYP_FORCE = 2147483647, +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x10 +public: + float begin; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float time; // offset 0x8, size 0x4 + float end_time; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char face_player; // offset 0x0, size 0x1 + unsigned char face_follow; // offset 0x1, size 0x1 + unsigned char dizzy; // offset 0x2, size 0x1 + enum move_enum move; // offset 0x4, size 0x4 + unsigned char vulnerable; // offset 0x8, size 0x1 + unsigned char cruise_exploding; // offset 0x9, size 0x1 + unsigned char cruise_hit_body; // offset 0xA, size 0x1 + unsigned char cruise_hit_target; // offset 0xB, size 0x1 + unsigned char nodes_taken; // offset 0xC, size 0x1 + unsigned char updated; // offset 0xD, size 0x1 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +enum move_enum { + MOVE_NONE = 0, + MOVE_HALT = 1, + MOVE_FOLLOW = 2, + MOVE_Y = 3, +}; +class /* @class */ { + // total size: 0x20 +public: + class xVec3 axis; // offset 0x0, size 0xC + float ang; // offset 0xC, size 0x4 + float end_ang; // offset 0x10, size 0x4 + float vel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 + float accel; // offset 0x1C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +struct /* @anon1 */ { + // total size: 0x10 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CEB00 -> 0x003CECD0 +*/ +// Range: 0x3CEB00 -> 0x3CECD0 +static void NCIN_SBBNode_AR(class NCINEntry * fxrec /* r20 */, class RpAtomic * model /* r19 */, class RwMatrixTag * animMat /* r18 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CEB00 -> 0x3CECD0 + class NCINMat & data; // r17 + signed int bones; // r16 + class RpGeometry * geom; // r2 + class RpSkin * skin; // r2 + class xMat3x3 imat; // r29+0x80 + signed int i; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CECD0 -> 0x003CED50 +*/ +// Range: 0x3CECD0 -> 0x3CED50 +static void NCIN_SBBNode_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CECD0 -> 0x3CED50 + class NCINMat & data; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CED50 -> 0x003CF0AC +*/ +// Range: 0x3CED50 -> 0x3CF0AC +static void NCIN_BubbleTrail_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CED50 -> 0x3CF0AC + class xVec3 & offset; // r3 + class xVec3 & root_vel; // r12 + float rand_diameter; // r1 + float rand_vel; // r29+0xB0 + float scale; // r29+0xB0 + class NCINCustom & data; // r10 + class xVec3 & oldloc; // r17 + class xVec3 & oldvel; // r16 + signed int total; // r2 + class xMat4x3 mat; // r29+0x30 + class xVec3 vel; // r29+0xA0 + class xVec3 loc; // r29+0x90 + class xVec3 rloc; // r29+0x80 + class xVec3 rvel; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF0B0 -> 0x003CF0F0 +*/ +// Range: 0x3CF0B0 -> 0x3CF0F0 +static void NCIN_BubbleTrail_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF0B0 -> 0x3CF0F0 + class NCINCustom & data; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF0F0 -> 0x003CF6D8 +*/ +// Range: 0x3CF0F0 -> 0x3CF6D8 +static void NCIN_EntityBonePar_AR(class NCINEntry * fxrec /* r17 */, class RwMatrixTag * animMat /* r16 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF0F0 -> 0x3CF6D8 + float dt; // r24 + class xParEmitter * pe; // r21 + class xParEmitterAsset * a; // r29+0xC0 + class xParEmitterPropsAsset * prop; // r20 + class xParSys * ps; // r23 + class xParGroup * g; // r18 + signed int rate_has_elapsed; // r2 + float rate; // r29+0x160 + signed int count; // r30 + float life; // r23 + float size_birth; // r25 + float size_death; // r29+0x160 + class xMat4x3 bone_mat; // r29+0xD0 + class xVec3 oldloc; // r29+0x150 + class xVec3 loc; // r29+0x140 + class xVec3 vel; // r29+0x130 + signed int i; // r22 + class xPar * p; // r19 + signed int c; // r18 + float fc1; // r25 + float fc2; // r29+0x160 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF6E0 -> 0x003CF778 +*/ +// Range: 0x3CF6E0 -> 0x3CF778 +static void NCIN_GloveShrapnel_AR(class NCINEntry * fxrec /* r18 */, class RpAtomic * model /* r17 */, class RwMatrixTag * animMat /* r16 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF6E0 -> 0x3CF778 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF780 -> 0x003CF810 +*/ +// Range: 0x3CF780 -> 0x3CF810 +static void NCIN_GloveShrapnel_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF780 -> 0x3CF810 + class zShrapnelAsset * sasset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF810 -> 0x003CF9B8 +*/ +// Range: 0x3CF810 -> 0x3CF9B8 +static void NCIN_SpatGlow_AR(class NCINEntry * fxrec /* r18 */, class RpAtomic * model /* r2 */, class RwMatrixTag * animMat /* r17 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF810 -> 0x3CF9B8 + signed int boneIndex; // r16 + class iColor_tag color; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF9C0 -> 0x003CF9E0 +*/ +// Range: 0x3CF9C0 -> 0x3CF9E0 +static void NCIN_SpatGlow_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF9C0 -> 0x3CF9E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CF9E0 -> 0x003CFA24 +*/ +// Range: 0x3CF9E0 -> 0x3CFA24 +static void NCIN_PatBossShrapnel_AR(class NCINEntry * fxrec /* r2 */, class RpAtomic * model /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CF9E0 -> 0x3CFA24 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFA30 -> 0x003CFAC0 +*/ +// Range: 0x3CFA30 -> 0x3CFAC0 +static void NCIN_PatBossShrapnel_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFA30 -> 0x3CFAC0 + class zShrapnelAsset * sasset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFAC0 -> 0x003CFB38 +*/ +// Range: 0x3CFAC0 -> 0x3CFB38 +static void NCIN_GooLever_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFAC0 -> 0x3CFB38 + float fudgeRate; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFB40 -> 0x003CFBC8 +*/ +// Range: 0x3CFB40 -> 0x3CFBC8 +static void NCIN_GooLever_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFB40 -> 0x3CFBC8 + class zParEmitter * emitter; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFBD0 -> 0x003CFCF8 +*/ +// Range: 0x3CFBD0 -> 0x3CFCF8 +static void NCIN_B201HideBelt_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFBD0 -> 0x3CFCF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFD00 -> 0x003CFED4 +*/ +// Range: 0x3CFD00 -> 0x3CFED4 +static void NCIN_FreezeBreath_AR(class zCutsceneMgr * csnmgr /* r2 */, class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFD00 -> 0x3CFED4 + class xVec3 pnt1; // r29+0x20 + class xVec3 pnt2; // r29+0x10 + signed int boneIndex; // r24 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFEE0 -> 0x003CFF38 +*/ +// Range: 0x3CFEE0 -> 0x3CFF38 +static void NCIN_FreezeBreath_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFEE0 -> 0x3CFF38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CFF40 -> 0x003D0070 +*/ +// Range: 0x3CFF40 -> 0x3D0070 +static void NCIN_B101Shockwave_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CFF40 -> 0x3D0070 + class zParEmitter * emitter; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0070 -> 0x003D0264 +*/ +// Range: 0x3D0070 -> 0x3D0264 +static void NCIN_LightninBone_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0070 -> 0x3D0264 + class xVec3 pnt1; // r29+0x20 + class xVec3 pnt2; // r29+0x10 + signed int boneIndex; // r15 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0270 -> 0x003D0434 +*/ +// Range: 0x3D0270 -> 0x3D0434 +static void NCIN_LightninBone_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0270 -> 0x3D0434 + class _tagLightningAdd addInfo; // r29+0x30 + class xVec3 pnt; // r29+0x70 + class zLightning * light; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0440 -> 0x003D06BC +*/ +// Range: 0x3D0440 -> 0x3D06BC +static void NCIN_Lightnin2Bones_AR(class NCINEntry * fxrec /* r19 */, class RwMatrixTag * animMat /* r18 */, unsigned int animIndex /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0440 -> 0x3D06BC + class zLightning * light; // r16 + class xVec3 pnt1; // r29+0x60 + signed int boneIndex; // r5 + class xVec3 pnt1; // r29+0x50 + signed int boneIndex; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D06C0 -> 0x003D0770 +*/ +// Range: 0x3D06C0 -> 0x3D0770 +static void NCIN_Lightnin2Bones_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D06C0 -> 0x3D0770 + class _tagLightningAdd addInfo; // r29+0x20 + class xVec3 pnt; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0770 -> 0x003D08B4 +*/ +// Range: 0x3D0770 -> 0x3D08B4 +static void NCIN_HookRecoil_AR(class zCutsceneMgr * csnmgr /* r2 */, class RpAtomic * model /* r2 */, class RwMatrixTag * animMat /* r21 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0770 -> 0x3D08B4 + signed int idx_anim; // r3 + unsigned int num_bones; // r20 + class xMat4x3 * mat_root; // r2 + unsigned int i; // r19 + class xVec3 pos_emit; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D08C0 -> 0x003D08E0 +*/ +// Range: 0x3D08C0 -> 0x3D08E0 +static void NCIN_HookRecoil_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D08C0 -> 0x3D08E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D08E0 -> 0x003D090C +*/ +// Range: 0x3D08E0 -> 0x3D090C +static void NCIN_BoneTrail_AR(class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D08E0 -> 0x3D090C + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0910 -> 0x003D0930 +*/ +// Range: 0x3D0910 -> 0x3D0930 +static void NCIN_BoneTrail_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0910 -> 0x3D0930 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0930 -> 0x003D0954 +*/ +// Range: 0x3D0930 -> 0x3D0954 +static void NCIN_BombTrail_AR(class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0930 -> 0x3D0954 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0960 -> 0x003D0980 +*/ +// Range: 0x3D0960 -> 0x3D0980 +static void NCIN_BombTrail_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0960 -> 0x3D0980 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0980 -> 0x003D0B18 +*/ +// Range: 0x3D0980 -> 0x3D0B18 +static void NCIN_MidFish_AR(class RwMatrixTag * animMat /* r16 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0980 -> 0x3D0B18 + class xMat4x3 * mat_root; // r2 + signed int i; // r20 + class xVec3 pos_emit; // r29+0x90 + class xMat4x3 * mat_root; // r2 + signed int idx_bone; // r2 + class xVec3 pos_emit; // r29+0x80 + signed int g_idx_handbone[6]; // @ 0x004EA360 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0B20 -> 0x003D0B40 +*/ +// Range: 0x3D0B20 -> 0x3D0B40 +static void NCIN_MidFish_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0B20 -> 0x3D0B40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0B40 -> 0x003D0E1C +*/ +// Range: 0x3D0B40 -> 0x3D0E1C +static void NCIN_FodProdBone_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0B40 -> 0x3D0E1C + class xMat4x3 * mat_root; // r2 + class xMat4x3 * mat_bone; // r14 + class NPCHazard * haz; // r2 + class xVec3 pos_poke; // r29+0x70 + class xVec3 vec_offset; // @ 0x00507C08 + signed char @7361; // @ 0x00510308 + signed int idx_bonePoke; // @ 0x00507C00 + signed char @7353; // @ 0x00510304 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0E20 -> 0x003D0F3C +*/ +// Range: 0x3D0E20 -> 0x3D0F3C +static void NCIN_FodProdBone_Upd(class NCINEntry * fxrec /* r17 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0E20 -> 0x3D0F3C + class NPCHazard * haz; // r4 + class NPCHazard * haz; // r16 + signed int rc; // r2 + float tym; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D0F40 -> 0x003D1164 +*/ +// Range: 0x3D0F40 -> 0x3D1164 +static void NCIN_FodProd_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D0F40 -> 0x3D1164 + class xMat4x3 * mat_root; // r2 + class xMat4x3 * mat_bone; // r14 + class NPCHazard * haz; // r2 + class xVec3 pos_poke; // r29+0x70 + class xVec3 vec_offset; // @ 0x00507BF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1170 -> 0x003D128C +*/ +// Range: 0x3D1170 -> 0x3D128C +static void NCIN_FodProd_Upd(class NCINEntry * fxrec /* r17 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1170 -> 0x3D128C + class NPCHazard * haz; // r4 + class NPCHazard * haz; // r16 + signed int rc; // r2 + float tym; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1290 -> 0x003D1784 +*/ +// Range: 0x3D1290 -> 0x3D1784 +static void NCIN_OilHazard(class NCINEntry * fxrec /* r21 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1290 -> 0x3D1784 + class NPCHazard * haz; // r4 + class xVec3 pos_emit; // r29+0x120 + signed int i; // r20 + class xVec3 vel_emit; // r29+0x110 + class NPCHazard * haz; // r16 + signed int rc; // r2 + float tym; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1790 -> 0x003D17F0 +*/ +// Range: 0x3D1790 -> 0x3D17F0 +static void NCIN_ShieldPop(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1790 -> 0x3D17F0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D17F0 -> 0x003D19CC +*/ +// Range: 0x3D17F0 -> 0x3D19CC +static void NCIN_FireSpiral_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D17F0 -> 0x3D19CC + class xMat4x3 * mat_root; // r2 + class xVec3 pos_emit; // r29+0x50 + class xVec3 dir_emit; // r29+0x40 + class xVec3 vel; // r29+0x30 + float tym; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D19D0 -> 0x003D1A04 +*/ +// Range: 0x3D19D0 -> 0x3D1A04 +static void NCIN_FireSpiral_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D19D0 -> 0x3D1A04 + class NPARMgmt * mgr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1A10 -> 0x003D1A70 +*/ +// Range: 0x3D1A10 -> 0x3D1A70 +static void NCIN_PeteBonk(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1A10 -> 0x3D1A70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1A70 -> 0x003D1B3C +*/ +// Range: 0x3D1A70 -> 0x3D1B3C +static void NCIN_MaryBoom(class NCINEntry * fxrec /* r17 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1A70 -> 0x3D1B3C + class NPCHazard * haz; // r4 + class NPCHazard * haz; // r16 + signed int rc; // r2 + float tym; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1B40 -> 0x003D1D90 +*/ +// Range: 0x3D1B40 -> 0x3D1D90 +static void NCIN_SleepyDRay_AR(class zCutsceneMgr * csnmgr /* r2 */, class NCINEntry * fxrec /* r16 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1B40 -> 0x3D1D90 + class xMat4x3 * mat_root; // r20 + class xVec3 * pos_orig; // r19 + signed int i; // r18 + float rat; // r2 + class xVec3 pos_emit; // r29+0xB0 + class xMat4x3 * mat_root; // r2 + class xVec3 pos_dray; // r29+0xA0 + class RwRGBA rgba_top; // r29+0xCC + class RwRGBA rgba_bot; // r29+0xC8 + float tym_instate; // r2 + class NPCCone conedata; // r29+0x70 + float uv_slice_dray[2]; // @ 0x00507BE8 + float uv_scroll_dray[2]; // @ 0x00507BE0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1D90 -> 0x003D1E10 +*/ +// Range: 0x3D1D90 -> 0x3D1E10 +static void NCIN_SleepyDRay_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1D90 -> 0x3D1E10 + char * nam_texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D1E10 -> 0x003D2228 +*/ +// Range: 0x3D1E10 -> 0x3D2228 +static void NCIN_SleepyLamp_AR(class zCutsceneMgr * csnmgr /* r2 */, class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D1E10 -> 0x3D2228 + class NCINLamp * lampdat; // r2 + class xMat4x3 * mat_root; // r2 + class NCINLamp * lampdat; // r16 + class xVec3 pos_lamp; // r29+0x60 + class RwRGBA rgba_top; // r29+0x7C + class RwRGBA rgba_bot; // r29+0x78 + class xVec3 rgb_peace; // r29+0x50 + class xVec3 rgb_anger; // r29+0x40 + float rat; // r5 + class NPCCone conedata; // r29+0x20 + float tym_anger[4]; // @ 0x00507BD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2230 -> 0x003D2288 +*/ +// Range: 0x3D2230 -> 0x3D2288 +static void NCIN_SleepyLamp_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2230 -> 0x3D2288 + char * nam_texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2290 -> 0x003D236C +*/ +// Range: 0x3D2290 -> 0x3D236C +static void NCIN_ArfDogBoom(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2290 -> 0x3D236C + class NPCHazard * haz; // r4 + class NPCHazard * haz; // r17 + signed int rc; // r2 + float tym; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2370 -> 0x003D290C +*/ +// Range: 0x3D2370 -> 0x3D290C +static void NCIN_TTGunSmoke_AR(class zCutsceneMgr * csnmgr /* r2 */, class NCINEntry * fxrec /* r16 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2370 -> 0x3D290C + unsigned int idx_roboAnim; // r5 + signed int idx_boneGun; // r2 + class xMat4x3 * mat_root; // r2 + class xMat4x3 * mat_bone; // r12 + class xVec3 vec_offset; // r29+0x130 + class xVec3 pos_smoke; // r29+0x120 + float spd_blow; // r20 + float tym_blow[2]; // r29+0x118 + class xCutscene * csn; // r2 + float blowPeriod; // r4 + float tym_blown; // r3 + float rat_blow; // r2 + float bowl; // r2 + class xVec3 dir_blow; // r29+0x108 + class xVec3 vel_smoke; // r29+0xF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2910 -> 0x003D2C88 +*/ +// Range: 0x3D2910 -> 0x3D2C88 +static void NCIN_HazTTSteam_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2910 -> 0x3D2C88 + signed int idx_boneSign; // r3 + class xVec3 vec_offset; // r29+0xC0 + class xMat4x3 * mat_root; // r2 + class xMat4x3 * mat_bone; // r12 + class NPCHazard * haz; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2C90 -> 0x003D2D84 +*/ +// Range: 0x3D2C90 -> 0x3D2D84 +static void NCIN_HazTTSteam_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2C90 -> 0x3D2D84 + class NPCHazard * haz; // r4 + class NPCHazard * haz; // r17 + signed int rc; // r2 + float tym; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2D90 -> 0x003D2F88 +*/ +// Range: 0x3D2D90 -> 0x3D2F88 +static void NCIN_HazProjShoot(class NCINEntry * fxrec /* r17 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2D90 -> 0x3D2F88 + class NPCHazard * haz; // r4 + enum en_npchaz use_haztyp; // r18 + class NPCHazard * haz; // r16 + signed int rc; // r2 + class HAZTarTar * tartar; // r6 + class xVec3 pos_dest; // r29+0x60 + class xVec3 diff; // r29+0x50 + float tym; // r29+0x70 + class NPCHazard * haz; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D2F90 -> 0x003D2FF8 +*/ +// Range: 0x3D2F90 -> 0x3D2FF8 +static void NCIN_WaterSplash(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D2F90 -> 0x3D2FF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3000 -> 0x003D3238 +*/ +// Range: 0x3D3000 -> 0x3D3238 +static void NCIN_HammerStreak_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3000 -> 0x3D3238 + unsigned int idx_hamBone[4]; // r29+0x30 + class xMat4x3 * mat_root; // r2 + class xMat4x3 * mat_hamBone[4]; // r29+0x20 + class xVec3 left; // r29+0xB0 + class xVec3 right; // r29+0xA0 + class xVec3 top; // r29+0x90 + class xVec3 bottom; // r29+0x80 + class NCINStrk * strkdat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3240 -> 0x003D32B8 +*/ +// Range: 0x3D3240 -> 0x3D32B8 +static void NCIN_HammerStreak_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3240 -> 0x3D32B8 + class NCINStrk * strkdat; // r16 + class NCINStrk * strkdat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D32C0 -> 0x003D3320 +*/ +// Range: 0x3D32C0 -> 0x3D3320 +static void NCIN_HammerShock(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D32C0 -> 0x3D3320 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3320 -> 0x003D346C +*/ +// Range: 0x3D3320 -> 0x3D346C +static void NCIN_Zapper(class NCINEntry * fxrec /* r17 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3320 -> 0x3D346C + class NCINData * fxdat; // r16 + class _tagLightningAdd info; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3470 -> 0x003D34D0 +*/ +// Range: 0x3D3470 -> 0x3D34D0 +static void NCIN_BubHit(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3470 -> 0x3D34D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D34D0 -> 0x003D356C +*/ +// Range: 0x3D34D0 -> 0x3D356C +static void NCIN_BubTrailBone_AR(class NCINEntry * fxrec /* r2 */, class RwMatrixTag * animMat /* r2 */, unsigned int animIndex /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D34D0 -> 0x3D356C + signed int idx_boneInterest; // r4 + class xVec3 pos_emit; // r29+0x10 + class xMat4x3 * mat_bone; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3570 -> 0x003D3880 +*/ +// Range: 0x3D3570 -> 0x3D3880 +static void NCIN_BubWipe(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3570 -> 0x3D3880 + class xMat4x3 * mat; // r21 + class xVec3 * pos; // r20 + class xVec3 * vel; // r19 + class xVec3 vec_infront; // r29+0x90 + class xVec3 * pp; // r18 + class xVec3 * vp; // r17 + signed int i; // r16 + class xVec3 vel_wall; // @ 0x00507BC0 + class xVec3 scl_wall; // @ 0x00507BB0 + class xMat4x3 mat_fake; // @ 0x0061DDC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3880 -> 0x003D3934 +*/ +// Range: 0x3D3880 -> 0x3D3934 +static void NCIN_BubSlam(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3880 -> 0x3D3934 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3940 -> 0x003D3960 +*/ +// Range: 0x3D3940 -> 0x3D3960 +static void NCIN_Generic_Upd(class NCINEntry * fxrec /* r2 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3940 -> 0x3D3960 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3960 -> 0x003D3B24 +*/ +// Range: 0x3D3960 -> 0x3D3B24 +void zNPCFXCutscene(class zCutsceneMgr * csnmgr /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3960 -> 0x3D3B24 + class NCINEntry * fxtab; // r20 + class xCutscene * csn; // r19 + signed int need_animated; // r18 + signed int need_render; // r17 + class NCINEntry * nextrec; // r2 + class NCINEntry * fxrec; // r16 + signed int flags; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3B30 -> 0x003D3C08 +*/ +// Range: 0x3D3B30 -> 0x3D3C08 +void zNPCFXCutsceneDone(class zCutsceneMgr * csnmgr /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3B30 -> 0x3D3C08 + class NCINEntry * fxtab; // r17 + class NCINEntry * nextrec; // r2 + class NCINEntry * fxrec; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3C10 -> 0x003D3D80 +*/ +// Range: 0x3D3C10 -> 0x3D3D80 +signed int zNPCFXCutscenePrep(class zCutsceneMgr * csnmgr /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3C10 -> 0x3D3D80 + class NCINEntry * fxtab; // r17 + class NCINEntry * nextrec; // r16 + class NCINEntry * fxrec; // r3 + class NCINEntry * fxrec; // [invalid] + char tweakBase[128]; // r29+0xC0 + char tweakName[128]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3D80 -> 0x003D3E44 +*/ +// Range: 0x3D3D80 -> 0x3D3E44 +static class NCINEntry * zNPCFXCutscenePickTable(class zCutsceneMgr * csnmgr /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3D80 -> 0x3D3E44 + class NCINEntry * da_fxtab; // r16 + class NCINMap * cutrec; // r18 + signed int needinit; // @ 0x0050F16C + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3E50 -> 0x003D3E58 +*/ +// Range: 0x3D3E50 -> 0x3D3E58 +void zNPCFXShutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x3D3E50 -> 0x3D3E58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3E60 -> 0x003D3E90 +*/ +// Range: 0x3D3E60 -> 0x3D3E90 +void zNPCFXStartup() { + // Blocks + /* anonymous block */ { + // Range: 0x3D3E60 -> 0x3D3E90 + class NCINBeNosey nozey_npc_cinematics; // @ 0x0061DDA0 + signed char @6424; // @ 0x00510300 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3E90 -> 0x003D3F4C +*/ +// Range: 0x3D3E90 -> 0x3D3F4C +void UpdatedAnimated(class NCINBeNosey * this /* r2 */, class RpAtomic * model /* r21 */, class RwMatrixTag * animMat /* r20 */, unsigned int animIndex /* r19 */, unsigned int dataIndex /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3E90 -> 0x3D3F4C + class zCutsceneMgr * csnmgr; // r17 + class NCINEntry * fxtab; // r16 + class NCINEntry * nextrec; // r2 + class NCINEntry * fxrec; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3F50 -> 0x003D3FCC +*/ +// Range: 0x3D3F50 -> 0x3D3FCC +void CanRenderNow(class NCINBeNosey * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3F50 -> 0x3D3FCC + class zCutsceneMgr * csnmgr; // r17 + class NCINEntry * fxtab; // r16 + class NCINEntry * nextrec; // r2 + class NCINEntry * fxrec; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D3FD0 -> 0x003D40EC +*/ +// Range: 0x3D3FD0 -> 0x3D40EC +static void NCIN_Par_CIN_PLATFORM_JETS_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D3FD0 -> 0x3D40EC + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D40F0 -> 0x003D420C +*/ +// Range: 0x3D40F0 -> 0x3D420C +static void NCIN_Par_CIN_BIGDUP_SPAWN_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D40F0 -> 0x3D420C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4210 -> 0x003D432C +*/ +// Range: 0x3D4210 -> 0x3D432C +static void NCIN_Par_CIN_BIGDUP_SMOKE_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4210 -> 0x3D432C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4330 -> 0x003D444C +*/ +// Range: 0x3D4330 -> 0x3D444C +static void NCIN_Par_BPLANK_SBB_SMOKE_2_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4330 -> 0x3D444C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4450 -> 0x003D456C +*/ +// Range: 0x3D4450 -> 0x3D456C +static void NCIN_Par_BPLANK_SBB_SMOKE_1_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4450 -> 0x3D456C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4570 -> 0x003D468C +*/ +// Range: 0x3D4570 -> 0x3D468C +static void NCIN_Par_BPLANK_SBB_JET_2_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4570 -> 0x3D468C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4690 -> 0x003D47AC +*/ +// Range: 0x3D4690 -> 0x3D47AC +static void NCIN_Par_BPLANK_SBB_JET_1_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4690 -> 0x3D47AC + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D47B0 -> 0x003D48CC +*/ +// Range: 0x3D47B0 -> 0x3D48CC +static void NCIN_Par_BPLANK_SBB_FLAMES_2_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D47B0 -> 0x3D48CC + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D48D0 -> 0x003D49EC +*/ +// Range: 0x3D48D0 -> 0x3D49EC +static void NCIN_Par_BPLANK_SBB_FLAMES_1_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D48D0 -> 0x3D49EC + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D49F0 -> 0x003D4B0C +*/ +// Range: 0x3D49F0 -> 0x3D4B0C +static void NCIN_Par_BPLANK_JET_2_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D49F0 -> 0x3D4B0C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCFXCinematic.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003D4B10 -> 0x003D4C2C +*/ +// Range: 0x3D4B10 -> 0x3D4C2C +static void NCIN_Par_BPLANK_JET_1_Upd(class NCINEntry * fxrec /* r16 */, signed int killit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3D4B10 -> 0x3D4C2C + class zParEmitter * & emitter; // r17 + class xParEmitterAsset * a; // r5 + } +} + diff --git a/dwarf/SB/Game/zNPCGlyph.cpp b/dwarf/SB/Game/zNPCGlyph.cpp new file mode 100644 index 000000000..e197516d1 --- /dev/null +++ b/dwarf/SB/Game/zNPCGlyph.cpp @@ -0,0 +1,2579 @@ +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * g_strz_glyphmodel[10]; // size: 0x28, address: 0x4E46B0 +static class xModelInstance * g_glyphs_animModelInstRef[10]; // size: 0x28, address: 0x0 +static signed int g_cnt_activeGlyphs[10]; // size: 0x28, address: 0x61B460 +static class NPCGlyph g_glyphs_talk[8]; // size: 0x320, address: 0x61B490 +static class NPCGlyph g_glyphs_talkOther[8]; // size: 0x320, address: 0x61B7B0 +static class NPCGlyph g_glyphs_friend[1]; // size: 0x64, address: 0x61BAD0 +static class NPCGlyph g_glyphs_dazed[8]; // size: 0x320, address: 0x61BB40 +static class NPCGlyph g_glyphs_shinyOne[16]; // size: 0x640, address: 0x61BE60 +static class NPCGlyph g_glyphs_shinyFive[16]; // size: 0x640, address: 0x61C4A0 +static class NPCGlyph g_glyphs_shinyTen[16]; // size: 0x640, address: 0x61CAE0 +static class NPCGlyph g_glyphs_shinyFifty[16]; // size: 0x640, address: 0x61D120 +static class NPCGlyph g_glyphs_shinyHundred[16]; // size: 0x640, address: 0x61D760 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xVec3 g_Onez; // size: 0xC, address: 0x4F8DE0 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class NPCGlyph { + // total size: 0x64 +public: + enum en_npcglyph typ_glyph; // offset 0x0, size 0x4 + signed int flg_glyph; // offset 0x4, size 0x4 + class xModelInstance * mdl_glyph; // offset 0x8, size 0x4 + class xVec3 pos_glyph; // offset 0xC, size 0xC + class xVec3 vel_glyph; // offset 0x18, size 0xC + class xMat3x3 rot_glyph; // offset 0x24, size 0x30 + class xVec3 scl_glyph; // offset 0x54, size 0xC + float tmr_glyph; // offset 0x60, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum en_npcglyph { + NPC_GLYPH_UNKNOWN = 0, + NPC_GLYPH_SHINYONE = 1, + NPC_GLYPH_SHINYFIVE = 2, + NPC_GLYPH_SHINYTEN = 3, + NPC_GLYPH_SHINYFIFTY = 4, + NPC_GLYPH_SHINYHUNDRED = 5, + NPC_GLYPH_TALK = 6, + NPC_GLYPH_TALKOTHER = 7, + NPC_GLYPH_FRIEND = 8, + NPC_GLYPH_DAZED = 9, + NPC_GLYPH_NOMORE = 10, + NPC_GLYPH_FORCE = 2147483647, +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class rxReq { + // total size: 0x0 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xSpline3 { + // total size: 0x0 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zCutsceneMgr { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD930 -> 0x003CDC6C +*/ +// Range: 0x3CD930 -> 0x3CDC6C +void Timestep(class NPCGlyph * this /* r16 */, float dt /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CD930 -> 0x3CDC6C + class xVec3 pos_new; // r29+0x40 + float dx__; // r4 + float dy__; // r3 + float dz__; // r2 + float chkdist; // r6 + class xVec3 delta; // r29+0x30 + float ds2_cam; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CDC70 -> 0x003CDCCC +*/ +// Range: 0x3CDC70 -> 0x3CDCCC +void RotAddDelta(class NPCGlyph * this /* r17 */, class xMat3x3 * mat_rot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CDC70 -> 0x3CDCCC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CDCD0 -> 0x003CDEAC +*/ +// Range: 0x3CDCD0 -> 0x3CDEAC +void VelSet_Shiny(class NPCGlyph * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CDCD0 -> 0x3CDEAC + class xVec3 vel; // r29+0x40 + class xVec3 * dest; // r16 + class xVec3 * src; // r2 + class xVec3 vec; // r29+0x30 + float dx__; // r8 + float dy__; // r7 + float dz__; // r6 + float total_mult; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CDEB0 -> 0x003CDF44 +*/ +// Range: 0x3CDEB0 -> 0x3CDF44 +void RotSet(class NPCGlyph * this /* r16 */, class xVec3 * ang /* r2 */, signed int doautospin /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CDEB0 -> 0x3CDF44 + class xMat3x3 mat_rot; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CDF50 -> 0x003CDFD0 +*/ +// Range: 0x3CDF50 -> 0x3CDFD0 +void ScaleSet(class NPCGlyph * this /* r2 */, class xVec3 * scale /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CDF50 -> 0x3CDFD0 + class xVec3 allone; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CDFD0 -> 0x003CE050 +*/ +// Range: 0x3CDFD0 -> 0x3CE050 +void PosSet(class NPCGlyph * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CDFD0 -> 0x3CE050 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE050 -> 0x003CE0A8 +*/ +// Range: 0x3CE050 -> 0x3CE0A8 +void Discard(class NPCGlyph * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CE050 -> 0x3CE0A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE0B0 -> 0x003CE0E0 +*/ +// Range: 0x3CE0B0 -> 0x3CE0E0 +void Enable(class NPCGlyph * this /* r2 */, signed int ison /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CE0B0 -> 0x3CE0E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE0E0 -> 0x003CE1EC +*/ +// Range: 0x3CE0E0 -> 0x3CE1EC +class NPCGlyph * GLYF_Acquire(enum en_npcglyph type /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CE0E0 -> 0x3CE1EC + class NPCGlyph * da_glyph; // r16 + signed int i; // r4 + signed int cnt; // r2 + class NPCGlyph * list; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE1F0 -> 0x003CE484 +*/ +// Range: 0x3CE1F0 -> 0x3CE484 +void zNPCCommon_Glyphs_RenderAll(signed int doOpaqueStuff /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CE1F0 -> 0x3CE484 + signed int i; // r20 + signed int k; // r19 + class NPCGlyph * glyph; // r18 + signed int cnt; // r21 + class NPCGlyph * list; // r29+0x9C + enum _SDRenderState old_rendstat; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE490 -> 0x003CE598 +*/ +// Range: 0x3CE490 -> 0x3CE598 +signed int zNPCGlyph_TypeToList(enum en_npcglyph gtyp /* r2 */, class NPCGlyph * * glist /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CE490 -> 0x3CE598 + signed int cnt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE5A0 -> 0x003CE78C +*/ +// Range: 0x3CE5A0 -> 0x3CE78C +void zNPCGlyph_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CE5A0 -> 0x3CE78C + signed int i; // r21 + signed int k; // r20 + signed int cnt; // r22 + class NPCGlyph * list; // r29+0x9C + class NPCGlyph * glyph; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE790 -> 0x003CE798 +*/ +// Range: 0x3CE790 -> 0x3CE798 +void zNPCGlyph_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x3CE790 -> 0x3CE798 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE7A0 -> 0x003CE7A8 +*/ +// Range: 0x3CE7A0 -> 0x3CE7A8 +void zNPCGlyph_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x3CE7A0 -> 0x3CE7A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE7B0 -> 0x003CE8C0 +*/ +// Range: 0x3CE7B0 -> 0x3CE8C0 +void zNPCGlyph_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x3CE7B0 -> 0x3CE8C0 + signed int i; // r18 + class NPCGlyph * glyph; // r20 + signed int k; // r17 + signed int cnt; // r16 + class NPCGlyph * list; // r29+0x6C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CE8C0 -> 0x003CEAE0 +*/ +// Range: 0x3CE8C0 -> 0x3CEAE0 +void zNPCGlyph_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x3CE8C0 -> 0x3CEAE0 + class RpAtomic * mdl_raw; // r21 + class NPCGlyph * glyph; // r20 + unsigned int aid; // r2 + signed int i; // r19 + signed int k; // r3 + signed int cnt; // r22 + class NPCGlyph * list; // r29+0xEC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CEAE0 -> 0x003CEAE8 +*/ +// Range: 0x3CEAE0 -> 0x3CEAE8 +void zNPCGlyph_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x3CEAE0 -> 0x3CEAE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGlyph.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CEAF0 -> 0x003CEAF8 +*/ +// Range: 0x3CEAF0 -> 0x3CEAF8 +void zNPCGlyph_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x3CEAF0 -> 0x3CEAF8 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalAmbient.cpp b/dwarf/SB/Game/zNPCGoalAmbient.cpp new file mode 100644 index 000000000..c58b2f697 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalAmbient.cpp @@ -0,0 +1,3406 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__18zNPCGoalJellyBirth; // size: 0x34, address: 0x50E330 +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon3 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__19zNPCGoalJellyAttack; // size: 0x34, address: 0x50E370 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__16zNPCGoalPushAnim; // size: 0x34, address: 0x50A180 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__19zNPCGoalJellyBumped; // size: 0x34, address: 0x50E3B0 +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zNPCJelly : public zNPCAmbient { + // total size: 0x2B0 +public: + signed int cnt_angerLevel; // offset 0x2A0, size 0x4 + signed int hitpoints; // offset 0x2A4, size 0x4 + float tmr_pulseAlpha; // offset 0x2A8, size 0x4 + class zNPCCommon * npc_daddyJelly; // offset 0x2AC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zNPCGoalJellyBumped : public zNPCGoalPushAnim { + // total size: 0x7C +public: + class xVec3 pos_bumper; // offset 0x54, size 0xC + class xVec3 pos_bumpin; // offset 0x60, size 0xC + class xVec3 pos_grindin; // offset 0x6C, size 0xC + unsigned int streakID; // offset 0x78, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xPSYNote { + // total size: 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zNPCGoalJellyAttack : public zNPCGoalPushAnim { + // total size: 0x64 +public: + signed int flg_attack; // offset 0x54, size 0x4 + class zLightning * zap_lytnin[3]; // offset 0x58, size 0xC +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xCurveAsset { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class zNPCGoalJellyBirth : public zNPCGoalCommon { + // total size: 0x5C +public: + class xVec3 pos_spawn; // offset 0x4C, size 0xC + float tmr_fall; // offset 0x58, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x2C +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RyzMemData { + // total size: 0x1 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zNPCGoalPushAnim : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_pushanim; // offset 0x4C, size 0x4 + float lastAnimTime; // offset 0x50, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zNPCAmbient : public zNPCCommon { + // total size: 0x2A0 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDE00 -> 0x003BDE2C +*/ +// Range: 0x3BDE00 -> 0x3BDE2C +void BirthInfoSet(class zNPCGoalJellyBirth * this /* r2 */, class xVec3 * pos_birth /* r2 */, float tym_fall /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BDE00 -> 0x3BDE2C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDE30 -> 0x003BE024 +*/ +// Range: 0x3BDE30 -> 0x3BE024 +signed int Process(class zNPCGoalJellyBirth * this /* r20 */, enum en_trantype * trantyp /* r19 */, float dt /* r20 */, void * ctxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BDE30 -> 0x3BE024 + signed int nextgoal; // r2 + class zNPCJelly * npc; // r16 + class xVec3 vec_dest; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BE030 -> 0x003BE0E8 +*/ +// Range: 0x3BE030 -> 0x3BE0E8 +signed int Enter(class zNPCGoalJellyBirth * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BE030 -> 0x3BE0E8 + class zNPCJelly * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BE0F0 -> 0x003BE6C4 +*/ +// Range: 0x3BE0F0 -> 0x3BE6C4 +void ZapperUpdate(class zNPCGoalJellyAttack * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BE0F0 -> 0x3BE6C4 + class zNPCJelly * npc; // r17 + float tym_ancur; // r20 + class xVec3 pos_bone; // r29+0x140 + signed int i; // r21 + signed int idx_tgtBone; // r2 + class xVec3 pos_tgt; // r29+0x130 + class xVec3 pos_plyr; // r29+0x120 + signed int i; // r21 + class xVec3 pos_tgt; // r29+0x110 + class xVec3 wt_tgt; // @ 0x00507428 + float tym_attackOn[2]; // @ 0x00507438 + signed int idx_fromBone; // @ 0x0050F164 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BE6D0 -> 0x003BE86C +*/ +// Range: 0x3BE6D0 -> 0x3BE86C +void ZapperStart(class zNPCGoalJellyAttack * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BE6D0 -> 0x3BE86C + class zNPCJelly * npc; // r17 + class _tagLightningAdd info; // r29+0x40 + class xVec3 pos_bone; // r29+0x80 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BE870 -> 0x003BE8DC +*/ +// Range: 0x3BE870 -> 0x3BE8DC +signed int Process(class zNPCGoalJellyAttack * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BE870 -> 0x3BE8DC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BE8E0 -> 0x003BE974 +*/ +// Range: 0x3BE8E0 -> 0x3BE974 +signed int Exit(class zNPCGoalJellyAttack * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BE8E0 -> 0x3BE974 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BE980 -> 0x003BE9F8 +*/ +// Range: 0x3BE980 -> 0x3BE9F8 +signed int Enter(class zNPCGoalJellyAttack * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BE980 -> 0x3BE9F8 + class zNPCJelly * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BEA00 -> 0x003BEC48 +*/ +// Range: 0x3BEA00 -> 0x3BEC48 +float CalcEndPoint(class zNPCGoalJellyBumped * this /* r2 */, class xVec3 * pos_end /* r18 */, class xVec3 * dir_aim /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BEA00 -> 0x3BEC48 + float dst_toEndPnt; // r29+0x110 + class zNPCJelly * npc; // r16 + class xVec3 vec; // r29+0x100 + class xVec3 pos; // r29+0xF0 + class xCollis colrec; // r29+0x40 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BEC50 -> 0x003BEDC0 +*/ +// Range: 0x3BEC50 -> 0x3BEDC0 +void ExtractAimDir(class zNPCGoalJellyBumped * this /* r2 */, class xVec3 * dir_aim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BEC50 -> 0x3BEDC0 + class zNPCJelly * npc; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BEDC0 -> 0x003BF138 +*/ +// Range: 0x3BEDC0 -> 0x3BF138 +signed int Process(class zNPCGoalJellyBumped * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BEDC0 -> 0x3BF138 + signed int nextgoal; // r17 + class zNPCJelly * npc; // r16 + class xVec3 pos; // r29+0xB0 + float pam; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BF140 -> 0x003BF1C4 +*/ +// Range: 0x3BF140 -> 0x3BF1C4 +signed int Exit(class zNPCGoalJellyBumped * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BF140 -> 0x3BF1C4 + class zNPCJelly * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BF1D0 -> 0x003BF2CC +*/ +// Range: 0x3BF1D0 -> 0x3BF2CC +signed int Enter(class zNPCGoalJellyBumped * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BF1D0 -> 0x3BF2CC + class zNPCJelly * npc; // r16 + class xVec3 dir_aim; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BF2D0 -> 0x003BF4C8 +*/ +// Range: 0x3BF2D0 -> 0x3BF4C8 +class xFactoryInst * GOALCreate_Ambient(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BF2D0 -> 0x3BF4C8 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalBoss.cpp b/dwarf/SB/Game/zNPCGoalBoss.cpp new file mode 100644 index 000000000..5d016caec --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalBoss.cpp @@ -0,0 +1,332 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon28 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatFudge; // size: 0x34, address: 0x50DBE0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon12 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon17 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossPatSpin; // size: 0x34, address: 0x50DC20 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatSpawn; // size: 0x34, address: 0x50DC60 +struct /* @anon21 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossPatFreeze; // size: 0x34, address: 0x50DCA0 +struct /* @anon15 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatSmack; // size: 0x34, address: 0x50DCE0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__18zNPCGoalBossPatRun; // size: 0x34, address: 0x50DD20 +struct /* @anon24 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossPatSpit; // size: 0x34, address: 0x50DD60 +struct /* @anon16 */ { + // total size: 0x34 +} __vt__18zNPCGoalBossPatHit; // size: 0x34, address: 0x50DDA0 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatTaunt; // size: 0x34, address: 0x50DDE0 +struct /* @anon27 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossPatIdle; // size: 0x34, address: 0x50DE20 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSB1Deflate; // size: 0x34, address: 0x50D310 +struct /* @anon20 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB1Smash; // size: 0x34, address: 0x50D350 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB1Stomp; // size: 0x34, address: 0x50D390 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB1Taunt; // size: 0x34, address: 0x50D3D0 +struct /* @anon25 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossSB1Idle; // size: 0x34, address: 0x50D410 +struct /* @anon18 */ { + // total size: 0x34 +} __vt__28zNPCGoalBossSandyClothesline; // size: 0x34, address: 0x50C980 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__26zNPCGoalBossSandyRunToRope; // size: 0x34, address: 0x50C9C0 +struct /* @anon26 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyGetUp; // size: 0x34, address: 0x50CA00 +struct /* @anon19 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSandySit; // size: 0x34, address: 0x50CA40 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossSandyLeap; // size: 0x34, address: 0x50CA80 +struct /* @anon23 */ { + // total size: 0x34 +} __vt__26zNPCGoalBossSandyElbowDrop; // size: 0x34, address: 0x50CAC0 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__23zNPCGoalBossSandyNoHead; // size: 0x34, address: 0x50CB00 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyMelee; // size: 0x34, address: 0x50CB40 +struct /* @anon22 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyChase; // size: 0x34, address: 0x50CB80 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyTaunt; // size: 0x34, address: 0x50CBC0 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossSandyIdle; // size: 0x34, address: 0x50CC00 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__13zNPCGoalExist; // size: 0x34, address: 0x50C5B0 +struct /* @anon0 */ { + // total size: 0x34 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class xPSYNote { + // total size: 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +struct /* @anon12 */ { + // total size: 0x2C +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +struct /* @anon14 */ { + // total size: 0x34 +}; +struct /* @anon15 */ { + // total size: 0x34 +}; +struct /* @anon16 */ { + // total size: 0x34 +}; +struct /* @anon17 */ { + // total size: 0x34 +}; +struct /* @anon18 */ { + // total size: 0x34 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +struct /* @anon19 */ { + // total size: 0x34 +}; +struct /* @anon20 */ { + // total size: 0x34 +}; +struct /* @anon21 */ { + // total size: 0x34 +}; +struct /* @anon22 */ { + // total size: 0x34 +}; +struct /* @anon23 */ { + // total size: 0x34 +}; +struct /* @anon24 */ { + // total size: 0x34 +}; +struct /* @anon25 */ { + // total size: 0x34 +}; +class RyzMemData { + // total size: 0x1 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +struct /* @anon26 */ { + // total size: 0x34 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +struct /* @anon27 */ { + // total size: 0x34 +}; +struct /* @anon28 */ { + // total size: 0x34 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325180 -> 0x00325F78 +*/ +// Range: 0x325180 -> 0x325F78 +class xFactoryInst * GOALCreate_Boss(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x325180 -> 0x325F78 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalCommon.cpp b/dwarf/SB/Game/zNPCGoalCommon.cpp new file mode 100644 index 000000000..9613f3015 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalCommon.cpp @@ -0,0 +1,2138 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xPSYNote { + // total size: 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum en_NPC_GOAL_SPOT { + NPC_GSPOT_START = 32, + NPC_GSPOT_RESUME = 33, + NPC_GSPOT_FINISH = 34, + NPC_GSPOT_STARTALT = 35, + NPC_GSPOT_ALTA = 36, + NPC_GSPOT_ALTB = 37, + NPC_GSPOT_PATROLPAUSE = 38, + NPC_GSPOT_NOMORE = 39, + NPC_GSPOT_FORCEINT = 2147483647, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAC10 -> 0x002CAC88 +*/ +// Range: 0x2CAC10 -> 0x2CAC88 +unsigned int DoExplicitAnim(class zNPCGoalCommon * this /* r16 */, unsigned int anid /* r17 */, signed int forceRestart /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CAC10 -> 0x2CAC88 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAC90 -> 0x002CAD44 +*/ +// Range: 0x2CAC90 -> 0x2CAD44 +unsigned int DoAutoAnim(class zNPCGoalCommon * this /* r16 */, enum en_NPC_GOAL_SPOT gspot /* r5 */, signed int forceRestart /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CAC90 -> 0x2CAD44 + unsigned int anid; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAD50 -> 0x002CAE18 +*/ +// Range: 0x2CAD50 -> 0x2CAE18 +signed int PreCalc(class zNPCGoalCommon * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CAD50 -> 0x2CAE18 + class zNPCCommon * npc; // r2 + unsigned int curid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAE30 -> 0x002CAF10 +*/ +// Range: 0x2CAE30 -> 0x2CAF10 +signed int Resume(class zNPCGoalCommon * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CAE30 -> 0x2CAF10 + signed int gid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAF10 -> 0x002CAFE8 +*/ +// Range: 0x2CAF10 -> 0x2CAFE8 +signed int Enter(class zNPCGoalCommon * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CAF10 -> 0x2CAFE8 + signed int gid; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalCommon.h b/dwarf/SB/Game/zNPCGoalCommon.h new file mode 100644 index 000000000..34e3aa3f4 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalCommon.h @@ -0,0 +1,56 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADAD0 -> 0x002ADAD8 +*/ +// Range: 0x2ADAD0 -> 0x2ADAD8 +void Clear(class zNPCGoalCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ADAD0 -> 0x2ADAD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADAE0 -> 0x002ADAE8 +*/ +// Range: 0x2ADAE0 -> 0x2ADAE8 +signed int NPCMessage() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADAE0 -> 0x2ADAE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADAF0 -> 0x002ADAF8 +*/ +// Range: 0x2ADAF0 -> 0x2ADAF8 +signed int CollReview() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADAF0 -> 0x2ADAF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5B10 -> 0x002C5B64 +*/ +// Range: 0x2C5B10 -> 0x2C5B64 +void * __ct(class zNPCGoalCommon * this /* r2 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5B10 -> 0x2C5B64 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalDuplotron.cpp b/dwarf/SB/Game/zNPCGoalDuplotron.cpp new file mode 100644 index 000000000..2b5fa0678 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalDuplotron.cpp @@ -0,0 +1,3626 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__17zNPCGoalDuploLive; // size: 0x34, address: 0x50C2A0 +unsigned int g_hash_dupoanim[5]; // size: 0x14, address: 0x5CF440 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__17zNPCGoalDuploDead; // size: 0x34, address: 0x50C2E0 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__12zNPCGoalDead; // size: 0x34, address: 0x509FC0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon4 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class zNPCGoalDuploLive : public zNPCGoalCommon { + // total size: 0x58 +public: + float tmr_chkPlyrDist; // offset 0x4C, size 0x4 + signed int cnt_destruct; // offset 0x50, size 0x4 + enum en_dupolive livestat; // offset 0x54, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zNPCDuplotron : public zNPCCommon { + // total size: 0x2B0 +public: + float tmr_smokeCycle; // offset 0x2A0, size 0x4 + class zNPCSpawner * spawner; // offset 0x2A4, size 0x4 + float tmr_blink; // offset 0x2A8, size 0x4 + signed int idx_blink; // offset 0x2AC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +enum en_SM_WAVE_MODE { + SM_WAVE_CONTINUOUS = 0, + SM_WAVE_DISCREET = 1, + SM_WAVE_NOMORE = 2, + SM_WAVE_FORCE = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +enum en_SM_WAVE_STAT { + SM_STAT_BEGIN = 0, + SM_STAT_INPROG = 1, + SM_STAT_ABORT = 2, + SM_STAT_MARKTIME = 3, + SM_STAT_DONE = 4, + SM_STAT_NOMORE = 5, + SM_STAT_FORCE = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class HAZNotify { + // total size: 0x4 +}; +enum en_SM_NPC_STATUS { + SM_NPC_DEAD = 0, + SM_NPC_READY = 1, + SM_NPC_PENDING = 2, + SM_NPC_SPAWNED = 3, + SM_NPC_ACTIVE = 4, + SM_NPC_NOMORE = 5, + SM_NPC_FORCE = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zEntHangable { + // total size: 0x0 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x2C +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class SMNPCStatus { + // total size: 0xC +public: + class zNPCCommon * npc; // offset 0x0, size 0x4 + enum en_SM_NPC_STATUS status; // offset 0x4, size 0x4 + class zMovePoint * sp_prefer; // offset 0x8, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class SMSPStatus { + // total size: 0xC +public: + class zMovePoint * sp; // offset 0x0, size 0x4 + signed int flg_stat; // offset 0x4, size 0x4 + class zNPCCommon * npc_prefer; // offset 0x8, size 0x4 +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zNPCSpawner : public RyzMemData { + // total size: 0x1C4 +public: + signed int flg_spawner; // offset 0x0, size 0x4 + class zNPCCommon * npc_owner; // offset 0x4, size 0x4 + float tym_delay; // offset 0x8, size 0x4 + signed int max_spawn; // offset 0xC, size 0x4 + enum en_SM_WAVE_MODE wavemode; // offset 0x10, size 0x4 + enum en_SM_WAVE_STAT wavestat; // offset 0x14, size 0x4 + float tmr_wave; // offset 0x18, size 0x4 + signed int cnt_spawn; // offset 0x1C, size 0x4 + class SMSPStatus sppool[16]; // offset 0x20, size 0xC0 + class SMNPCStatus npcpool[16]; // offset 0xE0, size 0xC0 + class st_XORDEREDARRAY pendlist; // offset 0x1A0, size 0x10 + class st_XORDEREDARRAY actvlist; // offset 0x1B0, size 0x10 + signed int cnt_cleanup; // offset 0x1C0, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RyzMemData { + // total size: 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum en_dupolive { + LIVESTAT_NORMAL = 0, + LIVESTAT_COUNTDOWN = 1, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319800 -> 0x00319968 +*/ +// Range: 0x319800 -> 0x319968 +void SDS_StartExplode(class zNPCGoalDuploLive * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319800 -> 0x319968 + class zNPCDuplotron * npc; // r18 + class NPCHazard * haz; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319970 -> 0x00319A80 +*/ +// Range: 0x319970 -> 0x319A80 +signed int SDS_Countdown(class zNPCGoalDuploLive * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319970 -> 0x319A80 + class zNPCDuplotron * npc; // r16 + signed int done; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319A80 -> 0x00319BA4 +*/ +// Range: 0x319A80 -> 0x319BA4 +signed int NPCMessage(class zNPCGoalDuploLive * this /* r17 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319A80 -> 0x319BA4 + signed int handled; // r16 + class zNPCDuplotron * npc; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319BB0 -> 0x00319E14 +*/ +// Range: 0x319BB0 -> 0x319E14 +signed int Process(class zNPCGoalDuploLive * this /* r22 */, enum en_trantype * trantype /* r21 */, float dt /* r20 */, void * updCtxt /* r20 */, class xScene * xscn /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319BB0 -> 0x319E14 + class zNPCDuplotron * npc; // r18 + signed int nextgoal; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319E20 -> 0x00319E30 +*/ +// Range: 0x319E20 -> 0x319E30 +signed int Enter(class zNPCGoalDuploLive * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319E20 -> 0x319E30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00319E30 -> 0x00319F90 +*/ +// Range: 0x319E30 -> 0x319F90 +class xFactoryInst * GOALCreate_Duplotron(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x319E30 -> 0x319F90 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalRobo.cpp b/dwarf/SB/Game/zNPCGoalRobo.cpp new file mode 100644 index 000000000..b235442f3 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalRobo.cpp @@ -0,0 +1,8624 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xCollis g_SharedCollisRecordList[6]; // size: 0x1E0, address: 0x4DD180 +static class xCollis g_SharedCollisRecord; // size: 0x50, address: 0x4DD360 +static signed int g_idx_handbone[6]; // size: 0x18, address: 0x4DD3D0 +float g_ang_yankDir; // size: 0x4, address: 0x50EF64 +static class RoboCopMap g_map_policeCounter[17]; // size: 0x88, address: 0x4DD480 +static class _xCounter * g_cntr_policeLineup[15]; // size: 0x3C, address: 0x5CBFD0 +struct /* @anon22 */ { + // total size: 0x34 +} __vt__15zNPCGoalDeflate; // size: 0x34, address: 0x508FE0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class NPCLaser laser; // size: 0x24, address: 0x5CC930 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xVec3 g_X3; // size: 0xC, address: 0x4F8D80 +class xVec3 g_Z3; // size: 0xC, address: 0x4F8DA0 +unsigned int g_hash_roboanim[41]; // size: 0xA4, address: 0x5CC290 +float tmr_hokeypokey; // size: 0x4, address: 0x50FEE8 +signed int g_needMusician; // size: 0x4, address: 0x50EFB0 +class NPCLaser laser; // size: 0x24, address: 0x5CC430 +signed int cnt_alerthokey; // size: 0x4, address: 0x50FEEC +class NPCBattle g_GlobalBattleData; // size: 0x14, address: 0x5CC370 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__16zNPCGoalTubeDead; // size: 0x34, address: 0x509070 +struct /* @anon50 */ { + // total size: 0x34 +} __vt__17zNPCGoalTubeDying; // size: 0x34, address: 0x509030 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__18zNPCGoalTubeBonked; // size: 0x34, address: 0x5090B0 +struct /* @anon26 */ { + // total size: 0x34 +} __vt__17zNPCGoalTubeBirth; // size: 0x34, address: 0x5090F0 +struct /* @anon56 */ { + // total size: 0x34 +} __vt__17zNPCGoalTubeLasso; // size: 0x34, address: 0x509130 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__18zNPCGoalTubeAttack; // size: 0x34, address: 0x509170 +struct /* @anon32 */ { + // total size: 0x34 +} __vt__20zNPCGoalTubeDuckling; // size: 0x34, address: 0x5091B0 +struct /* @anon16 */ { + // total size: 0x34 +} __vt__15zNPCGoalTubePal; // size: 0x34, address: 0x5091F0 +struct /* @anon47 */ { + // total size: 0x34 +} __vt__15zNPCGoalRespawn; // size: 0x34, address: 0x509230 +struct /* @anon61 */ { + // total size: 0x34 +} __vt__17zNPCGoalAfterlife; // size: 0x34, address: 0x509270 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__13zNPCGoalKnock; // size: 0x34, address: 0x5092B0 +struct /* @anon21 */ { + // total size: 0x34 +} __vt__14zNPCGoalBashed; // size: 0x34, address: 0x509330 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__13zNPCGoalWound; // size: 0x34, address: 0x5092F0 +struct /* @anon58 */ { + // total size: 0x34 +} __vt__14zNPCGoalDamage; // size: 0x34, address: 0x509370 +struct /* @anon60 */ { + // total size: 0x34 +} __vt__18zNPCGoalHokeyPokey; // size: 0x34, address: 0x509570 +struct /* @anon23 */ { + // total size: 0x34 +} __vt__16zNPCGoalTeleport; // size: 0x34, address: 0x5095B0 +struct /* @anon52 */ { + // total size: 0x34 +} __vt__17zNPCGoalDogPounce; // size: 0x34, address: 0x5095F0 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__15zNPCGoalDogDash; // size: 0x34, address: 0x509630 +struct /* @anon34 */ { + // total size: 0x34 +} __vt__15zNPCGoalDogBark; // size: 0x34, address: 0x509670 +struct /* @anon28 */ { + // total size: 0x34 +} __vt__17zNPCGoalDogLaunch; // size: 0x34, address: 0x5096B0 +struct /* @anon25 */ { + // total size: 0x34 +} __vt__16zNPCGoalPatThrow; // size: 0x34, address: 0x509470 +struct /* @anon57 */ { + // total size: 0x34 +} __vt__16zNPCGoalPatCarry; // size: 0x34, address: 0x5094B0 +struct /* @anon24 */ { + // total size: 0x34 +} __vt__15zNPCGoalStunned; // size: 0x34, address: 0x5094F0 +struct /* @anon53 */ { + // total size: 0x34 +} __vt__15zNPCGoalEvilPat; // size: 0x34, address: 0x509530 +struct /* @anon62 */ { + // total size: 0x34 +} __vt__18zNPCGoalLassoThrow; // size: 0x34, address: 0x5093B0 +struct /* @anon48 */ { + // total size: 0x34 +} __vt__17zNPCGoalLassoGrab; // size: 0x34, address: 0x5093F0 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__17zNPCGoalLassoBase; // size: 0x34, address: 0x509430 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__19zNPCGoalAttackSlick; // size: 0x34, address: 0x5096F0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__19zNPCGoalAttackChuck; // size: 0x34, address: 0x509730 +struct /* @anon33 */ { + // total size: 0x34 +} __vt__22zNPCGoalAttackArfMelee; // size: 0x34, address: 0x5097B0 +struct /* @anon27 */ { + // total size: 0x34 +} __vt__17zNPCGoalAttackArf; // size: 0x34, address: 0x509770 +struct /* @anon38 */ { + // total size: 0x34 +} __vt__21zNPCGoalAttackMonsoon; // size: 0x34, address: 0x5097F0 +struct /* @anon30 */ { + // total size: 0x34 +} __vt__20zNPCGoalAttackTarTar; // size: 0x34, address: 0x509830 +struct /* @anon49 */ { + // total size: 0x34 +} __vt__20zNPCGoalAttackHammer; // size: 0x34, address: 0x509870 +struct /* @anon42 */ { + // total size: 0x34 +} __vt__21zNPCGoalAttackChomper; // size: 0x34, address: 0x5098B0 +struct /* @anon37 */ { + // total size: 0x34 +} __vt__20zNPCGoalAttackFodder; // size: 0x34, address: 0x509900 +struct /* @anon41 */ { + // total size: 0x34 +} __vt__17zNPCGoalAttackCQC; // size: 0x34, address: 0x509940 +struct /* @anon40 */ { + // total size: 0x34 +} __vt__18zNPCGoalAlertSlick; // size: 0x34, address: 0x5099C0 +struct /* @anon43 */ { + // total size: 0x34 +} __vt__20zNPCGoalAlertTubelet; // size: 0x34, address: 0x509A00 +struct /* @anon39 */ { + // total size: 0x34 +} __vt__18zNPCGoalAlertChuck; // size: 0x34, address: 0x509A40 +struct /* @anon35 */ { + // total size: 0x34 +} __vt__18zNPCGoalAlertPuppy; // size: 0x34, address: 0x509A80 +struct /* @anon36 */ { + // total size: 0x34 +} __vt__16zNPCGoalAlertArf; // size: 0x34, address: 0x509AC0 +struct /* @anon17 */ { + // total size: 0x34 +} __vt__19zNPCGoalAlertSleepy; // size: 0x34, address: 0x509B00 +struct /* @anon29 */ { + // total size: 0x34 +} __vt__20zNPCGoalAlertMonsoon; // size: 0x34, address: 0x509B40 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__18zNPCGoalAlertGlove; // size: 0x34, address: 0x509B80 +struct /* @anon59 */ { + // total size: 0x34 +} __vt__19zNPCGoalAlertTarTar; // size: 0x34, address: 0x509BC0 +struct /* @anon54 */ { + // total size: 0x34 +} __vt__19zNPCGoalAlertHammer; // size: 0x34, address: 0x509C00 +struct /* @anon44 */ { + // total size: 0x34 +} __vt__20zNPCGoalAlertFodBzzt; // size: 0x34, address: 0x509C80 +struct /* @anon51 */ { + // total size: 0x34 +} __vt__20zNPCGoalAlertChomper; // size: 0x34, address: 0x509C40 +struct /* @anon20 */ { + // total size: 0x34 +} __vt__20zNPCGoalAlertFodBomb; // size: 0x34, address: 0x509CC0 +struct /* @anon18 */ { + // total size: 0x34 +} __vt__19zNPCGoalAlertFodder; // size: 0x34, address: 0x509D00 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__13zNPCGoalAlert; // size: 0x34, address: 0x509D40 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__13zNPCGoalChase; // size: 0x34, address: 0x509980 +struct /* @anon19 */ { + // total size: 0x34 +} __vt__14zNPCGoalGoHome; // size: 0x34, address: 0x509D80 +struct /* @anon45 */ { + // total size: 0x34 +} __vt__13zNPCGoalEvade; // size: 0x34, address: 0x509DC0 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__13zNPCGoalTaunt; // size: 0x34, address: 0x509E00 +struct /* @anon46 */ { + // total size: 0x34 +} __vt__14zNPCGoalNotice; // size: 0x34, address: 0x509E40 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__12zNPCGoalDead; // size: 0x34, address: 0x509FC0 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon64 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon15 */ { + // total size: 0x34 +} __vt__16zNPCGoalLoopAnim; // size: 0x34, address: 0x50A140 +struct /* @anon31 */ { + // total size: 0x34 +} __vt__16zNPCGoalPushAnim; // size: 0x34, address: 0x50A180 +struct /* @anon63 */ { + // total size: 0xC +} __vt__9HAZNotify; // size: 0xC, address: 0x509018 +struct /* @anon55 */ { + // total size: 0xC +} __vt__Q220zNPCGoalAttackFodder12CattleNotify; // size: 0xC, address: 0x5098E8 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zNPCGoalAlertTarTar : public zNPCGoalCommon { + // total size: 0x5C +public: + signed int flg_attack; // offset 0x4C, size 0x4 + enum en_alerttart alerttart; // offset 0x50, size 0x4 + enum en_hoppy hoppy; // offset 0x54, size 0x4 + float tmr_reload; // offset 0x58, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zNPCRobot : public zNPCCommon { + // total size: 0x37C +public: + signed int hitpoints; // offset 0x2A0, size 0x4 + float tmr_safetime; // offset 0x2A4, size 0x4 + class NPCArena arena; // offset 0x2A8, size 0x20 + class NPCBattle * inf_battle; // offset 0x2C8, size 0x4 + signed int idx_neckBone; // offset 0x2CC, size 0x4 + float tmr_stunned; // offset 0x2D0, size 0x4 + class NPCGlyph * glyf_stun; // offset 0x2D4, size 0x4 + signed int cnt_nextemit; // offset 0x2D8, size 0x4 + class xVec3 vel_bunnyhop; // offset 0x2DC, size 0xC + class zNPCLassoInfo raw_lassoinfo; // offset 0x2E8, size 0x18 + class xEntDrive raw_drvdata; // offset 0x300, size 0x7C +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zNPCGoalKnock : public zNPCGoalCommon { + // total size: 0x64 +public: + signed int flg_knock; // offset 0x4C, size 0x4 + class xVec3 pos_bumper; // offset 0x50, size 0xC + signed int floorBounce; // offset 0x5C, size 0x4 + unsigned int streakID; // offset 0x60, size 0x4 +}; +class zNPCTubeSlave : public zNPCRobot { + // total size: 0x384 +public: + enum en_tubespot tubespot; // offset 0x37C, size 0x4 + class zNPCTubelet * tub_pete; // offset 0x380, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +class zNPCTubelet : public zNPCRobot { + // total size: 0x39C +public: + enum en_tubestat tubestat; // offset 0x37C, size 0x4 + class zNPCTubeSlave * tub_paul; // offset 0x380, size 0x4 + class zNPCTubeSlave * tub_mary; // offset 0x384, size 0x4 + float bonkSpinRate; // offset 0x388, size 0x4 + float tmr_restoreHealth; // offset 0x38C, size 0x4 + signed int pete_attack_last; // offset 0x390, size 0x4 + class TubeNotice psynote; // offset 0x394, size 0x8 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zNPCGoalAlertFodBzzt : public zNPCGoalCommon { + // total size: 0x80 +public: + signed int flg_alert; // offset 0x4C, size 0x4 + enum en_alertbzzt alertbzzt; // offset 0x50, size 0x4 + float tmr_warmup; // offset 0x54, size 0x4 + signed int cnt_nextlos; // offset 0x58, size 0x4 + float len_laser; // offset 0x5C, size 0x4 + class xVec3 pos_laserSource; // offset 0x60, size 0xC + class xVec3 pos_laserTarget; // offset 0x6C, size 0xC + class RwRGBA rgba_deathRay; // offset 0x78, size 0x4 + signed int cnt_inContact; // offset 0x7C, size 0x4 +}; +class zNPCGoalAttackHammer : public zNPCGoalPushAnim { + // total size: 0x78 +public: + signed int flg_attack; // offset 0x54, size 0x4 + class xVec3 pos_lastVert; // offset 0x58, size 0xC + class xVec3 pos_oldVert; // offset 0x64, size 0xC + unsigned int streakID[2]; // offset 0x70, size 0x8 +}; +class zNPCGoalPatCarry : public zNPCGoalCommon { + // total size: 0x4C +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zNPCGoalDogLaunch : public zNPCGoalCommon { + // total size: 0x90 +public: + signed int flg_launch; // offset 0x4C, size 0x4 + class xVec3 pos_src; // offset 0x50, size 0xC + class xVec3 pos_tgt; // offset 0x5C, size 0xC + class xParabola parabinfo; // offset 0x68, size 0x24 + float tmr_remain; // offset 0x8C, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zNPCGoalAlertFodBomb : public zNPCGoalCommon { + // total size: 0x5C +public: + signed int flg_attack; // offset 0x4C, size 0x4 + enum en_alertbomb alertbomb; // offset 0x50, size 0x4 + float tmr_nextping; // offset 0x54, size 0x4 + float tmr_countdown; // offset 0x58, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class zNPCGoalAlertPuppy : public zNPCGoalCommon { + // total size: 0x50 +public: + enum en_alertpuppy alertpup; // offset 0x4C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zNPCGoalAlertFodder : public zNPCGoalCommon { + // total size: 0x58 +public: + signed int flg_attack; // offset 0x4C, size 0x4 + enum en_alertfod alertfod; // offset 0x50, size 0x4 + float tmr_alertfod; // offset 0x54, size 0x4 +}; +class zNPCGoalAlertSleepy : public zNPCGoalCommon { + // total size: 0x64 +public: + class xVec3 dir_attack; // offset 0x4C, size 0xC + signed int flg_attack; // offset 0x58, size 0x4 + enum en_slepatak sleepattack; // offset 0x5C, size 0x4 + float tmr_minAttack; // offset 0x60, size 0x4 +}; +class zNPCGoalAlertChuck : public zNPCGoalCommon { + // total size: 0x78 +public: + class xVec3 dir_attack; // offset 0x4C, size 0xC + signed int flg_attack; // offset 0x58, size 0x4 + enum en_alertchuk alertchuk; // offset 0x5C, size 0x4 + float tmr_reload; // offset 0x60, size 0x4 + float tmr_hover; // offset 0x64, size 0x4 + class xVec3 dir_zoom; // offset 0x68, size 0xC + float dst_zoom; // offset 0x74, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zNPCGoalAttackArfMelee : public zNPCGoalPushAnim { + // total size: 0x64 +public: + unsigned int streakID[4]; // offset 0x54, size 0x10 +}; +class zNPCGoalEvilPat : public zNPCGoalCommon { + // total size: 0x4C +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zNPCArfArf : public zNPCRobot { + // total size: 0x3A4 +public: + signed int flg_puppy[5]; // offset 0x37C, size 0x14 + class zNPCArfDog * pup_kennel[5]; // offset 0x390, size 0x14 +}; +class zNPCGoalDogPounce : public zNPCGoalPushAnim { + // total size: 0x54 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zNPCGoalAfterlife : public zNPCGoalDead { + // total size: 0x54 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zNPCGoalTubeAttack : public zNPCGoalCommon { + // total size: 0x84 +public: + signed int flg_attack; // offset 0x4C, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x8 + public: + enum en_marystat marystat; // offset 0x0, size 0x4 + float ang_spinrate; // offset 0x4, size 0x4 + } mary; // offset 0x50, size 0x8 + class /* @class */ { + // total size: 0x34 + public: + signed int flg_paul; // offset 0x0, size 0x4 + signed int cnt_nextlos; // offset 0x4, size 0x4 + float len_laser; // offset 0x8, size 0x4 + class xVec3 pos_laserSource; // offset 0xC, size 0xC + class xVec3 pos_laserTarget; // offset 0x18, size 0xC + class NPCBullseye bullseye; // offset 0x24, size 0x10 + } paul; // offset 0x50, size 0x34 + }; +}; +class NPCBlinker { + // total size: 0x8 +public: + float tmr_uvcell; // offset 0x0, size 0x4 + signed int idx_uvcell; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zNPCGoalAttackChomper : public zNPCGoalPushAnim { + // total size: 0x54 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class zNPCGoalTaunt : public zNPCGoalLoopAnim { + // total size: 0x6C +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class zNPCTarTar : public zNPCRobot { + // total size: 0x37C +}; +class zNPCGoalAlertArf : public zNPCGoalCommon { + // total size: 0x54 +public: + enum en_alertarf alertarf; // offset 0x4C, size 0x4 + float tmr_reload; // offset 0x50, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zNPCGoalLassoThrow : public zNPCGoalCommon { + // total size: 0x58 +public: + signed int flg_throw; // offset 0x4C, size 0x4 + signed int floorBounce; // offset 0x50, size 0x4 + float tmr_colDelay; // offset 0x54, size 0x4 +}; +class zNPCGoalRespawn : public zNPCGoalCommon { + // total size: 0x64 +public: + float tmr_respawn; // offset 0x4C, size 0x4 + float tmr_robobits; // offset 0x50, size 0x4 + signed int cnt_ring; // offset 0x54, size 0x4 + class xVec3 pos_poofHere; // offset 0x58, size 0xC +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +enum en_alertbomb { + FODBOMB_ALERT_NOTICE = 0, + FODBOMB_ALERT_SONAR = 1, + FODBOMB_ALERT_TERMINAL = 2, + FODBOMB_ALERT_NOMORE = 3, + FODBOMB_ALERT_FORCE = 2147483647, +}; +enum en_alertarf { + ARF_ALERT_REACT = 0, + ARF_ALERT_READY = 1, + ARF_ALERT_TELEPORT = 2, + ARF_ALERT_NOMORE = 3, + ARF_ALERT_FORCE = 2147483647, +}; +class zEntHangable { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zNPCGoalTubeLasso : public zNPCGoalCommon { + // total size: 0x4C +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zNPCGoalAttackSlick : public zNPCGoalLoopAnim { + // total size: 0x70 +public: + signed int idx_launch; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zNPCArfDog : public zNPCRobot { + // total size: 0x38C +public: + class NPCBlinker blinkHead; // offset 0x37C, size 0x8 + class NPCBlinker blinkTail; // offset 0x384, size 0x8 +}; +class zNPCGoalDamage : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_howtodie; // offset 0x4C, size 0x4 +}; +class zNPCGoalAlertChomper : public zNPCGoalCommon { + // total size: 0x60 +public: + enum en_alertchomp alertchomp; // offset 0x4C, size 0x4 + class xVec3 pos_evade; // offset 0x50, size 0xC + float tmr_evade; // offset 0x5C, size 0x4 +}; +class zNPCGoalAlertGlove : public zNPCGoalCommon { + // total size: 0x84 +public: + float tmr_attack; // offset 0x4C, size 0x4 + float tmr_minAttack; // offset 0x50, size 0x4 + class xVec3 pos_began; // offset 0x54, size 0xC + class xVec3 pos_end; // offset 0x60, size 0xC + class xVec3 dir_axis; // offset 0x6C, size 0xC + float dst_extend; // offset 0x78, size 0x4 + signed int goback; // offset 0x7C, size 0x4 + signed int cnt_nextemit; // offset 0x80, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +enum en_alertmony { + MONSOON_ALERT_NOTICE = 0, + MONSOON_ALERT_BEGIN = 1, + MONSOON_ALERT_ARENA = 2, + MONSOON_ALERT_READY = 3, + MONSOON_ALERT_SPITCLOUD = 4, + MONSOON_ALERT_NOMORE = 5, + MONSOON_ALERT_FORCE = 2147483647, +}; +class zNPCFodBzzt : public zNPCRobot { + // total size: 0x398 +public: + class RwRGBA rgba_discoLight; // offset 0x37C, size 0x4 + float tmr_discoLight; // offset 0x380, size 0x4 + class xVec3 pos_discoLight; // offset 0x384, size 0xC + float uv_discoLight[2]; // offset 0x390, size 0x8 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +enum en_alertfod { + FODDER_ALERT_NOTICE = 0, + FODDER_ALERT_ARENA = 1, + FODDER_ALERT_BEGIN = 2, + FODDER_ALERT_CHASE = 3, + FODDER_ALERT_STABDONE = 4, + FODDER_ALERT_EVADE = 5, + FODDER_ALERT_NOMORE = 6, + FODDER_ALERT_FORCE = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class zNPCGoalTubeDuckling : public zNPCGoalCommon { + // total size: 0x70 +public: + signed int flg_duckling; // offset 0x4C, size 0x4 + float tmr_running; // offset 0x50, size 0x4 + float tmr_hoverCycle; // offset 0x54, size 0x4 + float dst_visacard; // offset 0x58, size 0x4 + class xVec3 dir_visacard; // offset 0x5C, size 0xC + float tmr_outward; // offset 0x68, size 0x4 + float dst_preOrbit; // offset 0x6C, size 0x4 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +enum en_alertbzzt { + FODBZZT_ALERT_NOTICE = 0, + FODBZZT_ALERT_ARENA = 1, + FODBZZT_ALERT_CHASE = 2, + FODBZZT_ALERT_NOMORE = 3, + FODBZZT_ALERT_FORCE = 2147483647, +}; +class NPCArena { + // total size: 0x20 +public: + signed int flg_arena; // offset 0x0, size 0x4 + class xVec3 pos_arena; // offset 0x4, size 0xC + float rad_arena; // offset 0x10, size 0x4 + class zMovePoint * nav_arena; // offset 0x14, size 0x4 + class zMovePoint * nav_refer_dest; // offset 0x18, size 0x4 + class zMovePoint * nav_refer_curr; // offset 0x1C, size 0x4 +}; +class zNPCGoalDogBark : public zNPCGoalLoopAnim { + // total size: 0x6C +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zNPCGoalLoopAnim : public zNPCGoalCommon { + // total size: 0x6C +public: + signed int flg_loopanim; // offset 0x4C, size 0x4 + unsigned int anid_stage[3]; // offset 0x50, size 0xC + signed int cnt_loop; // offset 0x5C, size 0x4 + float lastAnimTime; // offset 0x60, size 0x4 + unsigned int origAnimFlags; // offset 0x64, size 0x4 + unsigned int animWeMolested; // offset 0x68, size 0x4 +}; +class zNPCGoalTubeDying : public zNPCGoalCommon { + // total size: 0x6C +public: + signed int flg_tubedying; // offset 0x4C, size 0x4 + float spd_gothatway; // offset 0x50, size 0x4 + signed int cnt_loop; // offset 0x54, size 0x4 + float hyt_was; // offset 0x58, size 0x4 + float scl_shrink; // offset 0x5C, size 0x4 + class xVec3 pos_lassoDeath; // offset 0x60, size 0xC +}; +class zNPCGoalNotice : public zNPCGoalPushAnim { + // total size: 0x54 +}; +class zNPCGoalLassoGrab : public zNPCGoalCommon { + // total size: 0x4C +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class _xCounter : public xBase { + // total size: 0x18 +public: + class xCounterAsset * asset; // offset 0x10, size 0x4 + signed short count; // offset 0x14, size 0x2 + unsigned char state; // offset 0x16, size 0x1 + unsigned char counterFlags; // offset 0x17, size 0x1 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zNPCGoalDeflate : public zNPCGoalCommon { + // total size: 0x58 +public: + float spd_gothatway; // offset 0x4C, size 0x4 + signed int cnt_loop; // offset 0x50, size 0x4 + float scl_shrink; // offset 0x54, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zNPCGoalWound : public zNPCGoalPushAnim { + // total size: 0x64 +public: + class xVec3 dir_fling; // offset 0x54, size 0xC + signed int flg_knock; // offset 0x60, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +enum en_tubespot { + ROBO_TUBE_PETE = 0, + ROBO_TUBE_PAUL = 1, + ROBO_TUBE_MARY = 2, + ROBO_TUBE_NOMORE = 3, + ROBO_TUBE_FORCE = 2147483647, +}; +class zNPCGoalAttackCQC : public zNPCGoalPushAnim { + // total size: 0x64 +public: + class xVec3 dir_attack; // offset 0x54, size 0xC + signed int flg_attack; // offset 0x60, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class zNPCGoalTubePal : public zNPCGoalCommon { + // total size: 0x4C +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zNPCGoalAlertTubelet : public zNPCGoalCommon { + // total size: 0x5C +public: + signed int flg_attack; // offset 0x4C, size 0x4 + signed int cnt_nextlos; // offset 0x50, size 0x4 + float len_laser; // offset 0x54, size 0x4 + signed int pete_attack_last; // offset 0x58, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class xPSYNote { + // total size: 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zNPCFodBomb : public zNPCRobot { + // total size: 0x384 +public: + class NPCBlinker blinker; // offset 0x37C, size 0x8 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class zNPCGoalTeleport : public zNPCGoalCommon { + // total size: 0x50 +public: + float tmr_countdown; // offset 0x4C, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +enum en_arfdoes { + ARF_DOES_NOT = 0, + ARF_DOES_LOB = 1, + ARF_DOES_MELEE = 2, + ARF_DOES_NOMORE = 3, + ARF_DOES_FORCE = 2147483647, +}; +class zNPCGoalAlertHammer : public zNPCGoalCommon { + // total size: 0x58 +public: + signed int flg_attack; // offset 0x4C, size 0x4 + enum en_alertham alertham; // offset 0x50, size 0x4 + float tmr_alertham; // offset 0x54, size 0x4 +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zNPCGoalChase : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_chase; // offset 0x4C, size 0x4 +}; +class zNPCGoalAttackArf : public zNPCGoalPushAnim { + // total size: 0x58 +public: + signed int flg_attack; // offset 0x54, size 0x4 +}; +class zNPCGoalHokeyPokey : public zNPCGoalLoopAnim { + // total size: 0x74 +public: + signed int flg_hokey; // offset 0x6C, size 0x4 + float ang_spinrate; // offset 0x70, size 0x4 +}; +enum en_marystat { + TUBE_MARY_WAIT = 0, + TUBE_MARY_ANGRY = 1, + TUBE_MARY_COOLOFF = 2, + TUBE_MARY_NOMORE = 3, + TUBE_MARY_FORCE = 2147483647, +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class zNPCGoalTubeBonked : public zNPCGoalCommon { + // total size: 0x60 +public: + float tmr_recover; // offset 0x4C, size 0x4 + float ang_spinrate; // offset 0x50, size 0x4 + class xVec3 vec_offsetPete; // offset 0x54, size 0xC +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +struct /* @anon14 */ { + // total size: 0x34 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class zNPCGoalAttackChuck : public zNPCGoalPushAnim { + // total size: 0x58 +public: + signed int idx_launch; // offset 0x54, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +struct /* @anon15 */ { + // total size: 0x34 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +enum en_slepatak { + SLEEP_ATAK_REACT = 0, + SLEEP_ATAK_ZAP = 1, + SLEEP_ATAK_LAUGH = 2, + SLEEP_ATAK_NOMORE = 3, + SLEEP_ATAK_FORCE = 2147483647, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class zNPCGoalAlertMonsoon : public zNPCGoalCommon { + // total size: 0x70 +public: + class xVec3 dir_attack; // offset 0x4C, size 0xC + signed int flg_attack; // offset 0x58, size 0x4 + enum en_alertmony alertmony; // offset 0x5C, size 0x4 + float tmr_reload; // offset 0x60, size 0x4 + class xVec3 pos_corner; // offset 0x64, size 0xC +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum en_NPCTYPES { + NPC_TYPE_UNKNOWN = 0, + NPC_TYPE_BASIC = 1314140208, + NPC_TYPE_COMMON = 1314140209, + NPC_TYPE_AMBIENT = 1314149168, + NPC_TYPE_VILLAGER = 1314149169, + NPC_TYPE_ROBOT = 1314149170, + NPC_TYPE_BOSS = 1314149171, + NPC_TYPE_TEST = 1314149172, + NPC_TYPE_BADGUY = 1314149173, + NPC_TYPE_JELLYPINK = 1314144560, + NPC_TYPE_JELLYBLUE = 1314144561, + NPC_TYPE_KINGNEPTUNE = 1314144562, + NPC_TYPE_MIMEFISH = 1314144563, + NPC_TYPE_COW = 1314144564, + NPC_TYPE_TIKI_WOOD = 1314149424, + NPC_TYPE_TIKI_LOVEY = 1314149425, + NPC_TYPE_TIKI_QUIET = 1314149426, + NPC_TYPE_TIKI_THUNDER = 1314149427, + NPC_TYPE_TIKI_STONE = 1314149428, + NPC_TYPE_FISH = 1314145840, + NPC_TYPE_FISH_MALE = 1314145841, + NPC_TYPE_FISH_FEMALE = 1314145842, + NPC_TYPE_FISH_ELDER = 1314145843, + NPC_TYPE_FISH_ELDESS = 1314145844, + NPC_TYPE_FISH_BOY = 1314145845, + NPC_TYPE_FISH_GIRL = 1314145846, + NPC_TYPE_BALLOONBOY = 1314145847, + NPC_TYPE_GARY = 1314145848, + NPC_TYPE_SQUIDWARD = 1314145849, + NPC_TYPE_SQUIDWARD_MUSIC = 1314145850, + NPC_TYPE_SQUIDWARD_BANDAID = 1314145851, + NPC_TYPE_DUTCHMAN_NSB = 1314145852, + NPC_TYPE_SANDYBIKINI = 1314145853, + NPC_TYPE_SANDYNPC = 1314145854, + NPC_TYPE_PATNPC = 1314145855, + NPC_TYPE_BOBNPC = 1314145856, + NPC_TYPE_PLANKNPC = 1314145857, + NPC_TYPE_MRKRABS = 1314145858, + NPC_TYPE_MSPUFFS = 1314145859, + NPC_TYPE_LARRY = 1314145860, + NPC_TYPE_BUBBUDDY = 1314145861, + NPC_TYPE_NEWSFISH = 1314145862, + NPC_TYPE_NEWSFISHTV = 1314145863, + NPC_TYPE_MOTORIST = 1314145864, + NPC_TYPE_MERMANCHAIR = 1314145865, + NPC_TYPE_MERMAN = 1314145866, + NPC_TYPE_BARNACLEBOY = 1314145867, + NPC_TYPE_WORM = 1314145868, + NPC_TYPE_HAMMER = 1314148912, + NPC_TYPE_HAMSPIN = 1314148913, + NPC_TYPE_TARTAR = 1314148914, + NPC_TYPE_GLOVE = 1314148915, + NPC_TYPE_MONSOON = 1314148916, + NPC_TYPE_SLEEPY = 1314148917, + NPC_TYPE_ARFDOG = 1314148918, + NPC_TYPE_ARFARF = 1314148919, + NPC_TYPE_CHUCK = 1314148920, + NPC_TYPE_TUBELET = 1314148921, + NPC_TYPE_TUBESLAVE = 1314148922, + NPC_TYPE_SLICK = 1314148923, + NPC_TYPE_FODDER = 1314148924, + NPC_TYPE_FODBOMB = 1314148925, + NPC_TYPE_FODBZZT = 1314148926, + NPC_TYPE_CHOMPER = 1314148927, + NPC_TYPE_CRITTER = 1314148928, + NPC_TYPE_DUPLOTRON = 1314145328, + NPC_TYPE_KINGJELLY = 1314146352, + NPC_TYPE_DUTCHMAN = 1314146353, + NPC_TYPE_PRAWN = 1314146354, + NPC_TYPE_BOSSSANDY = 1314144816, + NPC_TYPE_BOSSPAT = 1314144817, + NPC_TYPE_BOSS_SB1 = 1314144818, + NPC_TYPE_BOSSBOBBY = 1314144819, + NPC_TYPE_BOSSPLANKTON = 1314144820, + NPC_TYPE_BADGUYMEDIUM = 1312966448, + NPC_TYPE_NOMORE = 1312966449, + NPC_TYPE_FORCE = 2147483647, +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +struct /* @anon16 */ { + // total size: 0x34 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zNPCGoalAttackTarTar : public zNPCGoalPushAnim { + // total size: 0x68 +public: + signed int flg_attack; // offset 0x54, size 0x4 + signed int idx_launch; // offset 0x58, size 0x4 + class xVec3 pos_aimbase; // offset 0x5C, size 0xC +}; +struct /* @anon17 */ { + // total size: 0x34 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +struct /* @anon18 */ { + // total size: 0x34 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class NPCBullseye { + // total size: 0x10 +public: + class xVec3 pos; // offset 0x0, size 0xC + float spd; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +struct /* @anon19 */ { + // total size: 0x34 +}; +class rxReq { + // total size: 0x0 +}; +struct /* @anon20 */ { + // total size: 0x34 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon21 */ { + // total size: 0x34 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +struct /* @anon22 */ { + // total size: 0x34 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zNPCGoalAlert : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_alert; // offset 0x4C, size 0x4 +}; +class zNPCGoalBashed : public zNPCGoalLoopAnim { + // total size: 0x6C +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class zNPCGoalEvade : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_evade; // offset 0x4C, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zNPCGoalStunned : public zNPCGoalCommon { + // total size: 0x4C +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zNPCGoalAlertSlick : public zNPCGoalCommon { + // total size: 0x64 +public: + signed int flg_alert; // offset 0x4C, size 0x4 + enum en_alertslik alertslik; // offset 0x50, size 0x4 + float tmr_reload; // offset 0x54, size 0x4 + class xVec3 pos_corner; // offset 0x58, size 0xC +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +struct /* @anon23 */ { + // total size: 0x34 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zNPCGoalLassoBase : public zNPCGoalCommon { + // total size: 0x4C +}; +struct /* @anon24 */ { + // total size: 0x34 +}; +struct /* @anon25 */ { + // total size: 0x34 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zNPCGoalAttackFodder : public zNPCGoalPushAnim { + // total size: 0x70 +public: + class xVec3 dir_attack; // offset 0x54, size 0xC + signed int flg_attack; // offset 0x60, size 0x4 + class CattleNotify cbNotify; // offset 0x64, size 0x8 + class NPCHazard * haz_cattle; // offset 0x6C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum en_alertchuk { + CHUCK_ALERT_NOTICE = 0, + CHUCK_ALERT_BEGIN = 1, + CHUCK_ALERT_ARENA = 2, + CHUCK_ALERT_READY = 3, + CHUCK_ALERT_BACKAWAY = 4, + CHUCK_ALERT_ZOOMPAST = 5, + CHUCK_ALERT_DIDTHROW = 6, + CHUCK_ALERT_NOMORE = 7, + CHUCK_ALERT_FORCE = 2147483647, +}; +class zNPCGoalDogDash : public zNPCGoalLoopAnim { + // total size: 0x6C +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xCounterAsset : public xBaseAsset { + // total size: 0xC +public: + signed short count; // offset 0x8, size 0x2 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +struct /* @anon26 */ { + // total size: 0x34 +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +struct /* @anon27 */ { + // total size: 0x34 +}; +struct /* @anon28 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x8 +public: + enum en_marystat marystat; // offset 0x0, size 0x4 + float ang_spinrate; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +enum en_copcntr { + ROBOCOP_CNTR_FODDER = 0, + ROBOCOP_CNTR_HAMMER = 1, + ROBOCOP_CNTR_TARTAR = 2, + ROBOCOP_CNTR_GLOVE = 3, + ROBOCOP_CNTR_MONSOON = 4, + ROBOCOP_CNTR_SLEEPY = 5, + ROBOCOP_CNTR_CHUCK = 6, + ROBOCOP_CNTR_TUBELET = 7, + ROBOCOP_CNTR_SLICK = 8, + ROBOCOP_CNTR_FODBOMB = 9, + ROBOCOP_CNTR_FODBZZT = 10, + ROBOCOP_CNTR_CHOMPER = 11, + ROBOCOP_CNTR_ARFARF = 12, + ROBOCOP_CNTR_ARFDOG = 13, + ROBOCOP_CNTR_PLANKTON = 14, + ROBOCOP_CNTR_NOMORE = 15, + ROBOCOP_CNTR_FORCE = 2147483647, +}; +class zNPCSlick : public zNPCRobot { + // total size: 0x390 +public: + float rad_shield; // offset 0x37C, size 0x4 + float tmr_repairShield; // offset 0x380, size 0x4 + float tmr_invuln; // offset 0x384, size 0x4 + float alf_shieldCurrent; // offset 0x388, size 0x4 + float alf_shieldDesired; // offset 0x38C, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class TubeNotice : public xPSYNote { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class NPCBattle { + // total size: 0x14 +public: + class zNPCRobot * members[5]; // offset 0x0, size 0x14 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zNPCGoalTubeDead : public zNPCGoalDead { + // total size: 0x54 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum en_alertslik { + SLICK_ALERT_NOTICE = 0, + SLICK_ALERT_BEGIN = 1, + SLICK_ALERT_ARENA = 2, + SLICK_ALERT_READY = 3, + SLICK_ALERT_NOMORE = 4, + SLICK_ALERT_FORCE = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +struct /* @anon29 */ { + // total size: 0x34 +}; +class xFFX { + // total size: 0x0 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +struct /* @anon30 */ { + // total size: 0x34 +}; +enum en_alertchomp { + CHOMPER_ALERT_NOTICE = 0, + CHOMPER_ALERT_ARENA = 1, + CHOMPER_ALERT_CHASE = 2, + CHOMPER_ALERT_EVADE = 3, + CHOMPER_ALERT_NOMORE = 4, + CHOMPER_ALERT_FORCE = 2147483647, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class NPCGlyph { + // total size: 0x64 +public: + enum en_npcglyph typ_glyph; // offset 0x0, size 0x4 + signed int flg_glyph; // offset 0x4, size 0x4 + class xModelInstance * mdl_glyph; // offset 0x8, size 0x4 + class xVec3 pos_glyph; // offset 0xC, size 0xC + class xVec3 vel_glyph; // offset 0x18, size 0xC + class xMat3x3 rot_glyph; // offset 0x24, size 0x30 + class xVec3 scl_glyph; // offset 0x54, size 0xC + float tmr_glyph; // offset 0x60, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +struct /* @anon31 */ { + // total size: 0x34 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class CattleNotify : public HAZNotify { + // total size: 0x8 +public: + class zNPCGoalAttackFodder * goal; // offset 0x4, size 0x4 +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +struct /* @anon32 */ { + // total size: 0x34 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x34 +public: + signed int flg_paul; // offset 0x0, size 0x4 + signed int cnt_nextlos; // offset 0x4, size 0x4 + float len_laser; // offset 0x8, size 0x4 + class xVec3 pos_laserSource; // offset 0xC, size 0xC + class xVec3 pos_laserTarget; // offset 0x18, size 0xC + class NPCBullseye bullseye; // offset 0x24, size 0x10 +}; +enum en_alertham { + HAMMER_ALERT_NOTICE = 0, + HAMMER_ALERT_BEGIN = 1, + HAMMER_ALERT_CHASE = 2, + HAMMER_ALERT_WHAM = 3, + HAMMER_ALERT_EVADE = 4, + HAMMER_ALERT_NOMORE = 5, + HAMMER_ALERT_FORCE = 2147483647, +}; +class zNPCGoalAttackMonsoon : public zNPCGoalPushAnim { + // total size: 0x58 +public: + signed int idx_launch; // offset 0x54, size 0x4 +}; +class RoboCopMap { + // total size: 0x8 +public: + signed int ntyp_robotype; // offset 0x0, size 0x4 + enum en_copcntr idx_copCounter; // offset 0x4, size 0x4 +}; +struct /* @anon33 */ { + // total size: 0x34 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum en_alerttart { + TARTAR_ALERT_NOTICE = 0, + TARTAR_ALERT_BEGIN = 1, + TARTAR_ALERT_ARENA = 2, + TARTAR_ALERT_READY = 3, + TARTAR_ALERT_NOMORE = 4, + TARTAR_ALERT_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zNPCGoalDead : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_deadinfo; // offset 0x4C, size 0x4 + unsigned char old_moreFlags; // offset 0x50, size 0x1 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +struct /* @anon34 */ { + // total size: 0x34 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +struct /* @anon35 */ { + // total size: 0x34 +}; +class zNPCGoalTubeBirth : public zNPCGoalCommon { + // total size: 0x4C +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +struct /* @anon36 */ { + // total size: 0x34 +}; +struct /* @anon37 */ { + // total size: 0x34 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RyzMemData { + // total size: 0x1 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +struct /* @anon38 */ { + // total size: 0x34 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class zNPCGoalPatThrow : public zNPCGoalCommon { + // total size: 0x4C +}; +class zNPCGoalPushAnim : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_pushanim; // offset 0x4C, size 0x4 + float lastAnimTime; // offset 0x50, size 0x4 +}; +struct /* @anon39 */ { + // total size: 0x34 +}; +struct /* @anon40 */ { + // total size: 0x34 +}; +enum en_alertpuppy { + PUPPY_ALERT_YAPPY = 0, + PUPPY_ALERT_CHASE = 1, + PUPPY_ALERT_ATTAAAAACK = 2, + PUPPY_ALERT_DISAPPEAR = 3, + PUPPY_ALERT_NOMORE = 4, + PUPPY_ALERT_FORCE = 2147483647, +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +struct /* @anon41 */ { + // total size: 0x34 +}; +struct /* @anon42 */ { + // total size: 0x34 +}; +class zNPCSleepy : public zNPCRobot { + // total size: 0x398 +public: + signed int flg_sleepy; // offset 0x37C, size 0x4 + class NPCHazard * haz_patriot; // offset 0x380, size 0x4 + float tmr_nextPatriot; // offset 0x384, size 0x4 + class RwRGBA rgba_coneColor; // offset 0x388, size 0x4 + float tmr_angry; // offset 0x38C, size 0x4 + float tmr_emitzeez; // offset 0x390, size 0x4 + float cnt_grpzeez; // offset 0x394, size 0x4 +}; +struct /* @anon43 */ { + // total size: 0x34 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zNPCGoalGoHome : public zNPCGoalCommon { + // total size: 0x4C +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +struct /* @anon44 */ { + // total size: 0x34 +}; +enum en_npcglyph { + NPC_GLYPH_UNKNOWN = 0, + NPC_GLYPH_SHINYONE = 1, + NPC_GLYPH_SHINYFIVE = 2, + NPC_GLYPH_SHINYTEN = 3, + NPC_GLYPH_SHINYFIFTY = 4, + NPC_GLYPH_SHINYHUNDRED = 5, + NPC_GLYPH_TALK = 6, + NPC_GLYPH_TALKOTHER = 7, + NPC_GLYPH_FRIEND = 8, + NPC_GLYPH_DAZED = 9, + NPC_GLYPH_NOMORE = 10, + NPC_GLYPH_FORCE = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum en_hoppy { + HOPPY_PATTERN_START = 0, + HOPPY_PATTERN_SHOOT = 1, + HOPPY_PATTERN_HOPLEFT = 2, + HOPPY_PATTERN_HOPRIGHT = 3, + HOPPY_PATTERN_HOPSHOOT = 4, + HOPPY_PATTERN_NOMORE = 5, + HOPPY_PATTERN_FORCE = 2147483647, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +struct /* @anon45 */ { + // total size: 0x34 +}; +class anim_coll_data { + // total size: 0x0 +}; +struct /* @anon46 */ { + // total size: 0x34 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class NPCLaser { + // total size: 0x24 +public: + class RwRaster * rast_laser; // offset 0x0, size 0x4 + float radius[2]; // offset 0x4, size 0x8 + float uv_scroll[2]; // offset 0xC, size 0x8 + class RwRGBA rgba[2]; // offset 0x14, size 0x8 + float uv_base[2]; // offset 0x1C, size 0x8 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +struct /* @anon47 */ { + // total size: 0x34 +}; +struct /* @anon48 */ { + // total size: 0x34 +}; +struct /* @anon49 */ { + // total size: 0x34 +}; +enum en_tubestat { + TUBE_STAT_UNKNOWN = 0, + TUBE_STAT_DUCKLING = 1, + TUBE_STAT_ATTACK = 2, + TUBE_STAT_LASSO = 3, + TUBE_STAT_DYING = 4, + TUBE_STAT_DEAD = 5, + TUBE_STAT_BORN = 6, + TUBE_STAT_NOMORE = 7, + TUBE_STAT_FORCE = 2147483647, +}; +struct /* @anon50 */ { + // total size: 0x34 +}; +struct /* @anon51 */ { + // total size: 0x34 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +struct /* @anon52 */ { + // total size: 0x34 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +struct /* @anon53 */ { + // total size: 0x34 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +struct /* @anon54 */ { + // total size: 0x34 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +struct /* @anon55 */ { + // total size: 0xC +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +struct /* @anon56 */ { + // total size: 0x34 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +struct /* @anon57 */ { + // total size: 0x34 +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +struct /* @anon58 */ { + // total size: 0x34 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +struct /* @anon59 */ { + // total size: 0x34 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +struct /* @anon60 */ { + // total size: 0x34 +}; +struct /* @anon61 */ { + // total size: 0x34 +}; +enum en_haznote { + HAZ_NOTE_DISCARD = 0, + HAZ_NOTE_ABORT = 1, + HAZ_NOTE_HITPLAYER = 2, + HAZ_NOTE_RECONFIG = 3, + HAZ_NOTE_NOMORE = 4, + HAZ_NOTE_FORCE = 2147483647, +}; +struct /* @anon62 */ { + // total size: 0x34 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +struct /* @anon63 */ { + // total size: 0xC +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +struct /* @anon64 */ { + // total size: 0x2C +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADB20 -> 0x002ADBD8 +*/ +// Range: 0x2ADB20 -> 0x2ADBD8 +void ROBO_PrepRoboCop() { + // Blocks + /* anonymous block */ { + // Range: 0x2ADB20 -> 0x2ADBD8 + char tempString[32]; // r29+0x60 + char c; // r20 + signed int i; // r19 + unsigned int id; // r2 + class _xCounter * cntr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADBE0 -> 0x002ADE10 +*/ +// Range: 0x2ADBE0 -> 0x2ADE10 +signed int Process(class zNPCGoalDeflate * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ADBE0 -> 0x2ADE10 + signed int nextgoal; // r17 + class zNPCTubelet * npc; // r16 + float tymr_ingoal; // r29+0x90 + class xModelInstance * mdl_wig; // r2 + class xVec3 pos_emit; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADE10 -> 0x002ADEC4 +*/ +// Range: 0x2ADE10 -> 0x2ADEC4 +signed int Exit(class zNPCGoalDeflate * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ADE10 -> 0x2ADEC4 + class zNPCTubelet * npc; // r16 + class xModelInstance * mdl_wig; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ADF20 -> 0x002AE010 +*/ +// Range: 0x2ADF20 -> 0x2AE010 +signed int Enter(class zNPCGoalDeflate * this /* r17 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ADF20 -> 0x2AE010 + class zNPCTubelet * npc; // r16 + class xModelInstance * mdl_flot; // r18 + class xModelInstance * mdl_wig; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE010 -> 0x002AE340 +*/ +// Range: 0x2AE010 -> 0x2AE340 +signed int Process(class zNPCGoalTubeDying * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE010 -> 0x2AE340 + signed int nextgoal; // r17 + class zNPCTubeSlave * npc; // r16 + float tymr_ingoal; // r29+0xB0 + signed int goleft; // r3 + class xModelInstance * mdl_wig; // r2 + class xVec3 pos_emit; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE340 -> 0x002AE3F8 +*/ +// Range: 0x2AE340 -> 0x2AE3F8 +signed int Exit(class zNPCGoalTubeDying * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE340 -> 0x2AE3F8 + class zNPCTubeSlave * npc; // r16 + class xModelInstance * mdl_wig; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE400 -> 0x002AE570 +*/ +// Range: 0x2AE400 -> 0x2AE570 +signed int Enter(class zNPCGoalTubeDying * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE400 -> 0x2AE570 + class zNPCTubeSlave * npc; // r16 + class xModelInstance * mdl_body; // r19 + class xModelInstance * mdl_wig; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE570 -> 0x002AE610 +*/ +// Range: 0x2AE570 -> 0x2AE610 +void ChkPrelimTran(class zNPCGoalTubeDead * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE570 -> 0x2AE610 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE610 -> 0x002AE6F4 +*/ +// Range: 0x2AE610 -> 0x2AE6F4 +signed int Process(class zNPCGoalTubeDead * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE610 -> 0x2AE6F4 + signed int nextgoal; // r29+0x7C + class zNPCTubeSlave * npc; // r17 + class zNPCTubelet * pete; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE700 -> 0x002AE7D0 +*/ +// Range: 0x2AE700 -> 0x2AE7D0 +void CheckForTran(class zNPCGoalTubeBonked * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE700 -> 0x2AE7D0 + class zNPCTubeSlave * npc; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AE7D0 -> 0x002AEA9C +*/ +// Range: 0x2AE7D0 -> 0x2AEA9C +signed int Process(class zNPCGoalTubeBonked * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AE7D0 -> 0x2AEA9C + signed int nextgoal; // r29+0x9C + class zNPCTubeSlave * npc; // r16 + class xVec3 pos_tobe; // r29+0x90 + class xVec3 dir_want; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AEAA0 -> 0x002AEB10 +*/ +// Range: 0x2AEAA0 -> 0x2AEB10 +signed int Exit(class zNPCGoalTubeBonked * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AEAA0 -> 0x2AEB10 + class zNPCTubeSlave * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AEB10 -> 0x002AEC58 +*/ +// Range: 0x2AEB10 -> 0x2AEC58 +signed int Enter(class zNPCGoalTubeBonked * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AEB10 -> 0x2AEC58 + class zNPCTubeSlave * npc; // r16 + float ang_spinStart; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AEC60 -> 0x002AED20 +*/ +// Range: 0x2AEC60 -> 0x2AED20 +void ChkPrelimTran(class zNPCGoalTubeBirth * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AEC60 -> 0x2AED20 + class zNPCTubeSlave * npc; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AED20 -> 0x002AEE04 +*/ +// Range: 0x2AED20 -> 0x2AEE04 +signed int Process(class zNPCGoalTubeBirth * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AED20 -> 0x2AEE04 + signed int nextgoal; // r29+0x7C + class zNPCTubeSlave * npc; // r17 + class zNPCTubelet * pete; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AEE10 -> 0x002AEE70 +*/ +// Range: 0x2AEE10 -> 0x2AEE70 +signed int Enter(class zNPCGoalTubeBirth * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AEE10 -> 0x2AEE70 + class zNPCTubeSlave * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AEE70 -> 0x002AF2DC +*/ +// Range: 0x2AEE70 -> 0x2AF2DC +void MoveTryToEscape(class zNPCGoalTubeLasso * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AEE70 -> 0x2AF2DC + class zNPCTubeSlave * npc; // r16 + class zNPCTubelet * pete; // r13 + class xVec3 pos_tether; // r29+0xE0 + class xVec3 dir_tether; // r29+0xD0 + float dst; // r29+0xF0 + float spd_step; // r2 + class xVec3 diff; // r29+0xC0 + float dst_tetherMax; // @ 0x004FC8D8 + signed char @12203; // @ 0x0050FE70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF2E0 -> 0x002AF388 +*/ +// Range: 0x2AF2E0 -> 0x2AF388 +void ChkPrelimTran(class zNPCGoalTubeLasso * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF2E0 -> 0x2AF388 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF390 -> 0x002AF41C +*/ +// Range: 0x2AF390 -> 0x2AF41C +signed int Process(class zNPCGoalTubeLasso * this /* r18 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF390 -> 0x2AF41C + signed int nextgoal; // r29+0x5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF420 -> 0x002AF480 +*/ +// Range: 0x2AF420 -> 0x2AF480 +signed int Exit(class zNPCGoalTubeLasso * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF420 -> 0x2AF480 + class zNPCTubeSlave * npc; // r16 + class zNPCGoalTubeDying * tubedie; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF480 -> 0x002AF4D4 +*/ +// Range: 0x2AF480 -> 0x2AF4D4 +signed int Enter(class zNPCGoalTubeLasso * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF480 -> 0x2AF4D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF4E0 -> 0x002AF728 +*/ +// Range: 0x2AF4E0 -> 0x2AF728 +void MaryAttack(class zNPCGoalTubeAttack * this /* r16 */, float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF4E0 -> 0x2AF728 + class zNPCTubeSlave * npc; // r2 + class zNPCTubelet * pete; // r8 + class zNPCTubeSlave * paul; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF730 -> 0x002AF748 +*/ +// Range: 0x2AF730 -> 0x2AF748 +void LaserRender(class zNPCGoalTubeAttack * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF730 -> 0x2AF748 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF750 -> 0x002AF818 +*/ +// Range: 0x2AF750 -> 0x2AF818 +void ChkPrelimTran(class zNPCGoalTubeAttack * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF750 -> 0x2AF818 + class zNPCTubeSlave * npc; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF820 -> 0x002AF92C +*/ +// Range: 0x2AF820 -> 0x2AF92C +signed int Process(class zNPCGoalTubeAttack * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF820 -> 0x2AF92C + signed int nextgoal; // r29+0x7C + class zNPCTubeSlave * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF930 -> 0x002AF9C8 +*/ +// Range: 0x2AF930 -> 0x2AF9C8 +signed int Resume(class zNPCGoalTubeAttack * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF930 -> 0x2AF9C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AF9D0 -> 0x002AFA68 +*/ +// Range: 0x2AF9D0 -> 0x2AFA68 +signed int Enter(class zNPCGoalTubeAttack * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AF9D0 -> 0x2AFA68 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AFA70 -> 0x002AFC54 +*/ +// Range: 0x2AFA70 -> 0x2AFC54 +signed int DuckStackInterp(class zNPCGoalTubeDuckling * this /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AFA70 -> 0x2AFC54 + signed int stillbusy; // r18 + class zNPCTubeSlave * npc; // r17 + class zNPCTubelet * pete; // r4 + float turnrate; // r29+0x70 + class xVec3 pos_desire; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002AFC60 -> 0x002B0138 +*/ +// Range: 0x2AFC60 -> 0x2B0138 +void MoveFrolic(class zNPCGoalTubeDuckling * this /* r18 */, float dt /* r25 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2AFC60 -> 0x2B0138 + class zNPCTubeSlave * npc; // r17 + float ang_turnrate; // r1 + class xVec3 vec_offset; // r29+0xC0 + float dst_vert; // r24 + float dst_horz; // r23 + float factor; // r22 + float interval; // r21 + float vertDampen; // r20 + float rat_inv; // r29+0xD0 + float amt; // r25 + float delta; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0140 -> 0x002B0210 +*/ +// Range: 0x2B0140 -> 0x2B0210 +void ChkPrelimTran(class zNPCGoalTubeDuckling * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0140 -> 0x2B0210 + class zNPCTubeSlave * npc; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0210 -> 0x002B0494 +*/ +// Range: 0x2B0210 -> 0x2B0494 +signed int Process(class zNPCGoalTubeDuckling * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0210 -> 0x2B0494 + signed int nextgoal; // r29+0xAC + class zNPCTubeSlave * npc; // r16 + signed int rc; // r2 + class xVec3 vec; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B04A0 -> 0x002B058C +*/ +// Range: 0x2B04A0 -> 0x2B058C +signed int Resume(class zNPCGoalTubeDuckling * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B04A0 -> 0x2B058C + class zNPCTubeSlave * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0590 -> 0x002B067C +*/ +// Range: 0x2B0590 -> 0x2B067C +signed int Enter(class zNPCGoalTubeDuckling * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0590 -> 0x2B067C + class zNPCTubeSlave * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0680 -> 0x002B0750 +*/ +// Range: 0x2B0680 -> 0x2B0750 +void ChkPrelimTran(class zNPCGoalTubePal * this /* r2 */, enum en_trantype * trantype /* r2 */, signed int * nextgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0680 -> 0x2B0750 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0750 -> 0x002B07C4 +*/ +// Range: 0x2B0750 -> 0x2B07C4 +signed int EvalRules(class zNPCGoalTubePal * this /* r18 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0750 -> 0x2B07C4 + signed int nextgoal; // r29+0x5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B07D0 -> 0x002B08F0 +*/ +// Range: 0x2B07D0 -> 0x2B08F0 +signed int Enter(class zNPCGoalTubePal * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B07D0 -> 0x2B08F0 + class zNPCTubeSlave * npc; // r16 + class zNPCTubelet * pete; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B08F0 -> 0x002B0AFC +*/ +// Range: 0x2B08F0 -> 0x2B0AFC +void KickFromTheNest(class zNPCGoalRespawn * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B08F0 -> 0x2B0AFC + class zNPCRobot * npc; // r18 + class zMovePoint * nav_preserveCurr; // r17 + class zMovePoint * nav_preserveDest; // r16 + class zNPCGoalAfterlife * wanna; // r2 + float goDirectToAlert; // @ 0x004FC8D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0B00 -> 0x002B0EAC +*/ +// Range: 0x2B0B00 -> 0x2B0EAC +void DoAppearFX(class zNPCGoalRespawn * this /* r20 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0B00 -> 0x2B0EAC + class zNPCRobot * npc; // r19 + class NPCConfig * cfg; // r16 + float hyt; // r22 + class xVec3 pos_poof; // r29+0xF0 + class xBound bnd; // r29+0x90 + class xCollis * colrec; // r18 + signed int rc; // r2 + float seg_ring[8]; // r29+0x70 + float fv; // r20 + class xVec3 vel_poof; // r29+0xE0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B0EB0 -> 0x002B1168 +*/ +// Range: 0x2B0EB0 -> 0x2B1168 +float LaunchRoboBits(class zNPCGoalRespawn * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B0EB0 -> 0x2B1168 + class NPCHazard * haz; // r16 + signed int rc; // r2 + class zNPCRobot * npc; // r2 + class zNPCCommon * duper; // r6 + class xVec3 pos_launch; // r29+0x70 + class xVec3 pos_tgt; // r29+0x60 + class xVec3 vec_diff; // r29+0x50 + float spd_flight; // r1 + float tym_flight; // r20 + class xVec3 vec_boneOffset; // @ 0x004FC8C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1170 -> 0x002B131C +*/ +// Range: 0x2B1170 -> 0x2B131C +signed int Process(class zNPCGoalRespawn * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1170 -> 0x2B131C + signed int nextgoal; // r2 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1320 -> 0x002B137C +*/ +// Range: 0x2B1320 -> 0x2B137C +signed int Exit(class zNPCGoalRespawn * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1320 -> 0x2B137C + class zNPCRobot * npc; // r16 + class zNPCCommon * duper; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1390 -> 0x002B14B4 +*/ +// Range: 0x2B1390 -> 0x2B14B4 +signed int Enter(class zNPCGoalRespawn * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1390 -> 0x2B14B4 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B14C0 -> 0x002B1710 +*/ +// Range: 0x2B14C0 -> 0x2B1710 +void DieTheGoodDeath(class zNPCGoalAfterlife * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B14C0 -> 0x2B1710 + class zNPCRobot * npc; // r19 + class zNPCCommon * duper; // r18 + signed int i; // r17 + class NPCHazard * haz; // r20 + signed int num_funFrag; // @ 0x0050EF6C + signed int cnt_nextfunfrag; // @ 0x0050EF68 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1710 -> 0x002B1814 +*/ +// Range: 0x2B1710 -> 0x2B1814 +signed int NPCMessage(class zNPCGoalAfterlife * this /* r2 */, class NPCMsg * mail /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1710 -> 0x2B1814 + signed int snarfed; // r17 + class zNPCGoalRespawn * respgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1820 -> 0x002B1920 +*/ +// Range: 0x2B1820 -> 0x2B1920 +signed int Enter(class zNPCGoalAfterlife * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1820 -> 0x2B1920 + class zNPCRobot * npc; // r17 + class zNPCCommon * duper; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1920 -> 0x002B1A14 +*/ +// Range: 0x2B1920 -> 0x2B1A14 +void StreakUpdate(class zNPCGoalKnock * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1920 -> 0x2B1A14 + class zNPCRobot * npc; // r2 + class xVec3 a; // r29+0x20 + class xVec3 b; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1A20 -> 0x002B1F58 +*/ +// Range: 0x2B1A20 -> 0x2B1F58 +signed int CollReview(class zNPCGoalKnock * this /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1A20 -> 0x2B1F58 + class zNPCRobot * npc; // r18 + class NPCConfig * cfg; // r29+0xB0 + class xEntCollis * npccol; // r17 + class xCollis * colrec; // r21 + class xVec3 vec_depen; // r29+0xE0 + signed int hitstuff; // r23 + signed int i; // r20 + class xVec3 dir; // r29+0xD0 + class xSurface * surf; // r2 + signed int badsurf; // r16 + float goodep; // r29+0xEC + float spd; // r20 + class zNPCCommon * tgt; // r2 + class xVec3 pump; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1F60 -> 0x002B2088 +*/ +// Range: 0x2B1F60 -> 0x2B2088 +signed int InputInfo(class zNPCGoalKnock * this /* r16 */, class NPCDamageInfo * info /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B1F60 -> 0x2B2088 + class zNPCRobot * npc; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2090 -> 0x002B21F8 +*/ +// Range: 0x2B2090 -> 0x2B21F8 +signed int Process(class zNPCGoalKnock * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2090 -> 0x2B21F8 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2200 -> 0x002B2268 +*/ +// Range: 0x2B2200 -> 0x2B2268 +signed int Exit(class zNPCGoalKnock * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2200 -> 0x2B2268 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2270 -> 0x002B2508 +*/ +// Range: 0x2B2270 -> 0x2B2508 +signed int Enter(class zNPCGoalKnock * this /* r21 */, float dt /* r20 */, void * updCtxt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2270 -> 0x2B2508 + class zNPCRobot * npc; // r19 + class NPCConfig * cfg; // r18 + class xVec3 dir_aim; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2510 -> 0x002B2540 +*/ +// Range: 0x2B2510 -> 0x2B2540 +signed int NPCMessage(class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2510 -> 0x2B2540 + signed int snarfed; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2540 -> 0x002B2B10 +*/ +// Range: 0x2B2540 -> 0x2B2B10 +signed int CollReview(class zNPCGoalWound * this /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2540 -> 0x2B2B10 + class zNPCRobot * npc; // r18 + class NPCConfig * cfg; // r29+0xC0 + class xEntCollis * npccol; // r17 + class xCollis * colrec; // r21 + class xVec3 vec_depen; // r29+0xF0 + signed int hitstuff; // r29+0xB0 + signed int i; // r20 + class xVec3 pump; // r29+0xE0 + float spd; // r20 + class zNPCCommon * tgt; // r21 + class xSurface * surf; // r2 + signed int badsurf; // r16 + float goodep; // r29+0xFC + class xVec3 dir; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2B10 -> 0x002B2C78 +*/ +// Range: 0x2B2B10 -> 0x2B2C78 +signed int Process(class zNPCGoalWound * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2B10 -> 0x2B2C78 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2C80 -> 0x002B2E8C +*/ +// Range: 0x2B2C80 -> 0x2B2E8C +signed int Enter(class zNPCGoalWound * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2C80 -> 0x2B2E8C + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2E90 -> 0x002B2ECC +*/ +// Range: 0x2B2E90 -> 0x2B2ECC +signed int Process(class zNPCGoalBashed * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2E90 -> 0x2B2ECC + class zNPCRobot * npc; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B2ED0 -> 0x002B30D0 +*/ +// Range: 0x2B2ED0 -> 0x2B30D0 +signed int Enter(class zNPCGoalBashed * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B2ED0 -> 0x2B30D0 + class zNPCRobot * npc; // r16 + signed char @11159; // @ 0x0050FE6C + float player_bash_speed; // @ 0x004FC8B8 + float player_bash_fromgrav; // @ 0x004FC8B0 + signed char @11156; // @ 0x0050FE68 + float tym_bashrise; // @ 0x004FC8A8 + float grav; // @ 0x004FC8A0 + signed char @11153; // @ 0x0050FE64 + signed char @11150; // @ 0x0050FE60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B30D0 -> 0x002B31E0 +*/ +// Range: 0x2B30D0 -> 0x2B31E0 +signed int InputInfo(class zNPCGoalDamage * this /* r17 */, class NPCDamageInfo * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B30D0 -> 0x2B31E0 + class zNPCRobot * npc; // r2 + class zNPCGoalKnock * knock; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B31E0 -> 0x002B326C +*/ +// Range: 0x2B31E0 -> 0x2B326C +signed int NPCMessage(class zNPCGoalDamage * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B31E0 -> 0x2B326C + signed int handled; // r16 + class NPCDamageInfo * dmg; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B3270 -> 0x002B358C +*/ +// Range: 0x2B3270 -> 0x2B358C +signed int Process(class zNPCGoalDamage * this /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B3270 -> 0x2B358C + signed int nextgoal; // r2 + class zNPCRobot * npc; // r2 + float ds2_viberange; // @ 0x004FC898 + signed char @11086; // @ 0x0050FE5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B3590 -> 0x002B3860 +*/ +// Range: 0x2B3590 -> 0x2B3860 +void ApplyYank(class zNPCGoalLassoThrow * this /* r19 */, signed int left /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B3590 -> 0x2B3860 + class zNPCRobot * npc; // r18 + class xVec3 dir_aim; // r29+0x90 + class xMat3x3 mat_rot; // r29+0x60 + float goleft; // r20 + float ang_ref; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B3860 -> 0x002B3D38 +*/ +// Range: 0x2B3860 -> 0x2B3D38 +signed int CollReview(class zNPCGoalLassoThrow * this /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B3860 -> 0x2B3D38 + class zNPCRobot * npc; // r18 + class xEntCollis * npccol; // r17 + class xCollis * colrec; // r21 + class xVec3 vec_depen; // r29+0xC0 + signed int hitstuff; // r23 + signed int i; // r20 + class xSurface * surf; // r2 + signed int badsurf; // r16 + float goodep; // r29+0xCC + float spd; // r20 + class zNPCCommon * tgt; // r2 + class xVec3 pump; // r29+0xB0 + class NPCConfig * cfg; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B3D40 -> 0x002B3F88 +*/ +// Range: 0x2B3D40 -> 0x2B3F88 +signed int Process(class zNPCGoalLassoThrow * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B3D40 -> 0x2B3F88 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + class zNPCLassoInfo * lass; // r2 + class xVec3 dir_toss; // r29+0x80 + float fac; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B3F90 -> 0x002B3FB8 +*/ +// Range: 0x2B3F90 -> 0x2B3FB8 +signed int Exit(class zNPCGoalLassoThrow * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B3F90 -> 0x2B3FB8 + class zNPCRobot * npc; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B3FC0 -> 0x002B4138 +*/ +// Range: 0x2B3FC0 -> 0x2B4138 +signed int Enter(class zNPCGoalLassoThrow * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B3FC0 -> 0x2B4138 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4140 -> 0x002B41F4 +*/ +// Range: 0x2B4140 -> 0x2B41F4 +void DoTurnAway(class zNPCGoalLassoGrab * this /* r2 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4140 -> 0x2B41F4 + class zNPCRobot * npc; // r2 + signed int ntlist_towards[6]; // r29+0x10 + signed int ntyp; // r3 + signed int faceAway; // r6 + signed int type; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4200 -> 0x002B4440 +*/ +// Range: 0x2B4200 -> 0x2B4440 +signed int Process(class zNPCGoalLassoGrab * this /* r22 */, enum en_trantype * trantype /* r21 */, float dt /* r20 */, void * updCtxt /* r20 */, class xScene * xscn /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4200 -> 0x2B4440 + class zNPCRobot * npc; // r18 + signed int nextgoal; // r17 + class zNPCLassoInfo * lass; // r23 + unsigned int anid; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4440 -> 0x002B4510 +*/ +// Range: 0x2B4440 -> 0x2B4510 +signed int Process(class zNPCGoalLassoBase * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4440 -> 0x2B4510 + signed int nextgoal; // r2 + class zNPCLassoInfo * lass; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4510 -> 0x002B4540 +*/ +// Range: 0x2B4510 -> 0x2B4540 +signed int Exit(class zNPCGoalLassoBase * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4510 -> 0x2B4540 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4540 -> 0x002B45C8 +*/ +// Range: 0x2B4540 -> 0x2B45C8 +signed int Enter(class zNPCGoalLassoBase * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4540 -> 0x2B45C8 + class zNPCRobot * npc; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B45D0 -> 0x002B4640 +*/ +// Range: 0x2B45D0 -> 0x2B4640 +signed int Enter(class zNPCGoalPatThrow * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B45D0 -> 0x2B4640 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4640 -> 0x002B46C0 +*/ +// Range: 0x2B4640 -> 0x2B46C0 +signed int Process(class zNPCGoalPatCarry * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4640 -> 0x2B46C0 + float offset; // @ 0x0050EF60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B46C0 -> 0x002B4728 +*/ +// Range: 0x2B46C0 -> 0x2B4728 +signed int Enter(class zNPCGoalPatCarry * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B46C0 -> 0x2B4728 + class xVec3 scale; // @ 0x004DD420 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4730 -> 0x002B4830 +*/ +// Range: 0x2B4730 -> 0x2B4830 +signed int Process(class zNPCGoalStunned * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4730 -> 0x2B4830 + signed int nextgoal; // r2 + class zNPCRobot * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4830 -> 0x002B48DC +*/ +// Range: 0x2B4830 -> 0x2B48DC +signed int Enter(class zNPCGoalStunned * this /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4830 -> 0x2B48DC + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B48E0 -> 0x002B4958 +*/ +// Range: 0x2B48E0 -> 0x2B4958 +signed int InputStun(class zNPCGoalEvilPat * this /* r2 */, class NPCStunInfo * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B48E0 -> 0x2B4958 + class zNPCGoalStunned * stungoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4960 -> 0x002B49E4 +*/ +// Range: 0x2B4960 -> 0x2B49E4 +signed int NPCMessage(class zNPCGoalEvilPat * this /* r2 */, class NPCMsg * msg /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4960 -> 0x2B49E4 + signed int handled; // r2 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B49F0 -> 0x002B4A74 +*/ +// Range: 0x2B49F0 -> 0x2B4A74 +signed int Process(class zNPCGoalEvilPat * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B49F0 -> 0x2B4A74 + signed int nextgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4A80 -> 0x002B4AF8 +*/ +// Range: 0x2B4A80 -> 0x2B4AF8 +signed int Exit(class zNPCGoalEvilPat * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4A80 -> 0x2B4AF8 + class zNPCRobot * npc; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4B00 -> 0x002B4BCC +*/ +// Range: 0x2B4B00 -> 0x2B4BCC +signed int Enter(class zNPCGoalEvilPat * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4B00 -> 0x2B4BCC + class zNPCRobot * npc; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4BD0 -> 0x002B4EB0 +*/ +// Range: 0x2B4BD0 -> 0x2B4EB0 +signed int Process(class zNPCGoalHokeyPokey * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4BD0 -> 0x2B4EB0 + signed int nextgoal; // r17 + class zNPCFodBzzt * npc; // r16 + class zNPCGoalTaunt * taunt; // r2 + float way; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4EB0 -> 0x002B4F34 +*/ +// Range: 0x2B4EB0 -> 0x2B4F34 +signed int Enter(class zNPCGoalHokeyPokey * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4EB0 -> 0x2B4F34 + class zNPCFodBzzt * npc; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4F40 -> 0x002B4F70 +*/ +// Range: 0x2B4F40 -> 0x2B4F70 +signed int NPCMessage(class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4F40 -> 0x2B4F70 + signed int snarfed; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B4F70 -> 0x002B5208 +*/ +// Range: 0x2B4F70 -> 0x2B5208 +signed int Process(class zNPCGoalTeleport * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r22 */, class xScene * xscn /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B4F70 -> 0x2B5208 + signed int nextgoal; // r19 + class zNPCArfArf * npc; // r18 + signed int arrived; // r17 + class xVec3 dir; // r29+0xB0 + float spd; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5210 -> 0x002B52C0 +*/ +// Range: 0x2B5210 -> 0x2B52C0 +signed int Exit(class zNPCGoalTeleport * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5210 -> 0x2B52C0 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B52C0 -> 0x002B5370 +*/ +// Range: 0x2B52C0 -> 0x2B5370 +signed int Enter(class zNPCGoalTeleport * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B52C0 -> 0x2B5370 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5370 -> 0x002B53A0 +*/ +// Range: 0x2B5370 -> 0x2B53A0 +signed int NPCMessage(class zNPCGoalDogPounce * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5370 -> 0x2B53A0 + signed int snarfed; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B53A0 -> 0x002B5448 +*/ +// Range: 0x2B53A0 -> 0x2B5448 +signed int Exit(class zNPCGoalDogPounce * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B53A0 -> 0x2B5448 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5450 -> 0x002B5458 +*/ +// Range: 0x2B5450 -> 0x2B5458 +signed int Enter(class zNPCGoalDogPounce * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5450 -> 0x2B5458 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5460 -> 0x002B5578 +*/ +// Range: 0x2B5460 -> 0x2B5578 +signed int Process(class zNPCGoalDogDash * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5460 -> 0x2B5578 + signed int nextgoal; // r16 + class zNPCRobot * npc; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5580 -> 0x002B55D0 +*/ +// Range: 0x2B5580 -> 0x2B55D0 +signed int Enter(class zNPCGoalDogDash * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5580 -> 0x2B55D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B55D0 -> 0x002B56D8 +*/ +// Range: 0x2B55D0 -> 0x2B56D8 +signed int Process(class zNPCGoalDogBark * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B55D0 -> 0x2B56D8 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B56E0 -> 0x002B5730 +*/ +// Range: 0x2B56E0 -> 0x2B5730 +signed int Enter(class zNPCGoalDogBark * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B56E0 -> 0x2B5730 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5730 -> 0x002B5D44 +*/ +// Range: 0x2B5730 -> 0x2B5D44 +void BubTrailCone(class xVec3 * pos /* r21 */, signed int num /* r23 */, class xVec3 * pos_rand /* r20 */, class xVec3 * vel_rand /* r22 */, class xMat3x3 * mat /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5730 -> 0x2B5D44 + class xVec3 * posbuf; // r30 + class xVec3 * velbuf; // r29+0xB0 + class xVec3 * pos_cur; // r18 + class xVec3 * vel_cur; // r17 + float ang_perseg; // r22 + signed int i; // r16 + float ang; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B5D50 -> 0x002B60EC +*/ +// Range: 0x2B5D50 -> 0x2B60EC +signed int BallisticUpdate(class zNPCGoalDogLaunch * this /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B5D50 -> 0x2B60EC + class zNPCRobot * npc; // r18 + signed int arrived; // r17 + class xParabola * parab; // r16 + float tym; // r29+0xC0 + class xVec3 pos_want; // r29+0xB0 + class xVec3 vel; // r29+0xA0 + class xVec3 dir; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B60F0 -> 0x002B62C8 +*/ +// Range: 0x2B60F0 -> 0x2B62C8 +void PreCollide(class zNPCGoalDogLaunch * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B60F0 -> 0x2B62C8 + class zNPCRobot * npc; // r8 + float dst; // r3 + float tym_ETALand; // r4 + class xParabola * parab; // r16 + signed int rc; // r2 + class xCollis colrec; // @ 0x005CBF80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B62D0 -> 0x002B6448 +*/ +// Range: 0x2B62D0 -> 0x2B6448 +signed int Process(class zNPCGoalDogLaunch * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B62D0 -> 0x2B6448 + signed int nextgoal; // r20 + class zNPCRobot * npc; // r21 + signed int done; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6450 -> 0x002B656C +*/ +// Range: 0x2B6450 -> 0x2B656C +signed int Enter(class zNPCGoalDogLaunch * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6450 -> 0x2B656C + class zNPCRobot * npc; // r17 + class zMovePoint * nav_preserveCurr; // r16 + class zNPCGoalAfterlife * wanna; // r2 + class zNPCCommon * duper; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6570 -> 0x002B66EC +*/ +// Range: 0x2B6570 -> 0x2B66EC +signed int Process(class zNPCGoalAttackSlick * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6570 -> 0x2B66EC + class zNPCSlick * npc; // r16 + signed int zapidx; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B66F0 -> 0x002B6760 +*/ +// Range: 0x2B66F0 -> 0x2B6760 +signed int Enter(class zNPCGoalAttackSlick * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B66F0 -> 0x2B6760 + class zNPCSlick * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6760 -> 0x002B68F0 +*/ +// Range: 0x2B6760 -> 0x2B68F0 +signed int Process(class zNPCGoalAttackChuck * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6760 -> 0x2B68F0 + class zNPCRobot * npc; // r16 + float tym_animCurr; // r29+0x80 + signed int zapidx; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B68F0 -> 0x002B694C +*/ +// Range: 0x2B68F0 -> 0x2B694C +signed int Exit(class zNPCGoalAttackChuck * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B68F0 -> 0x2B694C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6950 -> 0x002B69C8 +*/ +// Range: 0x2B6950 -> 0x2B69C8 +signed int Enter(class zNPCGoalAttackChuck * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6950 -> 0x2B69C8 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B69D0 -> 0x002B6D6C +*/ +// Range: 0x2B69D0 -> 0x2B6D6C +signed int LaunchDoggie(class zNPCGoalAttackArf * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B69D0 -> 0x2B6D6C + class zNPCArfArf * npc; // r16 + class zNPCArfDog * pup; // r21 + class xVec3 pos_launch; // r29+0xC0 + class xVec3 pos_land; // r29+0xB0 + class xPsyche * psy_pup; // r19 + class zNPCGoalDogLaunch * godog; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6D70 -> 0x002B6F98 +*/ +// Range: 0x2B6D70 -> 0x2B6F98 +signed int Process(class zNPCGoalAttackArf * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6D70 -> 0x2B6F98 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + class zNPCGoalTaunt * taunt; // r2 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6FA0 -> 0x002B6FA8 +*/ +// Range: 0x2B6FA0 -> 0x2B6FA8 +signed int Exit(class zNPCGoalAttackArf * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6FA0 -> 0x2B6FA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B6FB0 -> 0x002B7010 +*/ +// Range: 0x2B6FB0 -> 0x2B7010 +signed int Enter(class zNPCGoalAttackArf * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B6FB0 -> 0x2B7010 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7010 -> 0x002B7674 +*/ +// Range: 0x2B7010 -> 0x2B7674 +void FXStreakUpdate(class zNPCGoalAttackArfMelee * this /* r29+0xB4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7010 -> 0x2B7674 + class zNPCRobot * npc; // r22 + signed int idxlist[2]; // r29+0x178 + signed int i; // r21 + class xVec3 wide; // r29+0x168 + class xVec3 high; // r29+0x158 + class xVec3 a; // r29+0x148 + class xVec3 b; // r29+0x138 + class xVec3 a; // r29+0x128 + class xVec3 b; // r29+0x118 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7680 -> 0x002B7884 +*/ +// Range: 0x2B7680 -> 0x2B7884 +void PlayerTests(class zNPCGoalAttackArfMelee * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7680 -> 0x2B7884 + class zNPCRobot * npc; // r21 + signed int idxlist[2]; // r29+0xF8 + class xBound bnd; // r29+0x90 + signed int i; // r20 + class xVec3 pos; // r29+0xE8 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7890 -> 0x002B7940 +*/ +// Range: 0x2B7890 -> 0x2B7940 +signed int Process(class zNPCGoalAttackArfMelee * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7890 -> 0x2B7940 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7940 -> 0x002B79C0 +*/ +// Range: 0x2B7940 -> 0x2B79C0 +signed int Exit(class zNPCGoalAttackArfMelee * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7940 -> 0x2B79C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B79C0 -> 0x002B7A5C +*/ +// Range: 0x2B79C0 -> 0x2B7A5C +signed int Enter(class zNPCGoalAttackArfMelee * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B79C0 -> 0x2B7A5C + class zNPCRobot * npc; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7A60 -> 0x002B7C4C +*/ +// Range: 0x2B7A60 -> 0x2B7C4C +signed int SpitCloud(class zNPCGoalAttackMonsoon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7A60 -> 0x2B7C4C + class zNPCRobot * npc; // r17 + class NPCHazard * haz; // r16 + class xVec3 pos_emit; // r29+0x30 + class HAZCloud * cloud; // r7 + class NPCArena * arena; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7C50 -> 0x002B7E08 +*/ +// Range: 0x2B7C50 -> 0x2B7E08 +signed int Process(class zNPCGoalAttackMonsoon * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7C50 -> 0x2B7E08 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + class zNPCGoalTaunt * taunt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7E10 -> 0x002B7E24 +*/ +// Range: 0x2B7E10 -> 0x2B7E24 +signed int Enter(class zNPCGoalAttackMonsoon * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7E10 -> 0x2B7E24 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B7E30 -> 0x002B8154 +*/ +// Range: 0x2B7E30 -> 0x2B8154 +signed int ShootBlob(class zNPCGoalAttackTarTar * this /* r19 */, signed int zapidx /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B7E30 -> 0x2B8154 + class zNPCRobot * npc; // r17 + class NPCHazard * haz; // r16 + class xVec3 pos_launch; // r29+0x80 + signed int rc; // r2 + float dst_miss; // r29+0x90 + class xVec3 dir_tgt; // r29+0x70 + class xVec3 pos_tgt; // r29+0x60 + float dist; // r20 + float spd_lob; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8160 -> 0x002B820C +*/ +// Range: 0x2B8160 -> 0x2B820C +signed int NPCMessage(class zNPCGoalAttackTarTar * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8160 -> 0x2B820C + signed int snarfed; // r16 + class zNPCRobot * npc; // r3 + class NPCDamageInfo * dmg; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8210 -> 0x002B8438 +*/ +// Range: 0x2B8210 -> 0x2B8438 +signed int Process(class zNPCGoalAttackTarTar * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r21 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8210 -> 0x2B8438 + class zNPCTarTar * npc; // r21 + signed int zapidx; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8440 -> 0x002B84D0 +*/ +// Range: 0x2B8440 -> 0x2B84D0 +signed int Enter(class zNPCGoalAttackTarTar * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8440 -> 0x2B84D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B84D0 -> 0x002B8834 +*/ +// Range: 0x2B84D0 -> 0x2B8834 +void FXStreakUpdate(class zNPCGoalAttackHammer * this /* r21 */, class xVec3 * pos_streak /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B84D0 -> 0x2B8834 + class xVec3 width; // r29+0x150 + class xVec3 a; // r29+0x140 + class xVec3 b; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8840 -> 0x002B8B6C +*/ +// Range: 0x2B8840 -> 0x2B8B6C +signed int ShockwaveTests(class zNPCGoalAttackHammer * this /* r21 */, class xVec3 * pos_vert /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8840 -> 0x2B8B6C + class zNPCRobot * npc; // r19 + signed int hithim; // r18 + class xBound bnd; // r29+0x80 + class xCollis * collist; // r17 + unsigned char numrec; // r22 + signed int i; // r16 + signed int num_hit; // r20 + signed int i; // r16 + class xCollis * colrec; // r6 + class xVec3 pos; // r29+0x110 + class xVec3 diff; // r29+0x100 + float ds2_plyr; // r29+0x120 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8B70 -> 0x002B8C30 +*/ +// Range: 0x2B8B70 -> 0x2B8C30 +signed int PlayerTests(class zNPCGoalAttackHammer * this /* r2 */, class xVec3 * pos_vert /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8B70 -> 0x2B8C30 + class zNPCRobot * npc; // r16 + signed int hithim; // r17 + class xBound bnd; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8C30 -> 0x002B8D3C +*/ +// Range: 0x2B8C30 -> 0x2B8D3C +void ChkPrelimTran(class zNPCGoalAttackHammer * this /* r19 */, enum en_trantype * trantype /* r17 */, signed int * nextgoal /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8C30 -> 0x2B8D3C + class zNPCRobot * npc; // r18 + float tym_rem; // r29+0x50 + class zNPCGoalTaunt * taunt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B8D40 -> 0x002B9338 +*/ +// Range: 0x2B8D40 -> 0x2B9338 +signed int Process(class zNPCGoalAttackHammer * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B8D40 -> 0x2B9338 + signed int nextgoal; // r29+0x16C + class zNPCRobot * npc; // r16 + class xVec3 pos_vert; // r29+0x160 + float tym_animCurr; // r21 + signed int doPLYRTests; // r4 + signed int doCHCKTests; // r17 + signed int zapidx; // r16 + signed int rc; // r2 + signed int rc; // r2 + class xVec3 diff; // r29+0x150 + class xVec3 pos_fake; // r29+0x140 + class xVec3 pos_mid[4]; // r29+0xB0 + class xVec3 * pos_midref[4]; // r29+0xA0 + class xVec3 * pos_ref[4]; // r29+0x90 + signed int i; // r17 + float tym_streakBetween[2]; // @ 0x004FC870 + float tym_animDamage[2]; // @ 0x004FC868 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9340 -> 0x002B93C0 +*/ +// Range: 0x2B9340 -> 0x2B93C0 +signed int Exit(class zNPCGoalAttackHammer * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9340 -> 0x2B93C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B93C0 -> 0x002B945C +*/ +// Range: 0x2B93C0 -> 0x2B945C +signed int Enter(class zNPCGoalAttackHammer * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B93C0 -> 0x2B945C + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9460 -> 0x002B98AC +*/ +// Range: 0x2B9460 -> 0x2B98AC +void BreathAttack(class zNPCGoalAttackChomper * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9460 -> 0x2B98AC + class zNPCRobot * npc; // r6 + class xVec3 pos_emit; // r29+0x110 + signed int i; // r21 + class xVec3 vel_emit; // r29+0x100 + class xVec3 vec_coneWeights; // @ 0x004FC858 + class xVec3 vec_boneOffset; // @ 0x004FC848 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B98B0 -> 0x002B9950 +*/ +// Range: 0x2B98B0 -> 0x2B9950 +signed int Process(class zNPCGoalAttackChomper * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B98B0 -> 0x2B9950 + float tym; // r29+0x60 + float tym_ofAttack[2]; // @ 0x004FC840 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9950 -> 0x002B99BC +*/ +// Range: 0x2B9950 -> 0x2B99BC +signed int Enter(class zNPCGoalAttackChomper * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9950 -> 0x2B99BC + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B99C0 -> 0x002B9A10 +*/ +// Range: 0x2B99C0 -> 0x2B9A10 +signed int Notify(class CattleNotify * this /* r2 */, enum en_haznote note /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B99C0 -> 0x2B9A10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9A10 -> 0x002B9B34 +*/ +// Range: 0x2B9A10 -> 0x2B9B34 +signed int Process(class zNPCGoalAttackFodder * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9A10 -> 0x2B9B34 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9B40 -> 0x002B9B9C +*/ +// Range: 0x2B9B40 -> 0x2B9B9C +signed int Exit(class zNPCGoalAttackFodder * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9B40 -> 0x2B9B9C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9BA0 -> 0x002B9C6C +*/ +// Range: 0x2B9BA0 -> 0x2B9C6C +signed int Enter(class zNPCGoalAttackFodder * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9BA0 -> 0x2B9C6C + class zNPCRobot * npc; // r18 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9C70 -> 0x002B9DCC +*/ +// Range: 0x2B9C70 -> 0x2B9DCC +signed int Process(class zNPCGoalAttackCQC * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9C70 -> 0x2B9DCC + class zNPCRobot * npc; // r16 + signed int zapidx; // r2 + unsigned int anid; // r20 + class xAnimState * ast; // r2 + class xBound bnd; // r29+0x70 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9DD0 -> 0x002B9DD8 +*/ +// Range: 0x2B9DD0 -> 0x2B9DD8 +signed int Enter(class zNPCGoalAttackCQC * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9DD0 -> 0x2B9DD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9DE0 -> 0x002B9FBC +*/ +// Range: 0x2B9DE0 -> 0x2B9FBC +signed int Process(class zNPCGoalChase * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9DE0 -> 0x2B9FBC + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B9FC0 -> 0x002BA220 +*/ +// Range: 0x2B9FC0 -> 0x2BA220 +void MoveCorner(class zNPCGoalAlertSlick * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2B9FC0 -> 0x2BA220 + class zNPCRobot * npc; // r16 + float ds2_corn; // r2 + class xVec3 dir_corn; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BA220 -> 0x002BA33C +*/ +// Range: 0x2BA220 -> 0x2BA33C +void GetInArena(class zNPCGoalAlertSlick * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BA220 -> 0x2BA33C + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x40 + float rot; // r29+0x50 + class xVec3 dir; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BA340 -> 0x002BA460 +*/ +// Range: 0x2BA340 -> 0x2BA460 +signed int NPCMessage(class zNPCGoalAlertSlick * this /* r21 */, class NPCMsg * mail /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BA340 -> 0x2BA460 + signed int snarfed; // r19 + class zNPCRobot * npc; // r18 + class NPCDamageInfo * dmg; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BA460 -> 0x002BA924 +*/ +// Range: 0x2BA460 -> 0x2BA924 +signed int Process(class zNPCGoalAlertSlick * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r21 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BA460 -> 0x2BA924 + signed int nextgoal; // r18 + class zNPCSlick * npc; // r17 + enum en_alertslik old_alertslik; // r22 + signed int subenter; // r23 + float tym_reload; // r20 + class xVec3 dir_HtoP; // r29+0xA0 + float dsq; // r23 + class zNPCGoalTaunt * taunt; // r2 + float pct; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BA930 -> 0x002BA990 +*/ +// Range: 0x2BA930 -> 0x2BA990 +signed int Resume(class zNPCGoalAlertSlick * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BA930 -> 0x2BA990 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BA990 -> 0x002BA9F4 +*/ +// Range: 0x2BA990 -> 0x2BA9F4 +signed int Enter(class zNPCGoalAlertSlick * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BA990 -> 0x2BA9F4 + class zNPCSlick * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BAA00 -> 0x002BACC0 +*/ +// Range: 0x2BAA00 -> 0x2BACC0 +void EmitSteam(class zNPCGoalAlertTubelet * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BAA00 -> 0x2BACC0 + class zNPCTubelet * npc; // r21 + signed int rc; // r2 + class xVec3 pos_src; // r29+0xA0 + class xVec3 pos_tgt; // r29+0x90 + class xVec3 dir_laser; // r29+0x80 + class xCollis * colrec; // r21 + class xVec3 vel; // r29+0x70 + float lifespan; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BACC0 -> 0x002BAE7C +*/ +// Range: 0x2BACC0 -> 0x2BAE7C +signed int MoveToHome(class zNPCGoalAlertTubelet * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BACC0 -> 0x2BAE7C + signed int arrived; // r16 + class zNPCTubelet * npc; // r16 + class NPCArena * arena; // r5 + float dst_surplus; // r4 + class xVec3 dir_home; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BAE80 -> 0x002BAFEC +*/ +// Range: 0x2BAE80 -> 0x2BAFEC +void ChkPrelimTran(class zNPCGoalAlertTubelet * this /* r19 */, enum en_trantype * trantype /* r18 */, signed int * nextgoal /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BAE80 -> 0x2BAFEC + class zNPCTubelet * npc; // r16 + class zNPCGoalTaunt * taunt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BAFF0 -> 0x002BB274 +*/ +// Range: 0x2BAFF0 -> 0x2BB274 +signed int Process(class zNPCGoalAlertTubelet * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BAFF0 -> 0x2BB274 + signed int nextgoal; // r29+0x7C + class zNPCTubelet * npc; // r17 + signed int atHome; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BB280 -> 0x002BB294 +*/ +// Range: 0x2BB280 -> 0x2BB294 +signed int Resume(class zNPCGoalAlertTubelet * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BB280 -> 0x2BB294 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BB2A0 -> 0x002BB2D4 +*/ +// Range: 0x2BB2A0 -> 0x2BB2D4 +signed int Exit(class zNPCGoalAlertTubelet * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BB2A0 -> 0x2BB2D4 + class zNPCTubelet * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BB2E0 -> 0x002BB2F4 +*/ +// Range: 0x2BB2E0 -> 0x2BB2F4 +signed int Enter(class zNPCGoalAlertTubelet * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BB2E0 -> 0x2BB2F4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BB300 -> 0x002BB4D0 +*/ +// Range: 0x2BB300 -> 0x2BB4D0 +signed int ZoomMove(class zNPCGoalAlertChuck * this /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BB300 -> 0x2BB4D0 + signed int donemoving; // r17 + class zNPCRobot * npc; // r16 + class xVec3 dir; // r29+0x50 + float dist; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BB4D0 -> 0x002BB5EC +*/ +// Range: 0x2BB4D0 -> 0x2BB5EC +void GetInArena(class zNPCGoalAlertChuck * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BB4D0 -> 0x2BB5EC + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x40 + float rot; // r29+0x50 + class xVec3 dir; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BB5F0 -> 0x002BBE60 +*/ +// Range: 0x2BB5F0 -> 0x2BBE60 +signed int Process(class zNPCGoalAlertChuck * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r25 */, void * updCtxt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BB5F0 -> 0x2BBE60 + signed int nextgoal; // r18 + class zNPCRobot * npc; // r17 + class xVec3 dir_HtoP; // r29+0x110 + float dsq; // r21 + class zNPCGoalTaunt * taunt; // r2 + float tym_reload; // r20 + enum en_alertchuk old_alertchuk; // r23 + signed int subenter; // r21 + class xVec3 vec_home; // r29+0x100 + float dst_edge; // r24 + class xVec3 dir_plyr; // r29+0xF0 + float dst_farside; // r23 + class xVec3 pos_far; // r29+0xE0 + class xVec3 pos_bak; // r29+0xD0 + float ds2_PtoFar; // r26 + float ds2_PtoBak; // r29+0x120 + signed int rc; // r2 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BBE60 -> 0x002BBE70 +*/ +// Range: 0x2BBE60 -> 0x2BBE70 +signed int Resume(class zNPCGoalAlertChuck * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BBE60 -> 0x2BBE70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BBE70 -> 0x002BBEC8 +*/ +// Range: 0x2BBE70 -> 0x2BBEC8 +signed int Enter(class zNPCGoalAlertChuck * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BBE70 -> 0x2BBEC8 + class zNPCRobot * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BBED0 -> 0x002BC088 +*/ +// Range: 0x2BBED0 -> 0x2BC088 +signed int Process(class zNPCGoalAlertPuppy * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BBED0 -> 0x2BC088 + signed int nextgoal; // r17 + enum en_alertpuppy old_alertpup; // r16 + class zNPCGoalAfterlife * wanna; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC090 -> 0x002BC0A0 +*/ +// Range: 0x2BC090 -> 0x2BC0A0 +signed int Resume(class zNPCGoalAlertPuppy * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC090 -> 0x2BC0A0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC0A0 -> 0x002BC0A8 +*/ +// Range: 0x2BC0A0 -> 0x2BC0A8 +signed int Enter(class zNPCGoalAlertPuppy * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC0A0 -> 0x2BC0A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC0B0 -> 0x002BC1B0 +*/ +// Range: 0x2BC0B0 -> 0x2BC1B0 +enum en_arfdoes DecideAttack(class zNPCGoalAlertArf * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC0B0 -> 0x2BC1B0 + enum en_arfdoes do_attack; // r17 + class zNPCArfArf * npc; // r16 + class zNPCGoalAttackArf * atak; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC1B0 -> 0x002BC2C4 +*/ +// Range: 0x2BC1B0 -> 0x2BC2C4 +signed int NPCMessage(class zNPCGoalAlertArf * this /* r18 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC1B0 -> 0x2BC2C4 + signed int snarfed; // r17 + class zNPCRobot * npc; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC2D0 -> 0x002BC69C +*/ +// Range: 0x2BC2D0 -> 0x2BC69C +signed int Process(class zNPCGoalAlertArf * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC2D0 -> 0x2BC69C + signed int nextgoal; // r16 + class zNPCArfArf * npc; // r22 + class xVec3 dir_HtoP; // r29+0x90 + float dsq; // r22 + class zNPCGoalTaunt * taunt; // r2 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertarf old_alertarf; // r21 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC6A0 -> 0x002BC6B8 +*/ +// Range: 0x2BC6A0 -> 0x2BC6B8 +signed int Resume(class zNPCGoalAlertArf * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC6A0 -> 0x2BC6B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC6C0 -> 0x002BC6CC +*/ +// Range: 0x2BC6C0 -> 0x2BC6CC +signed int Exit(class zNPCGoalAlertArf * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC6C0 -> 0x2BC6CC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC6D0 -> 0x002BC6E8 +*/ +// Range: 0x2BC6D0 -> 0x2BC6E8 +signed int Enter(class zNPCGoalAlertArf * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC6D0 -> 0x2BC6E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC6F0 -> 0x002BC7B4 +*/ +// Range: 0x2BC6F0 -> 0x2BC7B4 +signed int NPCMessage(class zNPCGoalAlertSleepy * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC6F0 -> 0x2BC7B4 + signed int snarfed; // r16 + class zNPCRobot * npc; // r3 + class NPCDamageInfo * dmg; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BC7C0 -> 0x002BCB04 +*/ +// Range: 0x2BC7C0 -> 0x2BCB04 +signed int Process(class zNPCGoalAlertSleepy * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BC7C0 -> 0x2BCB04 + signed int nextgoal; // r16 + class zNPCSleepy * npc; // r22 + enum en_slepatak old_sleepattack; // r23 + signed int subenter; // r21 + class xVec3 dir_plyr; // r29+0xB0 + class zNPCGoalTaunt * taunt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BCB10 -> 0x002BCB44 +*/ +// Range: 0x2BCB10 -> 0x2BCB44 +signed int Exit(class zNPCGoalAlertSleepy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BCB10 -> 0x2BCB44 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BCB50 -> 0x002BCBD4 +*/ +// Range: 0x2BCB50 -> 0x2BCBD4 +signed int Enter(class zNPCGoalAlertSleepy * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BCB50 -> 0x2BCBD4 + class zNPCSleepy * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BCBE0 -> 0x002BCE40 +*/ +// Range: 0x2BCBE0 -> 0x2BCE40 +void MoveCorner(class zNPCGoalAlertMonsoon * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BCBE0 -> 0x2BCE40 + class zNPCRobot * npc; // r16 + float ds2_corn; // r2 + class xVec3 dir_corn; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BCE40 -> 0x002BD348 +*/ +// Range: 0x2BCE40 -> 0x2BD348 +signed int Process(class zNPCGoalAlertMonsoon * this /* r18 */, enum en_trantype * trantype /* r17 */, float dt /* r21 */, void * updCtxt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BCE40 -> 0x2BD348 + signed int nextgoal; // r16 + class zNPCRobot * npc; // r22 + class xVec3 dir_HtoP; // r29+0xA0 + float dsq; // r20 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertmony old_alertmony; // r21 + signed int subenter; // r20 + float pct; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BD350 -> 0x002BD360 +*/ +// Range: 0x2BD350 -> 0x2BD360 +signed int Resume(class zNPCGoalAlertMonsoon * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BD350 -> 0x2BD360 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BD360 -> 0x002BD368 +*/ +// Range: 0x2BD360 -> 0x2BD368 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x2BD360 -> 0x2BD368 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BD370 -> 0x002BD3A8 +*/ +// Range: 0x2BD370 -> 0x2BD3A8 +signed int Enter(class zNPCGoalAlertMonsoon * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BD370 -> 0x2BD3A8 + class zNPCRobot * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BD3B0 -> 0x002BD8C8 +*/ +// Range: 0x2BD3B0 -> 0x2BD8C8 +signed int CollReview(class zNPCGoalAlertGlove * this /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BD3B0 -> 0x2BD8C8 + class zNPCRobot * npc; // r21 + class xEntCollis * npccol; // r20 + class xCollis * colrec; // r19 + class xVec3 vec_depen; // r29+0xE0 + signed int hitstuff; // r29+0xB0 + signed int i; // r17 + class xVec3 pump; // r29+0xD0 + float spd; // r20 + class zNPCCommon * tgt; // r19 + class xVec3 dir; // r29+0xC0 + class xSurface * surf; // r2 + signed int badsurf; // r18 + float goodep; // r29+0xEC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BD8D0 -> 0x002BDDCC +*/ +// Range: 0x2BD8D0 -> 0x2BDDCC +signed int CheckHandBones(class zNPCGoalAlertGlove * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BD8D0 -> 0x2BDDCC + signed int yeppers_hitplayer; // r19 + signed int rc; // r2 + class zNPCRobot * npc; // r18 + class xCollis * colrec; // r17 + class xBound bnd; // r29+0xA0 + class xEntBoulder * bowl; // r16 + signed int doball; // r23 + class xVec3 dir_smack; // r29+0x110 + signed int idx_bone; // r6 + class xVec3 pos; // r29+0x100 + signed int rc; // r2 + class xVec3 thatway; // r29+0xF0 + signed int skipballchecks; // @ 0x0050EF48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BDDD0 -> 0x002BDEFC +*/ +// Range: 0x2BDDD0 -> 0x2BDEFC +void CalcAttackVector(class zNPCGoalAlertGlove * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BDDD0 -> 0x2BDEFC + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BDF00 -> 0x002BE130 +*/ +// Range: 0x2BDF00 -> 0x2BE130 +void FXWhirlwind(class zNPCGoalAlertGlove * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BDF00 -> 0x2BE130 + class xVec3 pos_npc; // r29+0x80 + class xVec3 pos_emit; // r29+0x70 + signed int i; // r19 + float rat; // r29+0x90 + float rat_inv; // r22 + class xVec3 vel_emit; // r29+0x60 + float num_whirl; // @ 0x004FC838 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BE130 -> 0x002BE798 +*/ +// Range: 0x2BE130 -> 0x2BE798 +void FXTurbulence(class zNPCGoalAlertGlove * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BE130 -> 0x2BE798 + class zNPCRobot * npc; // r21 + class xVec3 pos_npc; // r29+0x1C0 + signed int idx_bone; // r29+0xC0 + class xVec3 pos_base; // r29+0x1B0 + class xVec3 dir_out; // r29+0x1A0 + class xVec3 dir_travel; // r29+0x190 + class xVec3 pos_disperse; // r29+0x180 + class xVec3 vel_disperse; // r29+0x170 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BE7A0 -> 0x002BECD0 +*/ +// Range: 0x2BE7A0 -> 0x2BECD0 +signed int Process(class zNPCGoalAlertGlove * this /* r18 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BE7A0 -> 0x2BECD0 + signed int nextgoal; // r19 + class zNPCRobot * npc; // r21 + signed int rc; // r2 + class xVec3 path; // r29+0x80 + class zNPCGoalTaunt * taunt; // r2 + float dst; // r29+0x90 + float dst; // r29+0x90 + unsigned int astid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BECD0 -> 0x002BED58 +*/ +// Range: 0x2BECD0 -> 0x2BED58 +signed int Resume(class zNPCGoalAlertGlove * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BECD0 -> 0x2BED58 + class zNPCRobot * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BED60 -> 0x002BEDA8 +*/ +// Range: 0x2BED60 -> 0x2BEDA8 +signed int Suspend(class zNPCGoalAlertGlove * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BED60 -> 0x2BEDA8 + class zNPCRobot * npc; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BEDB0 -> 0x002BEDF8 +*/ +// Range: 0x2BEDB0 -> 0x2BEDF8 +signed int Exit(class zNPCGoalAlertGlove * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BEDB0 -> 0x2BEDF8 + class zNPCRobot * npc; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BEE00 -> 0x002BEE98 +*/ +// Range: 0x2BEE00 -> 0x2BEE98 +signed int Enter(class zNPCGoalAlertGlove * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BEE00 -> 0x2BEE98 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BEEA0 -> 0x002BEFBC +*/ +// Range: 0x2BEEA0 -> 0x2BEFBC +void GetInArena(class zNPCGoalAlertTarTar * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BEEA0 -> 0x2BEFBC + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x40 + float rot; // r29+0x50 + class xVec3 dir; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BEFC0 -> 0x002BF318 +*/ +// Range: 0x2BEFC0 -> 0x2BF318 +signed int HoppyUpdate(class zNPCGoalAlertTarTar * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BEFC0 -> 0x2BF318 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + float tym_reload; // r20 + class xVec3 dir_plyr; // r29+0x70 + float ds2_plyr; // r1 + float dot; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BF320 -> 0x002BF440 +*/ +// Range: 0x2BF320 -> 0x2BF440 +signed int NPCMessage(class zNPCGoalAlertTarTar * this /* r21 */, class NPCMsg * mail /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BF320 -> 0x2BF440 + signed int snarfed; // r19 + class zNPCRobot * npc; // r18 + class NPCDamageInfo * dmg; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BF440 -> 0x002BF7BC +*/ +// Range: 0x2BF440 -> 0x2BF7BC +signed int Process(class zNPCGoalAlertTarTar * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BF440 -> 0x2BF7BC + signed int nextgoal; // r16 + class zNPCTarTar * npc; // r22 + enum en_alerttart old_alerttart; // r21 + signed int subenter; // r20 + class xVec3 dir_HtoP; // r29+0x90 + float dsq; // r22 + class zNPCGoalTaunt * taunt; // r2 + float pct; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BF7C0 -> 0x002BF820 +*/ +// Range: 0x2BF7C0 -> 0x2BF820 +signed int Resume(class zNPCGoalAlertTarTar * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BF7C0 -> 0x2BF820 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BF820 -> 0x002BF888 +*/ +// Range: 0x2BF820 -> 0x2BF888 +signed int Enter(class zNPCGoalAlertTarTar * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BF820 -> 0x2BF888 + class zNPCRobot * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BF890 -> 0x002BF9F8 +*/ +// Range: 0x2BF890 -> 0x2BF9F8 +void MoveEvade(class zNPCGoalAlertHammer * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BF890 -> 0x2BF9F8 + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002BFA00 -> 0x002C0020 +*/ +// Range: 0x2BFA00 -> 0x2C0020 +void MoveChase(class zNPCGoalAlertHammer * this /* r2 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2BFA00 -> 0x2C0020 + class zNPCRobot * npc; // r17 + float tym_predict; // r29+0x120 + class xVec3 pos_pred; // r29+0x110 + class xVec3 dir_pred; // r29+0x100 + float dst_pred; // r20 + class xVec3 dir_NtoP; // r29+0xF0 + class xVec3 dir_plyr; // r29+0xE0 + class xVec3 dir_PtoP; // r29+0xD0 + class xVec3 pos_repred; // r29+0xC0 + class xVec3 dir_revised; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0020 -> 0x002C03C0 +*/ +// Range: 0x2C0020 -> 0x2C03C0 +signed int PlayerInSpot(class zNPCGoalAlertHammer * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0020 -> 0x2C03C0 + signed int plyrInSpot; // r16 + class zNPCRobot * npc; // r2 + float dy; // r29+0x7C + class xVec3 dir_plyr; // r29+0x70 + float dst_plyr; // r4 + float dot_plyr; // r1 + class xVec3 pos_zone; // r29+0x60 + class xVec3 pos_plyr; // r29+0x50 + float dst_guess; // r1 + float spd_mover; // r7 + float tym_predict; // r29+0x80 + class xVec3 vec; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C03C0 -> 0x002C073C +*/ +// Range: 0x2C03C0 -> 0x2C073C +signed int Process(class zNPCGoalAlertHammer * this /* r22 */, enum en_trantype * trantype /* r21 */, float dt /* r20 */, void * updCtxt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C03C0 -> 0x2C073C + class zNPCRobot * npc; // r19 + signed int nextgoal; // r18 + signed int rc; // r2 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertham old_alertham; // r17 + signed int subenter; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0740 -> 0x002C0748 +*/ +// Range: 0x2C0740 -> 0x2C0748 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x2C0740 -> 0x2C0748 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0750 -> 0x002C075C +*/ +// Range: 0x2C0750 -> 0x2C075C +signed int Enter(class zNPCGoalAlertHammer * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0750 -> 0x2C075C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0760 -> 0x002C0A40 +*/ +// Range: 0x2C0760 -> 0x2C0A40 +signed int CheckSpot(class zNPCGoalAlertChomper * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0760 -> 0x2C0A40 + signed int plyrInSpot; // r2 + class zNPCRobot * npc; // r16 + class xVec3 pos_plyr; // r29+0x60 + class xVec3 dir_plyr; // r29+0x50 + float dy; // r29+0x6C + float dst_plyr; // r4 + float dot_plyr; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0A40 -> 0x002C0B7C +*/ +// Range: 0x2C0A40 -> 0x2C0B7C +signed int MoveEvadePos(class zNPCGoalAlertChomper * this /* r2 */, class xVec3 * pos /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0A40 -> 0x2C0B7C + signed int arrived; // r17 + class zNPCRobot * npc; // r16 + class xVec3 dir_evade; // r29+0x60 + float rot; // r29+0x70 + class xVec3 dir; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0B80 -> 0x002C0EC4 +*/ +// Range: 0x2C0B80 -> 0x2C0EC4 +signed int CalcEvadePos(class zNPCGoalAlertChomper * this /* r2 */, class xVec3 * pos /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0B80 -> 0x2C0EC4 + signed int canEvade; // r2 + class zNPCRobot * npc; // r16 + class xVec3 pos_home; // r29+0x90 + float ang; // r21 + float rad_ca; // r5 + float rad_sa; // r4 + class xVec3 pos_loca[4]; // r29+0x40 + float ds2_best; // r29+0xA0 + signed int idx_best; // r2 + signed int i; // r14 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0ED0 -> 0x002C0FEC +*/ +// Range: 0x2C0ED0 -> 0x2C0FEC +void GetInArena(class zNPCGoalAlertChomper * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0ED0 -> 0x2C0FEC + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x40 + float rot; // r29+0x50 + class xVec3 dir; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C0FF0 -> 0x002C127C +*/ +// Range: 0x2C0FF0 -> 0x2C127C +void CirclePlayer(class zNPCGoalAlertChomper * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C0FF0 -> 0x2C127C + class zNPCRobot * npc; // r16 + class xVec3 pos_plyr; // r29+0x80 + class xVec3 dir_plyr; // r29+0x70 + class xVec3 dir_dest; // r29+0x60 + float rot; // r29+0x90 + class xVec3 dir; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C1280 -> 0x002C170C +*/ +// Range: 0x2C1280 -> 0x2C170C +signed int Process(class zNPCGoalAlertChomper * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C1280 -> 0x2C170C + class zNPCRobot * npc; // r18 + signed int nextgoal; // r17 + signed int rc; // r2 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertchomp old_alertchomp; // r22 + signed int subenter; // r16 + float pct; // r29+0xA0 + signed int canEvade; // r2 + float tym_ideal; // r2 + signed int arrived; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C1710 -> 0x002C1794 +*/ +// Range: 0x2C1710 -> 0x2C1794 +signed int Enter(class zNPCGoalAlertChomper * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C1710 -> 0x2C1794 + class zNPCRobot * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C17A0 -> 0x002C1854 +*/ +// Range: 0x2C17A0 -> 0x2C1854 +void DeathRayRender(class zNPCGoalAlertFodBzzt * this /* r4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C17A0 -> 0x2C1854 + class RwRGBA rgba_end; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C1860 -> 0x002C2134 +*/ +// Range: 0x2C1860 -> 0x2C2134 +void DeathRayUpdate(class zNPCGoalAlertFodBzzt * this /* r21 */, float dt /* r29+0x140 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C1860 -> 0x2C2134 + class zNPCFodBzzt * npc; // r20 + signed int canDoDamage; // r19 + signed int doFX; // r6 + float pam_segments[8]; // r29+0x90 + float pam; // r1 + signed int i; // r8 + float pam_inv; // r2 + float dst_range; // r29+0x140 + class xVec3 pos_src; // r29+0x130 + class xVec3 pos_tgt; // r29+0x120 + class xVec3 dir_laser; // r29+0x110 + class xCollis * colrec; // r18 + signed int rc; // r2 + float dst_plyrEFf; // r1 + class xVec3 vec_emitOffset; // @ 0x004FC828 + class RwRGBA rgba_danger; // @ 0x004FC820 + class RwRGBA rgba_warmup; // @ 0x004FC818 + class RwRGBA rgba_benign; // @ 0x004FC810 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2140 -> 0x002C268C +*/ +// Range: 0x2C2140 -> 0x2C268C +void OrbitPlayer(class zNPCGoalAlertFodBzzt * this /* r20 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C2140 -> 0x2C268C + class zNPCRobot * npc; // r19 + class xVec3 dir_plyr; // r29+0x100 + class xVec3 dir_mimic; // r29+0xF0 + class xVec3 pos_plyr; // r29+0xE0 + signed int go_away; // r4 + class xVec3 dir_move; // r29+0xD0 + class xVec3 dir_tan; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2690 -> 0x002C2AD0 +*/ +// Range: 0x2C2690 -> 0x2C2AD0 +signed int Process(class zNPCGoalAlertFodBzzt * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C2690 -> 0x2C2AD0 + signed int nextgoal; // r17 + class zNPCFodBzzt * npc; // r16 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertbzzt old_alertbzzt; // r21 + signed int subenter; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2AD0 -> 0x002C2BE4 +*/ +// Range: 0x2C2AD0 -> 0x2C2BE4 +signed int Resume(class zNPCGoalAlertFodBzzt * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C2AD0 -> 0x2C2BE4 + class zNPCFodBzzt * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2BF0 -> 0x002C2C10 +*/ +// Range: 0x2C2BF0 -> 0x2C2C10 +signed int Suspend() { + // Blocks + /* anonymous block */ { + // Range: 0x2C2BF0 -> 0x2C2C10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2C10 -> 0x002C2C4C +*/ +// Range: 0x2C2C10 -> 0x2C2C4C +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x2C2C10 -> 0x2C2C4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2C50 -> 0x002C2D40 +*/ +// Range: 0x2C2C50 -> 0x2C2D40 +signed int Enter(class zNPCGoalAlertFodBzzt * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C2C50 -> 0x2C2D40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2D40 -> 0x002C2FD0 +*/ +// Range: 0x2C2D40 -> 0x2C2FD0 +void SonarHoming(class zNPCGoalAlertFodBomb * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C2D40 -> 0x2C2FD0 + class zNPCRobot * npc; // r16 + class xVec3 pos_plyr; // r29+0x70 + class xVec3 dir_dest; // r29+0x60 + float spd_pursuit; // r23 + float acc_pursuit; // r22 + float spd_turnrate; // r21 + float rot; // r29+0x80 + class xVec3 dir; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C2FD0 -> 0x002C3448 +*/ +// Range: 0x2C2FD0 -> 0x2C3448 +signed int Process(class zNPCGoalAlertFodBomb * this /* r22 */, enum en_trantype * trantype /* r21 */, float dt /* r20 */, void * updCtxt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C2FD0 -> 0x2C3448 + signed int nextgoal; // r19 + class zNPCFodBomb * npc; // r18 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertbomb old_alertbomb; // r17 + signed int subenter; // r16 + float tym_countdown; // r21 + float pct_remain; // r29+0x90 + class zNPCGoalAfterlife * wanna; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C3450 -> 0x002C3460 +*/ +// Range: 0x2C3450 -> 0x2C3460 +signed int Resume(class zNPCGoalAlertFodBomb * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C3450 -> 0x2C3460 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C3460 -> 0x002C34C0 +*/ +// Range: 0x2C3460 -> 0x2C34C0 +signed int Enter(class zNPCGoalAlertFodBomb * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C3460 -> 0x2C34C0 + class zNPCFodBomb * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C34C0 -> 0x002C3604 +*/ +// Range: 0x2C34C0 -> 0x2C3604 +void MoveEvade(class zNPCGoalAlertFodder * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C34C0 -> 0x2C3604 + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x40 + float rot; // r29+0x50 + class xVec3 dir; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C3610 -> 0x002C372C +*/ +// Range: 0x2C3610 -> 0x2C372C +void GetInArena(class zNPCGoalAlertFodder * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C3610 -> 0x2C372C + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x40 + float rot; // r29+0x50 + class xVec3 dir; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C3730 -> 0x002C3978 +*/ +// Range: 0x2C3730 -> 0x2C3978 +void FlankPlayer(class zNPCGoalAlertFodder * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C3730 -> 0x2C3978 + class zNPCRobot * npc; // r16 + class xVec3 pos_plyr; // r29+0x70 + class xVec3 dir_dest; // r29+0x60 + float rot; // r29+0x80 + class xVec3 dir; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C3980 -> 0x002C3C68 +*/ +// Range: 0x2C3980 -> 0x2C3C68 +signed int CheckSpot(class zNPCGoalAlertFodder * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C3980 -> 0x2C3C68 + signed int plyrInSpot; // r2 + class zNPCRobot * npc; // r16 + class xVec3 pos_plyr; // r29+0x70 + class xVec3 dir_plyr; // r29+0x60 + float dy; // r29+0x7C + float dst_plyr; // r4 + float dot_plyr; // r1 + class xVec3 pos_head; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C3C70 -> 0x002C4034 +*/ +// Range: 0x2C3C70 -> 0x2C4034 +signed int Process(class zNPCGoalAlertFodder * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C3C70 -> 0x2C4034 + class zNPCRobot * npc; // r18 + signed int nextgoal; // r17 + signed int rc; // r2 + class zNPCGoalTaunt * taunt; // r2 + enum en_alertfod old_alertfod; // r22 + signed int subenter; // r16 + float pct; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C4040 -> 0x002C4050 +*/ +// Range: 0x2C4040 -> 0x2C4050 +signed int Enter(class zNPCGoalAlertFodder * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C4040 -> 0x2C4050 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C4050 -> 0x002C42C8 +*/ +// Range: 0x2C4050 -> 0x2C42C8 +signed int Process(class zNPCGoalAlert * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C4050 -> 0x2C42C8 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x80 + class zNPCGoalTaunt * taunt; // r2 + class zNPCGoalTaunt * taunt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C42D0 -> 0x002C42EC +*/ +// Range: 0x2C42D0 -> 0x2C42EC +signed int Exit(class zNPCGoalAlert * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C42D0 -> 0x2C42EC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C42F0 -> 0x002C43E4 +*/ +// Range: 0x2C42F0 -> 0x2C43E4 +signed int Enter(class zNPCGoalAlert * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C42F0 -> 0x2C43E4 + class zNPCRobot * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C43F0 -> 0x002C4594 +*/ +// Range: 0x2C43F0 -> 0x2C4594 +signed int Process(class zNPCGoalGoHome * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C43F0 -> 0x2C4594 + signed int nextgoal; // r17 + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C45A0 -> 0x002C4734 +*/ +// Range: 0x2C45A0 -> 0x2C4734 +signed int Process(class zNPCGoalEvade * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C45A0 -> 0x2C4734 + class zNPCRobot * npc; // r17 + class xVec3 dir_dest; // r29+0x70 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C4740 -> 0x002C47C0 +*/ +// Range: 0x2C4740 -> 0x2C47C0 +signed int Enter(class zNPCGoalEvade * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C4740 -> 0x2C47C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C47C0 -> 0x002C494C +*/ +// Range: 0x2C47C0 -> 0x2C494C +signed int Process(class zNPCGoalTaunt * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C47C0 -> 0x2C494C + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x70 + float timeToLaugh; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C4950 -> 0x002C49A8 +*/ +// Range: 0x2C4950 -> 0x2C49A8 +signed int Enter(class zNPCGoalTaunt * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C4950 -> 0x2C49A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C49B0 -> 0x002C4AD4 +*/ +// Range: 0x2C49B0 -> 0x2C4AD4 +signed int Process(class zNPCGoalNotice * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C49B0 -> 0x2C4AD4 + class zNPCRobot * npc; // r16 + class xVec3 dir_dest; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C4AE0 -> 0x002C5A70 +*/ +// Range: 0x2C4AE0 -> 0x2C5A70 +class xFactoryInst * GOALCreate_Robotic(signed int who /* r17 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C4AE0 -> 0x2C5A70 + class xGoal * goal; // r16 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalRobo.h b/dwarf/SB/Game/zNPCGoalRobo.h new file mode 100644 index 000000000..0b8ab7416 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalRobo.h @@ -0,0 +1,28 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5C80 -> 0x002C5C88 +*/ +// Range: 0x2C5C80 -> 0x2C5C88 +signed int CollReview() { + // Blocks + /* anonymous block */ { + // Range: 0x2C5C80 -> 0x2C5C88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalRobo.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5C90 -> 0x002C5C98 +*/ +// Range: 0x2C5C90 -> 0x2C5C98 +signed int CollReview() { + // Blocks + /* anonymous block */ { + // Range: 0x2C5C90 -> 0x2C5C98 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalScript.cpp b/dwarf/SB/Game/zNPCGoalScript.cpp new file mode 100644 index 000000000..027e65560 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalScript.cpp @@ -0,0 +1,2366 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalScript.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__14zNPCGoalScript; // size: 0x34, address: 0x50C0A0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__18zNPCGoalScriptWait; // size: 0x34, address: 0x50C0E0 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon6 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__18zNPCGoalScriptLead; // size: 0x34, address: 0x50C120 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__20zNPCGoalScriptFollow; // size: 0x34, address: 0x50C160 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__18zNPCGoalScriptTalk; // size: 0x34, address: 0x50C1A0 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__18zNPCGoalScriptMove; // size: 0x34, address: 0x50C1E0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__20zNPCGoalScriptAttack; // size: 0x34, address: 0x50C220 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__18zNPCGoalScriptAnim; // size: 0x34, address: 0x50C260 +class xModelAssetParam { + // total size: 0x0 +}; +class xFFX { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class zNPCGoalScript : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_script; // offset 0x4C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +struct /* @anon6 */ { + // total size: 0x2C +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FDC0 -> 0x0030FE4C +*/ +// Range: 0x30FDC0 -> 0x30FE4C +signed int NPCMessage(class zNPCGoalScript * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30FDC0 -> 0x30FE4C + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FE50 -> 0x0030FE58 +*/ +// Range: 0x30FE50 -> 0x30FE58 +signed int SysEvent() { + // Blocks + /* anonymous block */ { + // Range: 0x30FE50 -> 0x30FE58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FE60 -> 0x0030FE68 +*/ +// Range: 0x30FE60 -> 0x30FE68 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x30FE60 -> 0x30FE68 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FE70 -> 0x0030FECC +*/ +// Range: 0x30FE70 -> 0x30FECC +signed int Enter(class zNPCGoalScript * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30FE70 -> 0x30FECC + class zNPCCommon * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030FED0 -> 0x00310330 +*/ +// Range: 0x30FED0 -> 0x310330 +class xFactoryInst * GOALCreate_Script(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30FED0 -> 0x310330 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalStd.cpp b/dwarf/SB/Game/zNPCGoalStd.cpp new file mode 100644 index 000000000..8fbe8905d --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalStd.cpp @@ -0,0 +1,4249 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__15zNPCGoalDEVHero; // size: 0x34, address: 0x509E80 +class xVec3 g_Z3; // size: 0xC, address: 0x4F8DA0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon4 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__19zNPCGoalDEVAnimSpin; // size: 0x34, address: 0x509F00 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__20zNPCGoalDEVAnimCycle; // size: 0x34, address: 0x509F40 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__13zNPCGoalLimbo; // size: 0x34, address: 0x509F80 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__12zNPCGoalDead; // size: 0x34, address: 0x509FC0 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__17zNPCGoalNoManLand; // size: 0x34, address: 0x509EC0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__14zNPCGoalFidget; // size: 0x34, address: 0x50A080 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__16zNPCGoalPushAnim; // size: 0x34, address: 0x50A180 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__14zNPCGoalPatrol; // size: 0x34, address: 0x50A0C0 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__14zNPCGoalWander; // size: 0x34, address: 0x50A040 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__15zNPCGoalWaiting; // size: 0x34, address: 0x50A000 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__16zNPCGoalLoopAnim; // size: 0x34, address: 0x50A140 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__12zNPCGoalIdle; // size: 0x34, address: 0x50A100 +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zNPCGoalWander : public zNPCGoalCommon { + // total size: 0x78 +public: + signed int flg_wand; // offset 0x4C, size 0x4 + float tmr_remain; // offset 0x50, size 0x4 + float rad_wand; // offset 0x54, size 0x4 + class xVec3 pos_home; // offset 0x58, size 0xC + float tmr_minwalk; // offset 0x64, size 0x4 + float tmr_newdir; // offset 0x68, size 0x4 + class xVec3 dir_cur; // offset 0x6C, size 0xC +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zNPCGoalIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_idle; // offset 0x4C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zNPCGoalLoopAnim : public zNPCGoalCommon { + // total size: 0x6C +public: + signed int flg_loopanim; // offset 0x4C, size 0x4 + unsigned int anid_stage[3]; // offset 0x50, size 0xC + signed int cnt_loop; // offset 0x5C, size 0x4 + float lastAnimTime; // offset 0x60, size 0x4 + unsigned int origAnimFlags; // offset 0x64, size 0x4 + unsigned int animWeMolested; // offset 0x68, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class zNPCGoalPatrol : public zNPCGoalCommon { + // total size: 0x88 +public: + signed int flg_patrol; // offset 0x4C, size 0x4 + float tmr_wait; // offset 0x50, size 0x4 + class xVec3 pos_midpnt[4]; // offset 0x54, size 0x30 + signed int idx_midpnt; // offset 0x84, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zNPCGoalWaiting : public zNPCGoalLoopAnim { + // total size: 0x74 +public: + signed int flg_waiting; // offset 0x6C, size 0x4 + float tmr_waiting; // offset 0x70, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zNPCGoalDead : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_deadinfo; // offset 0x4C, size 0x4 + unsigned char old_moreFlags; // offset 0x50, size 0x1 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zNPCGoalLimbo : public zNPCGoalDead { + // total size: 0x54 +}; +class zNPCGoalPushAnim : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_pushanim; // offset 0x4C, size 0x4 + float lastAnimTime; // offset 0x50, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zNPCGoalDEVHero : public zNPCGoalCommon { + // total size: 0x4C +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zNPCGoalDEVAnimSpin : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned int origAnimFlags; // offset 0x4C, size 0x4 + unsigned int animWeMolested; // offset 0x50, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zNPCGoalDEVAnimCycle : public zNPCGoalCommon { + // total size: 0x4C +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xPSYNote { + // total size: 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zNPCGoalFidget : public zNPCGoalPushAnim { + // total size: 0x54 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x2C +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +struct /* @anon14 */ { + // total size: 0x34 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5D40 -> 0x002C5DF4 +*/ +// Range: 0x2C5D40 -> 0x2C5DF4 +signed int NPCMessage(class zNPCGoalDEVHero * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5D40 -> 0x2C5DF4 + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5E00 -> 0x002C5E90 +*/ +// Range: 0x2C5E00 -> 0x2C5E90 +signed int Process(class zNPCGoalDEVHero * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5E00 -> 0x2C5E90 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5E90 -> 0x002C5E98 +*/ +// Range: 0x2C5E90 -> 0x2C5E98 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x2C5E90 -> 0x2C5E98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5EA0 -> 0x002C5EA8 +*/ +// Range: 0x2C5EA0 -> 0x2C5EA8 +signed int Enter(class zNPCGoalDEVHero * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5EA0 -> 0x2C5EA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5EB0 -> 0x002C5F64 +*/ +// Range: 0x2C5EB0 -> 0x2C5F64 +signed int NPCMessage(class zNPCGoalDEVAnimSpin * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5EB0 -> 0x2C5F64 + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5F70 -> 0x002C600C +*/ +// Range: 0x2C5F70 -> 0x2C600C +signed int Process(class zNPCGoalDEVAnimSpin * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5F70 -> 0x2C600C + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6010 -> 0x002C605C +*/ +// Range: 0x2C6010 -> 0x2C605C +signed int Exit(class zNPCGoalDEVAnimSpin * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6010 -> 0x2C605C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6060 -> 0x002C6128 +*/ +// Range: 0x2C6060 -> 0x2C6128 +signed int Enter(class zNPCGoalDEVAnimSpin * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6060 -> 0x2C6128 + class xAnimState * ast; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6130 -> 0x002C61E4 +*/ +// Range: 0x2C6130 -> 0x2C61E4 +signed int NPCMessage(class zNPCGoalDEVAnimCycle * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6130 -> 0x2C61E4 + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C61F0 -> 0x002C6310 +*/ +// Range: 0x2C61F0 -> 0x2C6310 +signed int Process(class zNPCGoalDEVAnimCycle * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C61F0 -> 0x2C6310 + class zNPCCommon * npc; // r16 + float tym; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6310 -> 0x002C6318 +*/ +// Range: 0x2C6310 -> 0x2C6318 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x2C6310 -> 0x2C6318 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6320 -> 0x002C638C +*/ +// Range: 0x2C6320 -> 0x2C638C +signed int Enter(class zNPCGoalDEVAnimCycle * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6320 -> 0x2C638C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6390 -> 0x002C642C +*/ +// Range: 0x2C6390 -> 0x2C642C +signed int NPCMessage(class zNPCGoalLimbo * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6390 -> 0x2C642C + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6430 -> 0x002C6504 +*/ +// Range: 0x2C6430 -> 0x2C6504 +signed int Enter(class zNPCGoalLimbo * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6430 -> 0x2C6504 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6510 -> 0x002C65E4 +*/ +// Range: 0x2C6510 -> 0x2C65E4 +signed int Exit(class zNPCGoalDead * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6510 -> 0x2C65E4 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C65F0 -> 0x002C66A4 +*/ +// Range: 0x2C65F0 -> 0x2C66A4 +signed int Enter(class zNPCGoalDead * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C65F0 -> 0x2C66A4 + class zNPCCommon * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C66B0 -> 0x002C682C +*/ +// Range: 0x2C66B0 -> 0x2C682C +signed int Process(class zNPCGoalWaiting * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C66B0 -> 0x2C682C + signed int nextgoal; // r17 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6830 -> 0x002C68C4 +*/ +// Range: 0x2C6830 -> 0x2C68C4 +signed int Exit(class zNPCGoalWaiting * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6830 -> 0x2C68C4 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C68D0 -> 0x002C6998 +*/ +// Range: 0x2C68D0 -> 0x2C6998 +signed int Resume(class zNPCGoalWaiting * this /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C68D0 -> 0x2C6998 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C69A0 -> 0x002C6B20 +*/ +// Range: 0x2C69A0 -> 0x2C6B20 +signed int Enter(class zNPCGoalWaiting * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C69A0 -> 0x2C6B20 + class zNPCCommon * npc; // r16 + class zMovePoint * nav; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6B20 -> 0x002C6D90 +*/ +// Range: 0x2C6B20 -> 0x2C6D90 +void CalcNewDir(class zNPCGoalWander * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6B20 -> 0x2C6D90 + class zNPCCommon * npc; // r16 + float dist; // r23 + float spd_est; // r20 + float dst_far; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C6D90 -> 0x002C7178 +*/ +// Range: 0x2C6D90 -> 0x2C7178 +void VerticalWander(class zNPCGoalWander * this /* r17 */, float spd_dt /* r29+0x40 */, class xVec3 * vec_dest /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C6D90 -> 0x2C7178 + class zNPCCommon * npc; // r16 + float rat_hyt; // r20 + float rat; // r29+0x40 + float rat; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C7180 -> 0x002C7648 +*/ +// Range: 0x2C7180 -> 0x2C7648 +signed int Process(class zNPCGoalWander * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C7180 -> 0x2C7648 + signed int nextgoal; // r18 + class zNPCCommon * npc; // r17 + class xVec3 delta; // r29+0xB0 + float ds2_dest; // r2 + signed int needdir; // r4 + class zMovePoint * nav; // r16 + class zMovePoint * mvpt; // r29+0xBC + class xVec3 dir; // r29+0xA0 + float drot; // r29+0xC0 + class xVec3 vec_dest; // r29+0x90 + float dist; // r2 + float rate; // r29+0xC0 + float rat; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C7650 -> 0x002C76E4 +*/ +// Range: 0x2C7650 -> 0x2C76E4 +signed int Resume(class zNPCGoalWander * this /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C7650 -> 0x2C76E4 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C76F0 -> 0x002C7A34 +*/ +// Range: 0x2C76F0 -> 0x2C7A34 +signed int Enter(class zNPCGoalWander * this /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C76F0 -> 0x2C7A34 + class zNPCCommon * npc; // r16 + class xVec3 vec; // r29+0x60 + class zMovePoint * nav; // r19 + float dst; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C7A40 -> 0x002C7B20 +*/ +// Range: 0x2C7A40 -> 0x2C7B20 +signed int Exit(class zNPCGoalFidget * this /* r16 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C7A40 -> 0x2C7B20 + class zNPCCommon * npc; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C7B20 -> 0x002C7BD8 +*/ +// Range: 0x2C7B20 -> 0x2C7BD8 +signed int Enter(class zNPCGoalFidget * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C7B20 -> 0x2C7BD8 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C7BE0 -> 0x002C8384 +*/ +// Range: 0x2C7BE0 -> 0x2C8384 +void MoveAutoSmooth(class zNPCGoalPatrol * this /* r17 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C7BE0 -> 0x2C8384 + class zNPCCommon * npc; // r16 + signed int i; // r2 + class xVec3 * refbase[4]; // r29+0x50 + class xVec3 * refmid[4]; // r29+0x40 + signed int i; // r4 + float ds2_NtoD; // r3 + float ds2_CtoD; // r29+0x150 + class xVec3 pos_dest; // r29+0x140 + class xVec3 vec_dest; // r29+0x130 + float dst_trav; // r4 + float dist; // r20 + class xVec3 dir_dest; // r29+0x120 + float rot; // r29+0x150 + class xVec3 dir_travel; // r29+0x110 + float dot; // r1 + float rat; // r1 + class xVec3 dir_dest; // r29+0x100 + float rot; // r29+0x150 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C8390 -> 0x002C8498 +*/ +// Range: 0x2C8390 -> 0x2C8498 +void Chk_AutoSmooth(class zNPCGoalPatrol * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C8390 -> 0x2C8498 + class zNPCCommon * npc; // r7 + float ds2_min; // @ 0x004FCB10 + signed char @6133; // @ 0x0050FE74 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C84A0 -> 0x002C88C8 +*/ +// Range: 0x2C84A0 -> 0x2C88C8 +void MoveSpline(class zNPCGoalPatrol * this /* r2 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C84A0 -> 0x2C88C8 + class zNPCCommon * npc; // r19 + class xSpline3 * spl; // r18 + float newdist; // r21 + float qdot; // r20 + class xVec3 tgt; // r29+0xC0 + class xVec3 dir; // r29+0xB0 + class xQuat quat; // r29+0xA0 + class xQuat qold; // r29+0x90 + class xMat3x3 tmpmat; // r29+0x60 + float u; // r20 + float rotang; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C88D0 -> 0x002C8CC4 +*/ +// Range: 0x2C88D0 -> 0x2C8CC4 +void MoveNormal(class zNPCGoalPatrol * this /* r19 */, float dt /* r25 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C88D0 -> 0x2C8CC4 + class zNPCCommon * npc; // r18 + class xVec3 dir_dest; // r29+0xC0 + class xVec3 vec_dest; // r29+0xB0 + float velmag; // r24 + float rot; // r29+0xD0 + class xVec3 dir; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C8CD0 -> 0x002C8DAC +*/ +// Range: 0x2C8CD0 -> 0x2C8DAC +void DoOnArriveStuff(class zNPCGoalPatrol * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C8CD0 -> 0x2C8DAC + class zNPCCommon * npc; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C8DB0 -> 0x002C9054 +*/ +// Range: 0x2C8DB0 -> 0x2C9054 +signed int Process(class zNPCGoalPatrol * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C8DB0 -> 0x2C9054 + class zNPCCommon * npc; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9060 -> 0x002C90E0 +*/ +// Range: 0x2C9060 -> 0x2C90E0 +signed int Resume(class zNPCGoalPatrol * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9060 -> 0x2C90E0 + class zNPCCommon * npc; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C90E0 -> 0x002C916C +*/ +// Range: 0x2C90E0 -> 0x2C916C +signed int Exit(class zNPCGoalPatrol * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C90E0 -> 0x2C916C + class zNPCCommon * npc; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9170 -> 0x002C91E8 +*/ +// Range: 0x2C9170 -> 0x2C91E8 +signed int Enter(class zNPCGoalPatrol * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9170 -> 0x2C91E8 + class zNPCCommon * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C91F0 -> 0x002C9254 +*/ +// Range: 0x2C91F0 -> 0x2C9254 +signed int NPCMessage(class zNPCGoalIdle * this /* r2 */, class NPCMsg * msg /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C91F0 -> 0x2C9254 + signed int handled; // r2 + class zNPCGoalCommon * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9260 -> 0x002C9404 +*/ +// Range: 0x2C9260 -> 0x2C9404 +signed int Process(class zNPCGoalIdle * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9260 -> 0x2C9404 + signed int nextgoal; // r2 + class zNPCCommon * npc; // r16 + class zMovePoint * nav; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9410 -> 0x002C9500 +*/ +// Range: 0x2C9410 -> 0x2C9500 +signed int Resume(class zNPCGoalIdle * this /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9410 -> 0x2C9500 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9500 -> 0x002C9594 +*/ +// Range: 0x2C9500 -> 0x2C9594 +signed int Suspend(class zNPCGoalIdle * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9500 -> 0x2C9594 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C95A0 -> 0x002C9634 +*/ +// Range: 0x2C95A0 -> 0x2C9634 +signed int Exit(class zNPCGoalIdle * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C95A0 -> 0x2C9634 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9640 -> 0x002C9720 +*/ +// Range: 0x2C9640 -> 0x2C9720 +signed int Enter(class zNPCGoalIdle * this /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9640 -> 0x2C9720 + class zNPCCommon * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9720 -> 0x002C97C8 +*/ +// Range: 0x2C9720 -> 0x2C97C8 +void ValidateStages(class zNPCGoalLoopAnim * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9720 -> 0x2C97C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C97D0 -> 0x002C98AC +*/ +// Range: 0x2C97D0 -> 0x2C98AC +void UseDefaultAnims(class zNPCGoalLoopAnim * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C97D0 -> 0x2C98AC + class zNPCCommon * npc; // r17 + unsigned int ae; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C98C0 -> 0x002C98E0 +*/ +// Range: 0x2C98C0 -> 0x2C98E0 +void LoopCountSet(class zNPCGoalLoopAnim * this /* r2 */, signed int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C98C0 -> 0x2C98E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C98E0 -> 0x002C9AA4 +*/ +// Range: 0x2C98E0 -> 0x2C9AA4 +signed int Process(class zNPCGoalLoopAnim * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r21 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C98E0 -> 0x2C9AA4 + class zNPCCommon * npc; // r22 + signed int nextgoal; // r17 + unsigned int anid; // r16 + float tym_animCurr; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9AB0 -> 0x002C9AFC +*/ +// Range: 0x2C9AB0 -> 0x2C9AFC +signed int Exit(class zNPCGoalLoopAnim * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9AB0 -> 0x2C9AFC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9B00 -> 0x002C9C4C +*/ +// Range: 0x2C9B00 -> 0x2C9C4C +signed int Enter(class zNPCGoalLoopAnim * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9B00 -> 0x2C9C4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9C50 -> 0x002C9DF4 +*/ +// Range: 0x2C9C50 -> 0x2C9DF4 +signed int Process(class zNPCGoalPushAnim * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r21 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9C50 -> 0x2C9DF4 + class zNPCCommon * npc; // r17 + signed int nextgoal; // r16 + float tym_animCurr; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9E00 -> 0x002C9E10 +*/ +// Range: 0x2C9E00 -> 0x2C9E10 +signed int Resume(class zNPCGoalPushAnim * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9E00 -> 0x2C9E10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9E10 -> 0x002C9E1C +*/ +// Range: 0x2C9E10 -> 0x2C9E1C +signed int Exit(class zNPCGoalPushAnim * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9E10 -> 0x2C9E1C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9E20 -> 0x002C9E40 +*/ +// Range: 0x2C9E20 -> 0x2C9E40 +signed int Enter(class zNPCGoalPushAnim * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9E20 -> 0x2C9E40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9E40 -> 0x002C9E64 +*/ +// Range: 0x2C9E40 -> 0x2C9E64 +void GOALDestroy_Goal(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9E40 -> 0x2C9E64 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C9E70 -> 0x002CA4D8 +*/ +// Range: 0x2C9E70 -> 0x2CA4D8 +class xFactoryInst * GOALCreate_Standard(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C9E70 -> 0x2CA4D8 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalStd.h b/dwarf/SB/Game/zNPCGoalStd.h new file mode 100644 index 000000000..f727c111a --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalStd.h @@ -0,0 +1,42 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalStd.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5A70 -> 0x002C5AD8 +*/ +// Range: 0x2C5A70 -> 0x2C5AD8 +void * __ct(class zNPCGoalDead * this /* r2 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5A70 -> 0x2C5AD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5B70 -> 0x002C5BD8 +*/ +// Range: 0x2C5B70 -> 0x2C5BD8 +void * __ct(class zNPCGoalLoopAnim * this /* r2 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5B70 -> 0x2C5BD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalStd.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5BF0 -> 0x002C5C58 +*/ +// Range: 0x2C5BF0 -> 0x2C5C58 +void * __ct(class zNPCGoalPushAnim * this /* r2 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5BF0 -> 0x2C5C58 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalSubBoss.cpp b/dwarf/SB/Game/zNPCGoalSubBoss.cpp new file mode 100644 index 000000000..dc3594f2b --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalSubBoss.cpp @@ -0,0 +1,248 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__18zNPCGoalPrawnDeath; // size: 0x34, address: 0x50D530 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon6 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__19zNPCGoalPrawnDamage; // size: 0x34, address: 0x50D570 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__17zNPCGoalPrawnBowl; // size: 0x34, address: 0x50D5B0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__17zNPCGoalPrawnBeam; // size: 0x34, address: 0x50D5F0 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__17zNPCGoalPrawnIdle; // size: 0x34, address: 0x50D630 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__15zNPCGoalKJDeath; // size: 0x34, address: 0x50CD20 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__16zNPCGoalKJDamage; // size: 0x34, address: 0x50CD60 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__21zNPCGoalKJShockGround; // size: 0x34, address: 0x50CDA0 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__15zNPCGoalKJTaunt; // size: 0x34, address: 0x50CDE0 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__19zNPCGoalKJSpawnKids; // size: 0x34, address: 0x50CE20 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__15zNPCGoalKJBored; // size: 0x34, address: 0x50CE60 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__14zNPCGoalKJIdle; // size: 0x34, address: 0x50CEA0 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__12zNPCGoalHere; // size: 0x34, address: 0x50C490 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class xPSYNote { + // total size: 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +struct /* @anon6 */ { + // total size: 0x2C +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +class RyzMemData { + // total size: 0x1 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +struct /* @anon14 */ { + // total size: 0x34 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324650 -> 0x00324CC8 +*/ +// Range: 0x324650 -> 0x324CC8 +class xFactoryInst * GOALCreate_SubBoss(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324650 -> 0x324CC8 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalTiki.cpp b/dwarf/SB/Game/zNPCGoalTiki.cpp new file mode 100644 index 000000000..ff4450eb0 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalTiki.cpp @@ -0,0 +1,2310 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__16zNPCGoalTikiDead; // size: 0x34, address: 0x50A1C0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__16zNPCGoalTikiIdle; // size: 0x34, address: 0x50A300 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon3 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__17zNPCGoalTikiDying; // size: 0x34, address: 0x50A200 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__17zNPCGoalTikiCount; // size: 0x34, address: 0x50A240 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__16zNPCGoalTikiHide; // size: 0x34, address: 0x50A280 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__18zNPCGoalTikiPatrol; // size: 0x34, address: 0x50A2C0 +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zNPCGoalTikiCount : public zNPCGoalCommon { + // total size: 0x54 +public: + float tmr_count; // offset 0x4C, size 0x4 + signed int beingCarried; // offset 0x50, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCGoalTikiPatrol : public zNPCGoalCommon { + // total size: 0x64 +public: + class xVec3 dest_pos; // offset 0x4C, size 0xC + class xVec3 vel; // offset 0x58, size 0xC +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zNPCTiki : public zNPCCommon { + // total size: 0x378 +public: + unsigned int tikiFlag; // offset 0x2A0, size 0x4 + class xVec3 lastAt; // offset 0x2A4, size 0xC + class xBound origLocalBound; // offset 0x2B0, size 0x4C + class xVec3 deltaPos; // offset 0x2FC, size 0xC + float timeToLive; // offset 0x308, size 0x4 + float t1; // offset 0x30C, size 0x4 + float t2; // offset 0x310, size 0x4 + float t3; // offset 0x314, size 0x4 + class xVec3 v1; // offset 0x318, size 0xC + float vel; // offset 0x324, size 0x4 + float landHt; // offset 0x328, size 0x4 + class xEnt * nonTikiParent; // offset 0x32C, size 0x4 + class xVec3 nonTikiParentDisp; // offset 0x330, size 0xC + unsigned char numParents; // offset 0x33C, size 0x1 + class zNPCTiki * parents[4]; // offset 0x340, size 0x10 + unsigned char numChildren; // offset 0x350, size 0x1 + class zNPCTiki * children[4]; // offset 0x354, size 0x10 + class zNPCTiki * nextOrphan; // offset 0x364, size 0x4 + unsigned int updatedParents; // offset 0x368, size 0x4 + signed int contactParent; // offset 0x36C, size 0x4 + void * tikiAnim; // offset 0x370, size 0x4 + float tikiAnimTime; // offset 0x374, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zNPCGoalTikiIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + float tmr_wait; // offset 0x4C, size 0x4 +}; +class zNPCGoalTikiDead : public zNPCGoalCommon { + // total size: 0x50 +public: + float tmr_resurrect; // offset 0x4C, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xPSYNote { + // total size: 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x2C +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zNPCGoalTikiHide : public zNPCGoalCommon { + // total size: 0x4C +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zNPCGoalTikiDying : public zNPCGoalCommon { + // total size: 0x50 +public: + float tmr_dying; // offset 0x4C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xCurveAsset { + // total size: 0x0 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class RyzMemData { + // total size: 0x1 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA4F0 -> 0x002CA534 +*/ +// Range: 0x2CA4F0 -> 0x2CA534 +signed int Exit(class zNPCGoalTikiDead * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA4F0 -> 0x2CA534 + class zNPCTiki * tiki; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA540 -> 0x002CA5AC +*/ +// Range: 0x2CA540 -> 0x2CA5AC +signed int Enter(class zNPCGoalTikiDead * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA540 -> 0x2CA5AC + class zNPCTiki * tiki; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA5B0 -> 0x002CA5EC +*/ +// Range: 0x2CA5B0 -> 0x2CA5EC +signed int Exit(class zNPCGoalTikiDying * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA5B0 -> 0x2CA5EC + class zNPCTiki * tiki; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA5F0 -> 0x002CA624 +*/ +// Range: 0x2CA5F0 -> 0x2CA624 +signed int Enter(class zNPCGoalTikiDying * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA5F0 -> 0x2CA624 + class zNPCTiki * tiki; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA630 -> 0x002CA668 +*/ +// Range: 0x2CA630 -> 0x2CA668 +signed int Enter(class zNPCGoalTikiCount * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA630 -> 0x2CA668 + class zNPCTiki * tiki; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA670 -> 0x002CA69C +*/ +// Range: 0x2CA670 -> 0x2CA69C +signed int Exit(class zNPCGoalTikiHide * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA670 -> 0x2CA69C + class zNPCTiki * tiki; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA6A0 -> 0x002CA6C4 +*/ +// Range: 0x2CA6A0 -> 0x2CA6C4 +signed int Enter(class zNPCGoalTikiHide * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA6A0 -> 0x2CA6C4 + class zNPCTiki * tiki; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA6D0 -> 0x002CA78C +*/ +// Range: 0x2CA6D0 -> 0x2CA78C +signed int Enter(class zNPCGoalTikiPatrol * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA6D0 -> 0x2CA78C + class zNPCTiki * tiki; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA790 -> 0x002CA804 +*/ +// Range: 0x2CA790 -> 0x2CA804 +signed int Enter(class zNPCGoalTikiIdle * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA790 -> 0x2CA804 + class zNPCTiki * tiki; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA810 -> 0x002CABB8 +*/ +// Range: 0x2CA810 -> 0x2CABB8 +class xFactoryInst * GOALCreate_Tiki(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CA810 -> 0x2CABB8 + class xGoal * goal; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalTiki.h b/dwarf/SB/Game/zNPCGoalTiki.h new file mode 100644 index 000000000..a097fcecd --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalTiki.h @@ -0,0 +1,84 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CA4E0 -> 0x002CA4E8 +*/ +// Range: 0x2CA4E0 -> 0x2CA4E8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2CA4E0 -> 0x2CA4E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CABC0 -> 0x002CABC8 +*/ +// Range: 0x2CABC0 -> 0x2CABC8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2CABC0 -> 0x2CABC8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CABD0 -> 0x002CABD8 +*/ +// Range: 0x2CABD0 -> 0x2CABD8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2CABD0 -> 0x2CABD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CABE0 -> 0x002CABE8 +*/ +// Range: 0x2CABE0 -> 0x2CABE8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2CABE0 -> 0x2CABE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CABF0 -> 0x002CABF8 +*/ +// Range: 0x2CABF0 -> 0x2CABF8 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2CABF0 -> 0x2CABF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAC00 -> 0x002CAC08 +*/ +// Range: 0x2CAC00 -> 0x2CAC08 +void Clear() { + // Blocks + /* anonymous block */ { + // Range: 0x2CAC00 -> 0x2CAC08 + } +} + diff --git a/dwarf/SB/Game/zNPCGoalVillager.cpp b/dwarf/SB/Game/zNPCGoalVillager.cpp new file mode 100644 index 000000000..adb646275 --- /dev/null +++ b/dwarf/SB/Game/zNPCGoalVillager.cpp @@ -0,0 +1,4128 @@ +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__15zNPCGoalBoyWeep; // size: 0x34, address: 0x50C6C0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +float g_vilg_ds2_playergoing; // size: 0x4, address: 0x50F044 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +struct /* @anon8 */ { + // total size: 0x34 +} __vt__15zNPCGoalBoySwim; // size: 0x34, address: 0x50C700 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon6 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__15zNPCGoalBoyFall; // size: 0x34, address: 0x50C740 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__15zNPCGoalBoyRide; // size: 0x34, address: 0x50C780 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__15zNPCGoalBalloon; // size: 0x34, address: 0x50C7C0 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__12zNPCGoalHurt; // size: 0x34, address: 0x50C800 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__16zNPCGoalPushAnim; // size: 0x34, address: 0x50A180 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__13zNPCGoalCheer; // size: 0x34, address: 0x50C880 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__16zNPCGoalLoopAnim; // size: 0x34, address: 0x50A140 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__13zNPCGoalSpeak; // size: 0x34, address: 0x50C8C0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__15zNPCGoalChatter; // size: 0x34, address: 0x50C840 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__12zNPCGoalTalk; // size: 0x34, address: 0x50C900 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__18zNPCGoalPlayerNear; // size: 0x34, address: 0x50C940 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zNPCGoalPlayerNear : public zNPCGoalCommon { + // total size: 0x5C +public: + signed int flg_plyrnear; // offset 0x4C, size 0x4 + class NPCGlyph * talk_glyph; // offset 0x50, size 0x4 + class NPCWidget * talk_font; // offset 0x54, size 0x4 + float tmr_actBored; // offset 0x58, size 0x4 +}; +class zNPCGoalLoopAnim : public zNPCGoalCommon { + // total size: 0x6C +public: + signed int flg_loopanim; // offset 0x4C, size 0x4 + unsigned int anid_stage[3]; // offset 0x50, size 0xC + signed int cnt_loop; // offset 0x5C, size 0x4 + float lastAnimTime; // offset 0x60, size 0x4 + unsigned int origAnimFlags; // offset 0x64, size 0x4 + unsigned int animWeMolested; // offset 0x68, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zNPCGoalChatter : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned int sid_played; // offset 0x4C, size 0x4 + unsigned int playThisSound; // offset 0x50, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xFFX { + // total size: 0x0 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xParGroup { + // total size: 0x0 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zNPCVillager : public zNPCCommon { + // total size: 0x2B0 +public: + class HiThere hithere; // offset 0x2A0, size 0x8 + class ztaskbox * converse; // offset 0x2A8, size 0x4 + signed int current_talk_anim; // offset 0x2AC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zNPCFish : public zNPCVillager { + // total size: 0x348 +public: + class NPCTarget tgt_robonear; // offset 0x2B0, size 0x14 + float tmr_robonear; // offset 0x2C4, size 0x4 + float tmr_checkagain; // offset 0x2C8, size 0x4 + class xEntDrive raw_drvdata; // offset 0x2CC, size 0x7C +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zNPCGoalHurt : public zNPCGoalPushAnim { + // total size: 0x54 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zNPCGoalBalloon : public zNPCGoalCommon { + // total size: 0x4C +}; +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zNPCGoalBoyRide : public zNPCGoalCommon { + // total size: 0x4C +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class asset_type { + // total size: 0x0 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class callback { + // total size: 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zNPCGoalSpeak : public zNPCGoalCommon { + // total size: 0x64 +public: + float tmr_cycleAnim; // offset 0x4C, size 0x4 + class xVec3 pos_maintain; // offset 0x50, size 0xC + void * jawdata; // offset 0x5C, size 0x4 + float jawtime; // offset 0x60, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xPSYNote { + // total size: 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xSFX : public xBase { + // total size: 0x1C +public: + class xSFXAsset * asset; // offset 0x10, size 0x4 + unsigned int sndID; // offset 0x14, size 0x4 + float cachedOuterDistSquared; // offset 0x18, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class zNPCGoalTalk : public zNPCGoalCommon { + // total size: 0x78 +public: + float tmr_cycleAnim; // offset 0x4C, size 0x4 + float tmr_minTalk; // offset 0x50, size 0x4 + signed int stopTalking; // offset 0x54, size 0x4 + signed int killAndExit; // offset 0x58, size 0x4 + class xSFX * sfx_curTalk; // offset 0x5C, size 0x4 + unsigned int aid_curSound; // offset 0x60, size 0x4 + class xVec3 pos_maintain; // offset 0x64, size 0xC + void * jawdata; // offset 0x70, size 0x4 + float jawtime; // offset 0x74, size 0x4 +}; +enum en_NPC_UI_WIDGETS { + NPC_WIDGE_TALK = 0, + NPC_WIDGE_NOMORE = 1, + NPC_WIDGE_FORCE = 2, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zNPCBalloonBoy : public zNPCFish { + // total size: 0x354 +public: + signed int specialBalloon; // offset 0x348, size 0x4 + class zPlatform * plat_balloons; // offset 0x34C, size 0x4 + class xShadowCache * shadCache; // offset 0x350, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zNPCGoalBoyWeep : public zNPCGoalCommon { + // total size: 0x54 +public: + float tmr_weep; // offset 0x4C, size 0x4 + float ang_spinrate; // offset 0x50, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon6 */ { + // total size: 0x2C +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class NPCSndProp { + // total size: 0xC +public: + enum en_NPC_SOUND sndtype; // offset 0x0, size 0x4 + signed int flg_snd; // offset 0x4, size 0x4 + float tym_delayNext; // offset 0x8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class NPCWidget { + // total size: 0xC +public: + enum en_NPC_UI_WIDGETS idxID; // offset 0x0, size 0x4 + class xBase * base_widge; // offset 0x4, size 0x4 + class zNPCCommon * npc_ownerlock; // offset 0x8, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class zNPCGoalBoyFall : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int hitGround; // offset 0x4C, size 0x4 +}; +class zNPCGoalCheer : public zNPCGoalLoopAnim { + // total size: 0x6C +}; +class HiThere : public callback { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class NPCGlyph { + // total size: 0x64 +public: + enum en_npcglyph typ_glyph; // offset 0x0, size 0x4 + signed int flg_glyph; // offset 0x4, size 0x4 + class xModelInstance * mdl_glyph; // offset 0x8, size 0x4 + class xVec3 pos_glyph; // offset 0xC, size 0xC + class xVec3 vel_glyph; // offset 0x18, size 0xC + class xMat3x3 rot_glyph; // offset 0x24, size 0x30 + class xVec3 scl_glyph; // offset 0x54, size 0xC + float tmr_glyph; // offset 0x60, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zNPCGoalPushAnim : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_pushanim; // offset 0x4C, size 0x4 + float lastAnimTime; // offset 0x50, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum en_npcglyph { + NPC_GLYPH_UNKNOWN = 0, + NPC_GLYPH_SHINYONE = 1, + NPC_GLYPH_SHINYFIVE = 2, + NPC_GLYPH_SHINYTEN = 3, + NPC_GLYPH_SHINYFIFTY = 4, + NPC_GLYPH_SHINYHUNDRED = 5, + NPC_GLYPH_TALK = 6, + NPC_GLYPH_TALKOTHER = 7, + NPC_GLYPH_FRIEND = 8, + NPC_GLYPH_DAZED = 9, + NPC_GLYPH_NOMORE = 10, + NPC_GLYPH_FORCE = 2147483647, +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +struct /* @anon14 */ { + // total size: 0x34 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326200 -> 0x00326278 +*/ +// Range: 0x326200 -> 0x326278 +signed int NPCMessage(class zNPCGoalBoyWeep * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326200 -> 0x326278 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326280 -> 0x003263D4 +*/ +// Range: 0x326280 -> 0x3263D4 +signed int Process(class zNPCGoalBoyWeep * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326280 -> 0x3263D4 + signed int nextgoal; // r2 + class zNPCBalloonBoy * npc; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003263E0 -> 0x0032645C +*/ +// Range: 0x3263E0 -> 0x32645C +signed int Enter(class zNPCGoalBoyWeep * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3263E0 -> 0x32645C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326460 -> 0x0032651C +*/ +// Range: 0x326460 -> 0x32651C +signed int CollReview(class zNPCGoalBoyFall * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326460 -> 0x32651C + signed int diditall; // r2 + class zNPCBalloonBoy * npc; // r4 + class xCollis * floor; // r17 + float gooDepth; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326520 -> 0x00326680 +*/ +// Range: 0x326520 -> 0x326680 +signed int Process(class zNPCGoalBoyFall * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326520 -> 0x326680 + signed int nextgoal; // r18 + class zNPCBalloonBoy * npc; // r17 + class xAnimState * ast; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326680 -> 0x00326718 +*/ +// Range: 0x326680 -> 0x326718 +signed int NPCMessage(class zNPCGoalBoyRide * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326680 -> 0x326718 + class zNPCBalloonBoy * npc; // r17 + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326720 -> 0x00326810 +*/ +// Range: 0x326720 -> 0x326810 +signed int Process(class zNPCGoalBoyRide * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326720 -> 0x326810 + signed int nextgoal; // r2 + class zNPCBalloonBoy * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326810 -> 0x003268A4 +*/ +// Range: 0x326810 -> 0x3268A4 +signed int Exit(class zNPCGoalBoyRide * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326810 -> 0x3268A4 + class zNPCBalloonBoy * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003268B0 -> 0x003268C4 +*/ +// Range: 0x3268B0 -> 0x3268C4 +signed int Enter(class zNPCGoalBoyRide * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3268B0 -> 0x3268C4 + class zNPCBalloonBoy * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003268D0 -> 0x00326928 +*/ +// Range: 0x3268D0 -> 0x326928 +signed int NPCMessage(class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3268D0 -> 0x326928 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326930 -> 0x003269AC +*/ +// Range: 0x326930 -> 0x3269AC +signed int Process(class zNPCGoalBalloon * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326930 -> 0x3269AC + signed int nextgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003269B0 -> 0x003269C4 +*/ +// Range: 0x3269B0 -> 0x3269C4 +signed int Exit(class zNPCGoalBalloon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3269B0 -> 0x3269C4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003269D0 -> 0x003269E4 +*/ +// Range: 0x3269D0 -> 0x3269E4 +signed int Enter(class zNPCGoalBalloon * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3269D0 -> 0x3269E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003269F0 -> 0x00326A64 +*/ +// Range: 0x3269F0 -> 0x326A64 +signed int Process(class zNPCGoalHurt * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3269F0 -> 0x326A64 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326A70 -> 0x00326B00 +*/ +// Range: 0x326A70 -> 0x326B00 +signed int Enter(class zNPCGoalHurt * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326A70 -> 0x326B00 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326B00 -> 0x00326CF8 +*/ +// Range: 0x326B00 -> 0x326CF8 +signed int Process(class zNPCGoalChatter * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326B00 -> 0x326CF8 + signed int nextgoal; // r17 + class zNPCVillager * npc; // r16 + class xVec3 dir_plyr; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326D00 -> 0x00326DB4 +*/ +// Range: 0x326D00 -> 0x326DB4 +signed int Enter(class zNPCGoalChatter * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326D00 -> 0x326DB4 + class zNPCVillager * npc; // r18 + class NPCSndProp * sprop; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326DC0 -> 0x00326F2C +*/ +// Range: 0x326DC0 -> 0x326F2C +signed int Process(class zNPCGoalCheer * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326DC0 -> 0x326F2C + class zNPCVillager * npc; // r16 + class xVec3 dir_plyr; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326F30 -> 0x00326F88 +*/ +// Range: 0x326F30 -> 0x326F88 +signed int Enter(class zNPCGoalCheer * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326F30 -> 0x326F88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326F90 -> 0x00326FC8 +*/ +// Range: 0x326F90 -> 0x326FC8 +signed int NPCMessage(class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326F90 -> 0x326FC8 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326FD0 -> 0x00327260 +*/ +// Range: 0x326FD0 -> 0x327260 +signed int Process(class zNPCGoalSpeak * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326FD0 -> 0x327260 + class zNPCVillager * npc; // r16 + class xVec3 dir_plyr; // r29+0x70 + float jawval; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327260 -> 0x00327304 +*/ +// Range: 0x327260 -> 0x327304 +signed int Exit(class zNPCGoalSpeak * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327260 -> 0x327304 + class zNPCVillager * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327310 -> 0x003273E4 +*/ +// Range: 0x327310 -> 0x3273E4 +signed int Enter(class zNPCGoalSpeak * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327310 -> 0x3273E4 + class zNPCVillager * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003273F0 -> 0x00327448 +*/ +// Range: 0x3273F0 -> 0x327448 +signed int NPCMessage(class zNPCGoalTalk * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3273F0 -> 0x327448 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327450 -> 0x003278A4 +*/ +// Range: 0x327450 -> 0x3278A4 +signed int Process(class zNPCGoalTalk * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327450 -> 0x3278A4 + class zNPCVillager * npc; // r17 + signed int rc; // r2 + class xPsyche * psy; // r16 + signed int idx; // r2 + signed int nextgoal; // r2 + class xVec3 dir_plyr; // r29+0x80 + float ds2_plyr; // r21 + float jawval; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003278B0 -> 0x00327954 +*/ +// Range: 0x3278B0 -> 0x327954 +signed int Exit(class zNPCGoalTalk * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3278B0 -> 0x327954 + class zNPCVillager * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327960 -> 0x00327AB8 +*/ +// Range: 0x327960 -> 0x327AB8 +signed int Enter(class zNPCGoalTalk * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327960 -> 0x327AB8 + class zNPCVillager * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327AC0 -> 0x00327D64 +*/ +// Range: 0x327AC0 -> 0x327D64 +void ChkCheatDogTrix(signed int * nextgoal /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327AC0 -> 0x327D64 + unsigned int anid_player; // r7 + signed int found; // r6 + signed int k; // r5 + signed int k; // r5 + signed int k; // r5 + unsigned int hashes_sc[10]; // @ 0x005DE6A0 + unsigned int hashes_pa[3]; // @ 0x005DE6E8 + unsigned int hashes_ss[5]; // @ 0x005DE6D0 + signed char @6164; // @ 0x005100F4 + signed char @6161; // @ 0x005100F0 + signed char @6158; // @ 0x005100EC + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327D70 -> 0x00327DB0 +*/ +// Range: 0x327D70 -> 0x327DB0 +signed int NPCMessage(class zNPCGoalPlayerNear * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327D70 -> 0x327DB0 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00327DB0 -> 0x00328374 +*/ +// Range: 0x327DB0 -> 0x328374 +signed int Process(class zNPCGoalPlayerNear * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x327DB0 -> 0x328374 + signed int nextgoal; // r29+0xDC + class zNPCVillager * npc; // r19 + class NPCConfig * cfg; // r18 + class xVec3 dir_plyr; // r29+0xC8 + signed int cheats; // r17 + float rad_taskshow; // r4 + float rad_taskhide; // r3 + float dy; // r29+0xD8 + class xVec3 vex; // r29+0xB8 + class xVec3 vec; // r29+0xA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00328380 -> 0x00328480 +*/ +// Range: 0x328380 -> 0x328480 +signed int Resume(class zNPCGoalPlayerNear * this /* r16 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x328380 -> 0x328480 + class zNPCVillager * npc; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00328480 -> 0x003284E0 +*/ +// Range: 0x328480 -> 0x3284E0 +signed int Suspend(class zNPCGoalPlayerNear * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x328480 -> 0x3284E0 + class zNPCVillager * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003284E0 -> 0x003285BC +*/ +// Range: 0x3284E0 -> 0x3285BC +signed int Exit(class zNPCGoalPlayerNear * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3284E0 -> 0x3285BC + class zNPCVillager * npc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003285C0 -> 0x00328794 +*/ +// Range: 0x3285C0 -> 0x328794 +signed int Enter(class zNPCGoalPlayerNear * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3285C0 -> 0x328794 + class zNPCVillager * npc; // r16 + class xVec3 ang_delta; // r29+0x60 + class xVec3 ang_delta; // r29+0x50 + signed int cheats; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCGoalVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003287A0 -> 0x00328DD8 +*/ +// Range: 0x3287A0 -> 0x328DD8 +class xFactoryInst * GOALCreate_Villager(signed int who /* r17 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3287A0 -> 0x328DD8 + class xGoal * goal; // r16 + } +} + diff --git a/dwarf/SB/Game/zNPCGoals.cpp b/dwarf/SB/Game/zNPCGoals.cpp new file mode 100644 index 000000000..925d4f90c --- /dev/null +++ b/dwarf/SB/Game/zNPCGoals.cpp @@ -0,0 +1,87 @@ +/* + Compile unit: C:\SB\Game\zNPCGoals.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; + +/* + Compile unit: C:\SB\Game\zNPCGoals.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5CE0 -> 0x002C5D34 +*/ +// Range: 0x2C5CE0 -> 0x2C5D34 +void zNPCGoals_RegisterTypes(class xFactory * fac /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2C5CE0 -> 0x2C5D34 + class XGOFTypeInfo typelist[179]; // r29+0x10 + } +} + diff --git a/dwarf/SB/Game/zNPCHazard.cpp b/dwarf/SB/Game/zNPCHazard.cpp new file mode 100644 index 000000000..844f42ff5 --- /dev/null +++ b/dwarf/SB/Game/zNPCHazard.cpp @@ -0,0 +1,4799 @@ +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int g_cnt_activehaz; // size: 0x4, address: 0x5102C8 +static class NPCHazard g_hazards[64]; // size: 0x3900, address: 0x616ED0 +static class RpAtomic * g_hazard_rawModel[30]; // size: 0x78, address: 0x61A7D0 +static char * g_strz_hazModel[30]; // size: 0x78, address: 0x4E4450 +static class xAnimTable * g_haz_animTable[30]; // size: 0x78, address: 0x61A850 +static unsigned int g_hash_hazanim[3]; // size: 0xC, address: 0x61A8C8 +static char * g_strz_hazanim[3]; // size: 0xC, address: 0x4E44C8 +static class UVAModelInfo g_haz_uvAnimInfo[30]; // size: 0x3C0, address: 0x61A8E0 +static class NPCHazard * g_haz_uvAnimQue[27]; // size: 0x6C, address: 0x61ACA0 +static signed int g_haz_uvModelTypes[15]; // size: 0x3C, address: 0x4E44E0 +static enum en_hazmodel g_funfrag_choices[8]; // size: 0x20, address: 0x4E4520 +static class zShrapnelAsset * g_data_hazshrap[5]; // size: 0x14, address: 0x61AD10 +char * g_strz_hazshrap[5]; // size: 0x14, address: 0x4E4540 +static class RwRaster * g_rast_hazshad[30]; // size: 0x78, address: 0x61AD30 +char * g_strz_hazshad[30]; // size: 0x78, address: 0x4E4560 +static class zParEmitter * g_pemit_default; // size: 0x4, address: 0x5102CC +static class xParEmitterCustomSettings g_parf_default; // size: 0x16C, address: 0x61ADB0 +static class zParEmitter * g_pemit_zapwarn; // size: 0x4, address: 0x5102D0 +static class zParEmitter * g_pemit_zapwave; // size: 0x4, address: 0x5102D4 +static class zParEmitter * g_pemit_zaprain; // size: 0x4, address: 0x5102D8 +static class xParEmitterCustomSettings g_parf_zapwarn; // size: 0x16C, address: 0x61AF20 +static class xParEmitterCustomSettings g_parf_zapwave; // size: 0x16C, address: 0x61B090 +static class xParEmitterCustomSettings g_parf_zaprain; // size: 0x16C, address: 0x61B200 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +signed int HAZ_ord_sorttest(void *, void *); // size: 0x0, address: 0x3CD130 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xFFX { + // total size: 0x0 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum en_hazmodel { + NPC_HAZMDL_BOOMBALL_BUBBLE = 0, + NPC_HAZMDL_BOOMBALL_SMOKE = 1, + NPC_HAZMDL_FODBOMB = 2, + NPC_HAZMDL_TUBEBLAST = 3, + NPC_HAZMDL_DUPLOBOOM = 4, + NPC_HAZMDL_CATTLEPROD = 5, + NPC_HAZMDL_TARTARPROJ = 6, + NPC_HAZMDL_TARTARSPLAT = 7, + NPC_HAZMDL_TARTARSTEAM = 8, + NPC_HAZMDL_CHUCKBOMB = 9, + NPC_HAZMDL_CHUCKSPLISH = 10, + NPC_HAZMDL_CHUCKSPLASH = 11, + NPC_HAZMDL_ARFBONE = 12, + NPC_HAZMDL_SLICKPROJ = 13, + NPC_HAZMDL_SLICKPUDDLE = 14, + NPC_HAZMDL_SLICKBURST = 15, + NPC_HAZMDL_SLICKGLOB = 16, + NPC_HAZMDL_MONCLOUD = 17, + NPC_HAZMDL_FUNFRAG_WRENCH = 18, + NPC_HAZMDL_FUNFRAG_JOYSTICK = 19, + NPC_HAZMDL_FUNFRAG_SINK = 20, + NPC_HAZMDL_FUNFRAG_DUCK = 21, + NPC_HAZMDL_FUNFRAG_BRA = 22, + NPC_HAZMDL_FUNFRAG_HEADPHONES = 23, + NPC_HAZMDL_FUNFRAG_CELLPHONE = 24, + NPC_HAZMDL_FUNFRAG_SHOE = 25, + NPC_HAZMDL_THUNDER = 26, + NPC_HAZMDL_ROBOBITS = 27, + NPC_HAZMDL_VISSPLASH = 28, + NPC_HAZMDL_PUPPYNUKE = 29, + NPC_HAZMDL_NOMORE = 30, + NPC_HAZMDL_FORCE = 2147483647, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class xParGroup { + // total size: 0x0 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xSweptSphere { + // total size: 0x150 +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 + float dist; // offset 0x1C, size 0x4 + class xiMat4x3Union basis; // offset 0x20, size 0x40 + class xiMat4x3Union invbasis; // offset 0x60, size 0x40 + class xBox box; // offset 0xA0, size 0x18 + class xQCData qcd; // offset 0xB8, size 0x20 + float boxsize; // offset 0xD8, size 0x4 + float curdist; // offset 0xDC, size 0x4 + class xVec3 contact; // offset 0xE0, size 0xC + class xVec3 polynorm; // offset 0xEC, size 0xC + unsigned int oid; // offset 0xF8, size 0x4 + void * optr; // offset 0xFC, size 0x4 + class xModelInstance * mptr; // offset 0x100, size 0x4 + signed int hitIt; // offset 0x104, size 0x4 + class xVec3 worldPos; // offset 0x108, size 0xC + class xVec3 worldContact; // offset 0x114, size 0xC + class xVec3 worldNormal; // offset 0x120, size 0xC + class xVec3 worldTangent; // offset 0x12C, size 0xC + class xVec3 worldPolynorm; // offset 0x138, size 0xC +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xiMat4x3Union { + // total size: 0x40 +public: + union { // inferred + class xMat4x3 xm; // offset 0x0, size 0x40 + class RwMatrixTag im; // offset 0x0, size 0x40 + }; +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BF4D0 -> 0x003BF780 +*/ +// Range: 0x3BF4D0 -> 0x3BF780 +void Update(class UVAModelInfo * this /* r20 */, float dt /* r29+0x70 */, class xVec2 * use_offset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BF4D0 -> 0x3BF780 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BF780 -> 0x003BF78C +*/ +// Range: 0x3BF780 -> 0x3BF78C +void Hemorrage(class UVAModelInfo * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BF780 -> 0x3BF78C + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BF790 -> 0x003BFA4C +*/ +// Range: 0x3BF790 -> 0x3BFA4C +signed int Init(class UVAModelInfo * this /* r16 */, class RpAtomic * model /* r2 */, unsigned int flg_uvamCaller /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BF790 -> 0x3BFA4C + class RpGeometry * geom; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BFA50 -> 0x003BFDDC +*/ +// Range: 0x3BFA50 -> 0x3BFDDC +void VisSplashSparklies(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BFA50 -> 0x3BFDDC + float rad; // r20 + signed int i; // r22 + class xVec3 pos_emit; // r29+0x120 + class xVec3 vel_emit; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BFDE0 -> 0x003C006C +*/ +// Range: 0x3BFDE0 -> 0x3C006C +void Upd_RoboBits(class NPCHazard * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BFDE0 -> 0x3C006C + class HAZTarTar * tartar; // r17 + class xParabola * parab; // r16 + float keepFlightTime; // r20 + signed int moreorless; // @ 0x005102F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C0070 -> 0x003C0290 +*/ +// Range: 0x3C0070 -> 0x3C0290 +void StreakUpdate(class NPCHazard * this /* r2 */, unsigned int streakID /* r2 */, float rad /* r29+0xC0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C0070 -> 0x3C0290 + class xVec3 pos_left; // r29+0xB0 + class xVec3 pos_right; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C0290 -> 0x003C0490 +*/ +// Range: 0x3C0290 -> 0x3C0490 +void Upd_FunFrag(class NPCHazard * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C0290 -> 0x3C0490 + class HAZTarTar * tartar; // r17 + class xParabola * parab; // r16 + signed int moreorless; // @ 0x005102F4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C0490 -> 0x003C125C +*/ +// Range: 0x3C0490 -> 0x3C125C +void Upd_MonCloud(class NPCHazard * this /* r18 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C0490 -> 0x3C125C + class HAZCloud * cloud; // r17 + float ds2_owner; // r20 + class xVec3 dir_owner; // r29+0x1C0 + class zNPCCommon * npc; // r16 + float ds2_home; // r22 + class xVec3 vel; // r29+0x1B0 + float dst_plyr; // r4 + float spd; // r3 + float fv; // r3 + float diff; // r3 + float tym_alive; // r2 + signed int rc; // r16 + float freq; // r2 + float tym_alive; // r29+0x1D0 + signed int tog_warnon; // r3 + signed int rc; // r2 + class _tagLightningAdd info; // r29+0x130 + signed int emit_particles_and_cripple_framerate; // r16 + class xVec3 pos_emit; // r29+0x1A0 + class xVec3 pos_emit; // r29+0x190 + class _tagLightningAdd info; // r29+0xF0 + signed int showLightning; // @ 0x0050F168 + class xCollis colrec; // @ 0x0061B410 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C1260 -> 0x003C172C +*/ +// Range: 0x3C1260 -> 0x3C172C +void Upd_OilGlob(class NPCHazard * this /* r18 */, float dt /* r29+0x1A0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C1260 -> 0x3C172C + class HAZShroom * shroom; // r17 + float rat_quad; // r2 + float rad_use; // r20 + class xVec3 pos_emit; // r29+0x190 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C1730 -> 0x003C1910 +*/ +// Range: 0x3C1730 -> 0x3C1910 +void Upd_OilBurst(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C1730 -> 0x3C1910 + class HAZBall * ball; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C1910 -> 0x003C1C00 +*/ +// Range: 0x3C1910 -> 0x3C1C00 +signed int KickOilGlobby(class NPCHazard * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C1910 -> 0x3C1C00 + class HAZBall * ball; // r16 + class NPCHazard * haz; // r18 + signed int ok; // r2 + class xVec3 pos; // r29+0xA0 + float rad; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C1C00 -> 0x003C1DD4 +*/ +// Range: 0x3C1C00 -> 0x3C1DD4 +signed int KickOilBurst(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C1C00 -> 0x3C1DD4 + class NPCHazard * haz; // r16 + signed int ok; // r2 + class xVec3 pos; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C1DE0 -> 0x003C23A4 +*/ +// Range: 0x3C1DE0 -> 0x3C23A4 +void Upd_OilOoze(class NPCHazard * this /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C1DE0 -> 0x3C23A4 + class HAZBall * ball; // r17 + float rat; // r3 + signed int rc; // r2 + signed int rc; // r2 + float rad_use; // r20 + class xVec3 pos_emit; // r29+0x150 + float seg_pam[2]; // @ 0x00507570 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C23B0 -> 0x003C27EC +*/ +// Range: 0x3C23B0 -> 0x3C27EC +void OilSplash(class NPCHazard * this /* r16 */, class xVec3 * dir_norm /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C23B0 -> 0x3C27EC + class xVec3 at; // r29+0x140 + class xVec3 rt; // r29+0x130 + class xVec3 pos_emit; // r29+0x120 + signed int i; // r21 + class xVec3 vel_emit; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C27F0 -> 0x003C2A20 +*/ +// Range: 0x3C27F0 -> 0x3C2A20 +void ReconSlickOil(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C27F0 -> 0x3C2A20 + class HAZBall * ball; // r16 + class xVec3 dir_norm; // r29+0x60 + class xMat3x3 mat; // r29+0x30 + float dot; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C2A20 -> 0x003C31BC +*/ +// Range: 0x3C2A20 -> 0x3C31BC +void Upd_OilBubble(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C2A20 -> 0x3C31BC + class HAZTarTar * tartar; // r20 + class xParabola * parab; // r19 + class xVec3 whence; // r29+0x170 + float tym; // r4 + class xMat3x3 mat_rot; // r29+0x110 + class xVec3 dir; // r29+0x160 + float rad; // r20 + class xVec3 pos; // r29+0x150 + class xVec3 whence; // r29+0x140 + signed int moreorless; // @ 0x005102F0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C31C0 -> 0x003C33C8 +*/ +// Range: 0x3C31C0 -> 0x3C33C8 +void Upd_BoneBlast(class NPCHazard * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C31C0 -> 0x3C33C8 + class xVec3 pos_emit; // r29+0xE0 + class HAZBall * ball; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C33D0 -> 0x003C340C +*/ +// Range: 0x3C33D0 -> 0x3C340C +void ReconArfBone(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C33D0 -> 0x3C340C + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C3410 -> 0x003C3804 +*/ +// Range: 0x3C3410 -> 0x3C3804 +void Upd_BoneFlight(class NPCHazard * this /* r18 */, float dt /* r29+0xF0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C3410 -> 0x3C3804 + class HAZTarTar * tartar; // r17 + class xParabola * parab; // r16 + float tym; // r3 + signed int moreorless; // @ 0x005102EC + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C3810 -> 0x003C3A58 +*/ +// Range: 0x3C3810 -> 0x3C3A58 +void Upd_ChuckBloosh(class NPCHazard * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C3810 -> 0x3C3A58 + class HAZTarTar * tartar; // r17 + class xParabola * parab; // r16 + float rat_quad; // r2 + float dst_behind; // r3 + class xVec3 pos_emit; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C3A60 -> 0x003C3FF8 +*/ +// Range: 0x3C3A60 -> 0x3C3FF8 +signed int KickBlooshBlob(class NPCHazard * this /* r19 */, class xVec3 * vel_flight /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C3A60 -> 0x3C3FF8 + class NPCHazard * haz; // r17 + signed int ok; // r2 + class HAZTarTar * tartar; // r16 + float spd_factor; // r3 + class xVec3 vel_drift; // r29+0x110 + class xVec3 vel_push; // r29+0x100 + class xVec3 pos_emit; // r29+0xF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C4000 -> 0x003C438C +*/ +// Range: 0x3C4000 -> 0x3C438C +void WavesOfEvil(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C4000 -> 0x3C438C + float rad; // r20 + signed int i; // r22 + class xVec3 pos_emit; // r29+0x120 + class xVec3 vel_emit; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C4390 -> 0x003C4C0C +*/ +// Range: 0x3C4390 -> 0x3C4C0C +void WaterSplash(class NPCHazard * this /* r2 */, class xVec3 * dir_norm /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C4390 -> 0x3C4C0C + class xVec3 pos_emit; // r29+0x200 + class xVec3 up; // r29+0x1F0 + class xVec3 at; // r29+0x1E0 + class xVec3 rt; // r29+0x1D0 + signed int i; // r21 + class xVec3 vel_emit; // r29+0x1C0 + signed int i; // r21 + class xVec3 vel_emit; // r29+0x1B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C4C10 -> 0x003C4D80 +*/ +// Range: 0x3C4C10 -> 0x3C4D80 +void Upd_ChuckBlast(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C4C10 -> 0x3C4D80 + class HAZBall * ball; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C4D80 -> 0x003C5034 +*/ +// Range: 0x3C4D80 -> 0x3C5034 +void ReconChuck(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C4D80 -> 0x3C5034 + class HAZBall * ball; // r16 + class xVec3 dir_norm; // r29+0x70 + class xVec3 vel_flight; // r29+0x60 + class xMat3x3 mat; // r29+0x30 + float dot; // r1 + signed int i; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C5040 -> 0x003C549C +*/ +// Range: 0x3C5040 -> 0x3C549C +void DisperseBubWake(class NPCHazard * this /* r19 */, float radius /* r29+0x150 */, class xVec3 * velocity /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C5040 -> 0x3C549C + float dst_disperse; // r21 + float dst_behind; // r20 + class xVec3 pos_disperse; // r29+0x140 + class xVec3 vel_disperse; // r29+0x130 + class xVec3 dir_backward; // r29+0x120 + class xVec3 pos_emit; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C54A0 -> 0x003C5984 +*/ +// Range: 0x3C54A0 -> 0x3C5984 +void Upd_ChuckBomb(class NPCHazard * this /* r18 */, float dt /* r29+0x160 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C54A0 -> 0x3C5984 + class HAZTarTar * tartar; // r17 + class xParabola * parab; // r16 + float tym; // r4 + class xMat3x3 mat_rot; // r29+0x120 + class xVec3 dir; // r29+0x150 + class xMat3x3 mat_spiral; // r29+0xF0 + signed int moreorless; // @ 0x005102E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C5990 -> 0x003C5C34 +*/ +// Range: 0x3C5990 -> 0x3C5C34 +void TarTarLinger(class NPCHazard * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C5990 -> 0x3C5C34 + class HAZBall * ball; // r7 + class xVec3 vel_emit; // r29+0xC0 + float rad_use; // r20 + class xVec3 pos_emit; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C5C40 -> 0x003C607C +*/ +// Range: 0x3C5C40 -> 0x3C607C +void TarTarSplash(class NPCHazard * this /* r16 */, class xVec3 * dir_norm /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C5C40 -> 0x3C607C + class xVec3 at; // r29+0x140 + class xVec3 rt; // r29+0x130 + class xVec3 pos_emit; // r29+0x120 + signed int i; // r21 + class xVec3 vel_emit; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C6080 -> 0x003C6230 +*/ +// Range: 0x3C6080 -> 0x3C6230 +void Upd_TTStink(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C6080 -> 0x3C6230 + class HAZBall * ball; // r3 + class zShrapnelAsset * shrp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C6230 -> 0x003C637C +*/ +// Range: 0x3C6230 -> 0x3C637C +signed int KickSteamyStinky(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C6230 -> 0x3C637C + class NPCHazard * haz; // r16 + signed int ok; // r2 + float tym_lifeOfChild; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C6380 -> 0x003C6568 +*/ +// Range: 0x3C6380 -> 0x3C6568 +void Upd_TTSpill(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C6380 -> 0x3C6568 + class HAZBall * ball; // r16 + signed int rc; // r2 + class zShrapnelAsset * shrp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C6570 -> 0x003C668C +*/ +// Range: 0x3C6570 -> 0x3C668C +void ReconTarTar(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C6570 -> 0x3C668C + class xVec3 dir_norm; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C6690 -> 0x003C6F6C +*/ +// Range: 0x3C6690 -> 0x3C6F6C +void Upd_TTFlight(class NPCHazard * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C6690 -> 0x3C6F6C + class HAZTarTar * tartar; // r17 + class xParabola * parab; // r16 + class zShrapnelAsset * shrp; // r20 + class xVec3 vel_push; // r29+0x1A0 + class xVec3 vec_tmp; // r29+0x190 + class xVec3 whence; // r29+0x180 + class xMat3x3 mat_rot; // r29+0x110 + class xVec3 dir; // r29+0x170 + class zShrapnelAsset * shrp; // r2 + class xVec3 whence; // r29+0x160 + signed int moreorless; // @ 0x005102E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C6F70 -> 0x003C71F0 +*/ +// Range: 0x3C6F70 -> 0x3C71F0 +void Upd_Mushroom(class NPCHazard * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C6F70 -> 0x3C71F0 + class xVec3 pos_emit; // r29+0xE0 + class HAZShroom * shroom; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C71F0 -> 0x003C73D8 +*/ +// Range: 0x3C71F0 -> 0x3C73D8 +void Upd_TikiThunder(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C71F0 -> 0x3C73D8 + class xVec3 pos_emit; // r29+0xE0 + class HAZBall * ball; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C73E0 -> 0x003C75F4 +*/ +// Range: 0x3C73E0 -> 0x3C75F4 +void Upd_DuploBoom(class NPCHazard * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C73E0 -> 0x3C75F4 + class xVec3 pos_emit; // r29+0xF0 + class HAZBall * ball; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C7600 -> 0x003C7968 +*/ +// Range: 0x3C7600 -> 0x3C7968 +void Upd_TubeletBlast(class NPCHazard * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C7600 -> 0x3C7968 + class HAZBall * ball; // r18 + class xVec3 vel_emit; // r29+0x110 + class xVec3 pos_emit; // r29+0x100 + signed int moreorless; // @ 0x005102E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C7970 -> 0x003C7F7C +*/ +// Range: 0x3C7970 -> 0x3C7F7C +void Upd_CattleProd(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C7970 -> 0x3C7F7C + class xVec3 pos_emit; // r29+0x170 + class HAZCatProd * catprod; // r16 + class _tagLightningAdd info; // r29+0x110 + class xVec3 pos_lytend; // r29+0x160 + class xVec3 pos_lytend; // r29+0x150 + float tym; // r29+0x180 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C7F80 -> 0x003C809C +*/ +// Range: 0x3C7F80 -> 0x3C809C +void FodBombBubbles(class NPCHazard * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C7F80 -> 0x3C809C + class xVec3 pos_emit; // r29+0x10 + class xVec3 vel_spread; // @ 0x00507550 + class xVec3 pos_spread; // @ 0x00507540 + class xVec3 pos_offsetFirst; // @ 0x00507560 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C80A0 -> 0x003C82DC +*/ +// Range: 0x3C80A0 -> 0x3C82DC +void Upd_FodBomb(class NPCHazard * this /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C80A0 -> 0x3C82DC + class xVec3 pos_emit; // r29+0xF0 + class HAZBall * ball; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C82E0 -> 0x003C852C +*/ +// Range: 0x3C82E0 -> 0x3C852C +void Upd_PuppyNuke(class NPCHazard * this /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C82E0 -> 0x3C852C + class xVec3 pos_emit; // r29+0xF0 + class HAZBall * ball; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C8530 -> 0x003C86D4 +*/ +// Range: 0x3C8530 -> 0x3C86D4 +void DeathStar(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C8530 -> 0x3C86D4 + class HAZBall * ball; // r16 + class xVec3 pos_emit; // r29+0x70 + class xVec3 pos_emit; // r29+0x60 + float size; // r1 + class xVec3 pos_spread; // r29+0x50 + class xVec3 vel_spread; // r29+0x40 + class xVec3 pos_offset; // @ 0x00507530 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C86E0 -> 0x003C8890 +*/ +// Range: 0x3C86E0 -> 0x3C8890 +void Upd_Explode(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C86E0 -> 0x3C8890 + class HAZBall * ball; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C8890 -> 0x003C8998 +*/ +// Range: 0x3C8890 -> 0x3C8998 +class xAnimTable * ZNPC_AnimTable_HazardStd() { + // Blocks + /* anonymous block */ { + // Range: 0x3C8890 -> 0x3C8998 + class xAnimTable * table; // r16 + signed int ourAnims[3]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C89A0 -> 0x003C8AB8 +*/ +// Range: 0x3C89A0 -> 0x3C8AB8 +void ColResp_Default(class NPCHazard * this /* r2 */, class xSweptSphere * swdata /* r2 */, float tym_inFuture /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C89A0 -> 0x3C8AB8 + class HAZCollide * hazcol; // r7 + class xParabola * parab; // r6 + float tym_alive; // r2 + class xEnt * ent_hit; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C8AC0 -> 0x003C8AC8 +*/ +// Range: 0x3C8AC0 -> 0x3C8AC8 +void CollideResponse(class NPCHazard * this /* r2 */, class xSweptSphere * swdata /* r2 */, float tym_inFuture /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C8AC0 -> 0x3C8AC8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C8AD0 -> 0x003C8D58 +*/ +// Range: 0x3C8AD0 -> 0x3C8D58 +void StagColGeneral(class NPCHazard * this /* r18 */, signed int who /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C8AD0 -> 0x3C8D58 + class xParabola * parab; // r11 + float tym_alive; // r21 + float tym_ahead; // r20 + class xVec3 pos_here; // r29+0x1B0 + class xVec3 pos_there; // r29+0x1A0 + signed int rc; // r16 + class xSweptSphere sws; // r29+0x50 + float tym_inFuture; // r29+0x1C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C8D60 -> 0x003C8E7C +*/ +// Range: 0x3C8D60 -> 0x3C8E7C +signed int StaggeredCollide(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C8D60 -> 0x3C8E7C + class HAZCollide * hazcol; // r16 + class xCollis colrec; // @ 0x0061B3C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C8E80 -> 0x003C9090 +*/ +// Range: 0x3C8E80 -> 0x3C9090 +void PreCollide(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C8E80 -> 0x3C9090 + float grav; // r2 + class HAZTarTar * tartar; // r16 + class xParabola * parab; // r18 + signed int rc; // r2 + class xCollis colrec; // @ 0x0061B370 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C9090 -> 0x003C9190 +*/ +// Range: 0x3C9090 -> 0x3C9190 +enum en_hazmodel PickFunFrag() { + // Blocks + /* anonymous block */ { + // Range: 0x3C9090 -> 0x3C9190 + signed int choices[8]; // r29+0x20 + signed int cnt_choice; // r16 + signed int i; // r7 + signed int idx; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C9190 -> 0x003C92DC +*/ +// Range: 0x3C9190 -> 0x3C92DC +void OrientToDir(class NPCHazard * this /* r16 */, class xVec3 * vec_path /* r2 */, signed int doTheTwist /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C9190 -> 0x3C92DC + class xMat3x3 mat_rot; // r29+0x60 + class xVec3 dir; // r29+0x90 + class xMat3x3 mat_spiral; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C92E0 -> 0x003C93D0 +*/ +// Range: 0x3C92E0 -> 0x3C93D0 +signed int ColTestCyl(class NPCHazard * this /* r2 */, class xBound * bnd_tgt /* r2 */, float rad /* r29+0x20 */, float hyt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C92E0 -> 0x3C93D0 + signed int inrange; // r2 + class xVec3 diff; // r29+0x10 + float upper; // r5 + float lower; // r4 + float rad_eff; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C93D0 -> 0x003C9514 +*/ +// Range: 0x3C93D0 -> 0x3C9514 +void Cleanup(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C93D0 -> 0x3C9514 + class HAZCloud * cloud; // r16 + class HAZCatProd * catprod; // r2 + class HAZTarTar * tartar; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003C9520 -> 0x003CAF18 +*/ +// Range: 0x3C9520 -> 0x3CAF18 +void Render(class NPCHazard * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3C9520 -> 0x3CAF18 + class HAZBall * ball; // r16 + class HAZTarTar * tartar; // r2 + class xVec3 allone; // r29+0x190 + float alfa; // r29+0x1A0 + float rad; // r1 + float alfa; // r29+0x1A0 + float rad; // r1 + float rad; // r1 + float alfa; // r29+0x1A0 + float rad; // r1 + float alfa; // r29+0x1A0 + float rad; // r20 + class xVec3 tallish; // r29+0x180 + float rad; // r3 + float alfa; // r29+0x1A0 + float alfa; // r29+0x1A0 + float rad; // r1 + float alf_maxClamped; // r20 + float ds2_cam; // r29+0x1A0 + class xVec3 dir_plyr; // r29+0x170 + class xVec3 dir_haz; // r29+0x160 + float dot; // r3 + float rat; // r3 + float amt_tran; // r2 + float zon_tran; // r1 + float rat; // r2 + float rat_age; // r2 + float alfa; // r29+0x1A0 + float rad; // r1 + class RwRaster * rast; // r16 + float ds2_cam; // r29+0x1A0 + float rat_sq; // r29+0x1A0 + float alf_shadow; // r29+0x1A0 + class xMat4x3 mat_fake; // r29+0x40 + float rad; // r1 + float rad; // r1 + class xVec3 wider; // r29+0x150 + float rad; // r1 + float rad; // r1 + float rad; // r1 + float fac_fadeRate; // r1 + float rad; // r1 + float fac_fadeRate; // r1 + class xVec3 wider; // r29+0x140 + float rad; // r1 + float fac_fade; // r1 + float rad; // r29+0x1A0 + class xVec3 scl_beg; // r29+0x130 + class xVec3 scl_mid; // r29+0x120 + class xVec3 scl_end; // r29+0x110 + class xVec3 scale; // r29+0x100 + float rat; // r10 + float dist; // r9 + float rat; // r9 + float rad; // r1 + float rad; // r20 + float fx; // r29+0x1A0 + float dim_flux; // r1 + class xVec3 scl_wave; // r29+0xF0 + float rat_ff; // r2 + float arch; // r2 + float dim_flux; // r1 + class xVec3 scl_fount; // r29+0xE0 + float fac_fade; // r1 + float rad; // r1 + float rad; // r1 + float rad; // r1 + float rad; // r20 + float fx; // r29+0x1A0 + float dim_flux; // r1 + class xVec3 scl_wave; // r29+0xD0 + float rat_ff; // r2 + float arch; // r2 + float dim_flux; // r1 + class xVec3 scl_fount; // r29+0xC0 + class xVec3 scale_rb; // @ 0x00507520 + class xVec3 scale_cl; // @ 0x00507510 + signed int skipfill; // @ 0x005102DC + class xVec3 tallish; // @ 0x00507500 + class xVec3 taller; // @ 0x005074F0 + class xVec3 wider; // @ 0x005074E0 + class xVec3 scl_tallish; // @ 0x005074D0 + class xVec3 scale; // @ 0x005074C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CAF20 -> 0x003CB2E0 +*/ +// Range: 0x3CAF20 -> 0x3CB2E0 +void Timestep(class NPCHazard * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CAF20 -> 0x3CB2E0 + float rat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CB2E0 -> 0x003CB330 +*/ +// Range: 0x3CB2E0 -> 0x3CB330 +void PosSet(class NPCHazard * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CB2E0 -> 0x3CB330 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CB330 -> 0x003CB3B0 +*/ +// Range: 0x3CB330 -> 0x3CB3B0 +void Start(class NPCHazard * this /* r2 */, class xVec3 * pos /* r2 */, float tym /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CB330 -> 0x3CB3B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CB3B0 -> 0x003CB428 +*/ +// Range: 0x3CB3B0 -> 0x3CB428 +void Discard(class NPCHazard * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CB3B0 -> 0x3CB428 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CB430 -> 0x003CB5A4 +*/ +// Range: 0x3CB430 -> 0x3CB5A4 +signed int GrabModel(class NPCHazard * this /* r16 */, enum en_hazmodel idx_model /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CB430 -> 0x3CB5A4 + class xVec3 ang_orient; // r29+0x70 + class xMat4x3 frame; // r29+0x30 + class RpAtomic * raw_model; // r17 + unsigned int flg_pipespec; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CB5B0 -> 0x003CB6E4 +*/ +// Range: 0x3CB5B0 -> 0x3CB6E4 +void Reconfigure(class NPCHazard * this /* r18 */, enum en_npchaz haztype /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CB5B0 -> 0x3CB6E4 + class HAZNotify * noter; // r17 + class zNPCCommon * npc_old; // r16 + class xVec3 pos_old; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CB6F0 -> 0x003CCABC +*/ +// Range: 0x3CB6F0 -> 0x3CCABC +signed int ConfigHelper(class NPCHazard * this /* r18 */, enum en_npchaz haztype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CB6F0 -> 0x3CCABC + signed int result; // r17 + signed int rc; // r2 + class HAZBall * ball; // r16 + class HAZShroom * shroom; // r2 + class HAZPatriot * patriot; // r2 + class HAZCloud * cloud; // r2 + class HAZTarTar * tartar; // r2 + class HAZCollide * hazcol; // r2 + class xVec3 spin; // r29+0x110 + class xVec3 spin; // r29+0x100 + class xVec3 spin; // r29+0xF0 + class xVec3 spin; // r29+0xE0 + enum en_hazmodel idx_funfrag; // r2 + class xVec3 spin; // r29+0xD0 + float uv_scroll_vs[2]; // @ 0x005074B8 + class xVec3 vec_tumble; // @ 0x005074A8 + float uv_scroll_og[2]; // @ 0x005074A0 + float uv_scroll_or[2]; // @ 0x00507498 + float uv_scroll_os[2]; // @ 0x00507490 + float uv_scroll_ob[2]; // @ 0x00507488 + float uv_scroll_cl[2]; // @ 0x00507480 + float uv_scroll_cb[2]; // @ 0x00507478 + float uv_scroll_ts[2]; // @ 0x00507470 + float uv_scroll_pn[2]; // @ 0x00507468 + float uv_scroll_tb[2]; // @ 0x00507460 + float uv_scroll_cp[2]; // @ 0x00507458 + float uv_scroll_fb[2]; // @ 0x00507450 + float uv_scroll_ei[2]; // @ 0x00507448 + float uv_scroll_eo[2]; // @ 0x00507440 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CCAC0 -> 0x003CCB60 +*/ +// Range: 0x3CCAC0 -> 0x3CCB60 +void HAZ_Iterate(unsigned char (* fp)(class NPCHazard &, void *) /* r20 */, void * context /* r19 */, signed int flag_filter /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CCAC0 -> 0x3CCB60 + class NPCHazard * haz; // r17 + class NPCHazard * end; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CCB60 -> 0x003CCB70 +*/ +// Range: 0x3CCB60 -> 0x3CCB70 +signed int HAZ_AvailablePool() { + // Blocks + /* anonymous block */ { + // Range: 0x3CCB60 -> 0x3CCB70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CCB70 -> 0x003CCC38 +*/ +// Range: 0x3CCB70 -> 0x3CCC38 +class NPCHazard * HAZ_Acquire() { + // Blocks + /* anonymous block */ { + // Range: 0x3CCB70 -> 0x3CCC38 + class NPCHazard * da_haz; // r2 + signed int i; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CCC40 -> 0x003CCE54 +*/ +// Range: 0x3CCC40 -> 0x3CCE54 +void zNPCCommon_Hazards_RenderAll(signed int doOpaqueStuff /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CCC40 -> 0x3CCE54 + signed int i; // r19 + enum _SDRenderState old_rendstat; // r16 + class st_XORDEREDARRAY hazlist; // r29+0x70 + class NPCHazard * haz; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CCE60 -> 0x003CD128 +*/ +// Range: 0x3CCE60 -> 0x3CD128 +void zNPCHazard_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CCE60 -> 0x3CD128 + signed int i; // r17 + class st_XORDEREDARRAY hazlist; // r29+0x60 + class NPCHazard * haz; // r19 + class UVAModelInfo * info; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD130 -> 0x003CD188 +*/ +// Range: 0x3CD130 -> 0x3CD188 +static signed int HAZ_ord_sorttest(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3CD130 -> 0x3CD188 + class NPCHazard * key; // r2 + class NPCHazard * item; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD190 -> 0x003CD454 +*/ +// Range: 0x3CD190 -> 0x3CD454 +void zNPCHazard_InitEffects() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD190 -> 0x3CD454 + signed int i; // r18 + unsigned int aid; // r2 + class RpAtomic * mdl_raw; // r2 + signed int idx; // r6 + class UVAModelInfo * info; // r18 + unsigned int aid; // r2 + unsigned int size; // r29+0x4C + void * asset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD460 -> 0x003CD468 +*/ +// Range: 0x3CD460 -> 0x3CD468 +void zNPCHazard_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD460 -> 0x3CD468 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD470 -> 0x003CD548 +*/ +// Range: 0x3CD470 -> 0x3CD548 +void zNPCHazard_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD470 -> 0x3CD548 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD550 -> 0x003CD770 +*/ +// Range: 0x3CD550 -> 0x3CD770 +void zNPCHazard_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD550 -> 0x3CD770 + signed int i; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD770 -> 0x003CD8C0 +*/ +// Range: 0x3CD770 -> 0x3CD8C0 +void zNPCHazard_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD770 -> 0x3CD8C0 + signed int i; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD8C0 -> 0x003CD8C8 +*/ +// Range: 0x3CD8C0 -> 0x3CD8C8 +void zNPCHazard_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD8C0 -> 0x3CD8C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCHazard.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003CD8D0 -> 0x003CD930 +*/ +// Range: 0x3CD8D0 -> 0x3CD930 +void zNPCHazard_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x3CD8D0 -> 0x3CD930 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCHazard.h b/dwarf/SB/Game/zNPCHazard.h new file mode 100644 index 000000000..86fa4f054 --- /dev/null +++ b/dwarf/SB/Game/zNPCHazard.h @@ -0,0 +1,14 @@ +/* + Compile unit: C:\SB\Game\zNPCHazard.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C5C60 -> 0x002C5C68 +*/ +// Range: 0x2C5C60 -> 0x2C5C68 +signed int Notify() { + // Blocks + /* anonymous block */ { + // Range: 0x2C5C60 -> 0x2C5C68 + } +} + diff --git a/dwarf/SB/Game/zNPCMessenger.cpp b/dwarf/SB/Game/zNPCMessenger.cpp new file mode 100644 index 000000000..6cd1ed94f --- /dev/null +++ b/dwarf/SB/Game/zNPCMessenger.cpp @@ -0,0 +1,3624 @@ +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class NPCPSData g_postoffice; // size: 0x30, address: 0x5CC010 +static signed int g_lockarea; // size: 0x4, address: 0x50FE78 +static class NPCMsg g_msgdata; // size: 0x44, address: 0x5CC0E0 +class xVec3 g_NZ3; // size: 0xC, address: 0x4F8DD0 +class xVec3 g_Z3; // size: 0xC, address: 0x4F8DA0 +class xVec3 g_NX3; // size: 0xC, address: 0x4F8DB0 +class xVec3 g_X3; // size: 0xC, address: 0x4F8D80 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int zNPCMgr_OrdTest_npcid(void *, void *); // size: 0x0, address: 0x2CC770 +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class NPCPSData { + // total size: 0x30 +public: + class NPCPSClt * cltblob; // offset 0x0, size 0x4 + class NPCPSClt * cltfree; // offset 0x4, size 0x4 + class st_XORDEREDARRAY cltlist; // offset 0x8, size 0x10 + class NPCMsg * msgblob; // offset 0x18, size 0x4 + class NPCMsg * msgfree; // offset 0x1C, size 0x4 + class st_XORDEREDARRAY quelist; // offset 0x20, size 0x10 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class zNPCRobot : public zNPCCommon { + // total size: 0x37C +public: + signed int hitpoints; // offset 0x2A0, size 0x4 + float tmr_safetime; // offset 0x2A4, size 0x4 + class NPCArena arena; // offset 0x2A8, size 0x20 + class NPCBattle * inf_battle; // offset 0x2C8, size 0x4 + signed int idx_neckBone; // offset 0x2CC, size 0x4 + float tmr_stunned; // offset 0x2D0, size 0x4 + class NPCGlyph * glyf_stun; // offset 0x2D4, size 0x4 + signed int cnt_nextemit; // offset 0x2D8, size 0x4 + class xVec3 vel_bunnyhop; // offset 0x2DC, size 0xC + class zNPCLassoInfo raw_lassoinfo; // offset 0x2E8, size 0x18 + class xEntDrive raw_drvdata; // offset 0x300, size 0x7C +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xPSYNote { + // total size: 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class NPCBattle { + // total size: 0x14 +public: + class zNPCRobot * members[5]; // offset 0x0, size 0x14 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class NPCPSClt { + // total size: 0x10 +public: + void (* notify)(void *, class NPCMsg *); // offset 0x0, size 0x4 + void * notedata; // offset 0x4, size 0x4 + signed int flg_filter; // offset 0x8, size 0x4 + class NPCPSClt * next; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum en_npcglyph { + NPC_GLYPH_UNKNOWN = 0, + NPC_GLYPH_SHINYONE = 1, + NPC_GLYPH_SHINYFIVE = 2, + NPC_GLYPH_SHINYTEN = 3, + NPC_GLYPH_SHINYFIFTY = 4, + NPC_GLYPH_SHINYHUNDRED = 5, + NPC_GLYPH_TALK = 6, + NPC_GLYPH_TALKOTHER = 7, + NPC_GLYPH_FRIEND = 8, + NPC_GLYPH_DAZED = 9, + NPC_GLYPH_NOMORE = 10, + NPC_GLYPH_FORCE = 2147483647, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class NPCArena { + // total size: 0x20 +public: + signed int flg_arena; // offset 0x0, size 0x4 + class xVec3 pos_arena; // offset 0x4, size 0xC + float rad_arena; // offset 0x10, size 0x4 + class zMovePoint * nav_arena; // offset 0x14, size 0x4 + class zMovePoint * nav_refer_dest; // offset 0x18, size 0x4 + class zMovePoint * nav_refer_curr; // offset 0x1C, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum en_NPCTYPES { + NPC_TYPE_UNKNOWN = 0, + NPC_TYPE_BASIC = 1314140208, + NPC_TYPE_COMMON = 1314140209, + NPC_TYPE_AMBIENT = 1314149168, + NPC_TYPE_VILLAGER = 1314149169, + NPC_TYPE_ROBOT = 1314149170, + NPC_TYPE_BOSS = 1314149171, + NPC_TYPE_TEST = 1314149172, + NPC_TYPE_BADGUY = 1314149173, + NPC_TYPE_JELLYPINK = 1314144560, + NPC_TYPE_JELLYBLUE = 1314144561, + NPC_TYPE_KINGNEPTUNE = 1314144562, + NPC_TYPE_MIMEFISH = 1314144563, + NPC_TYPE_COW = 1314144564, + NPC_TYPE_TIKI_WOOD = 1314149424, + NPC_TYPE_TIKI_LOVEY = 1314149425, + NPC_TYPE_TIKI_QUIET = 1314149426, + NPC_TYPE_TIKI_THUNDER = 1314149427, + NPC_TYPE_TIKI_STONE = 1314149428, + NPC_TYPE_FISH = 1314145840, + NPC_TYPE_FISH_MALE = 1314145841, + NPC_TYPE_FISH_FEMALE = 1314145842, + NPC_TYPE_FISH_ELDER = 1314145843, + NPC_TYPE_FISH_ELDESS = 1314145844, + NPC_TYPE_FISH_BOY = 1314145845, + NPC_TYPE_FISH_GIRL = 1314145846, + NPC_TYPE_BALLOONBOY = 1314145847, + NPC_TYPE_GARY = 1314145848, + NPC_TYPE_SQUIDWARD = 1314145849, + NPC_TYPE_SQUIDWARD_MUSIC = 1314145850, + NPC_TYPE_SQUIDWARD_BANDAID = 1314145851, + NPC_TYPE_DUTCHMAN_NSB = 1314145852, + NPC_TYPE_SANDYBIKINI = 1314145853, + NPC_TYPE_SANDYNPC = 1314145854, + NPC_TYPE_PATNPC = 1314145855, + NPC_TYPE_BOBNPC = 1314145856, + NPC_TYPE_PLANKNPC = 1314145857, + NPC_TYPE_MRKRABS = 1314145858, + NPC_TYPE_MSPUFFS = 1314145859, + NPC_TYPE_LARRY = 1314145860, + NPC_TYPE_BUBBUDDY = 1314145861, + NPC_TYPE_NEWSFISH = 1314145862, + NPC_TYPE_NEWSFISHTV = 1314145863, + NPC_TYPE_MOTORIST = 1314145864, + NPC_TYPE_MERMANCHAIR = 1314145865, + NPC_TYPE_MERMAN = 1314145866, + NPC_TYPE_BARNACLEBOY = 1314145867, + NPC_TYPE_WORM = 1314145868, + NPC_TYPE_HAMMER = 1314148912, + NPC_TYPE_HAMSPIN = 1314148913, + NPC_TYPE_TARTAR = 1314148914, + NPC_TYPE_GLOVE = 1314148915, + NPC_TYPE_MONSOON = 1314148916, + NPC_TYPE_SLEEPY = 1314148917, + NPC_TYPE_ARFDOG = 1314148918, + NPC_TYPE_ARFARF = 1314148919, + NPC_TYPE_CHUCK = 1314148920, + NPC_TYPE_TUBELET = 1314148921, + NPC_TYPE_TUBESLAVE = 1314148922, + NPC_TYPE_SLICK = 1314148923, + NPC_TYPE_FODDER = 1314148924, + NPC_TYPE_FODBOMB = 1314148925, + NPC_TYPE_FODBZZT = 1314148926, + NPC_TYPE_CHOMPER = 1314148927, + NPC_TYPE_CRITTER = 1314148928, + NPC_TYPE_DUPLOTRON = 1314145328, + NPC_TYPE_KINGJELLY = 1314146352, + NPC_TYPE_DUTCHMAN = 1314146353, + NPC_TYPE_PRAWN = 1314146354, + NPC_TYPE_BOSSSANDY = 1314144816, + NPC_TYPE_BOSSPAT = 1314144817, + NPC_TYPE_BOSS_SB1 = 1314144818, + NPC_TYPE_BOSSBOBBY = 1314144819, + NPC_TYPE_BOSSPLANKTON = 1314144820, + NPC_TYPE_BADGUYMEDIUM = 1312966448, + NPC_TYPE_NOMORE = 1312966449, + NPC_TYPE_FORCE = 2147483647, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class NPCGlyph { + // total size: 0x64 +public: + enum en_npcglyph typ_glyph; // offset 0x0, size 0x4 + signed int flg_glyph; // offset 0x4, size 0x4 + class xModelInstance * mdl_glyph; // offset 0x8, size 0x4 + class xVec3 pos_glyph; // offset 0xC, size 0xC + class xVec3 vel_glyph; // offset 0x18, size 0xC + class xMat3x3 rot_glyph; // offset 0x24, size 0x30 + class xVec3 scl_glyph; // offset 0x54, size 0xC + float tmr_glyph; // offset 0x60, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xParGroup { + // total size: 0x0 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CAFF0 -> 0x002CB304 +*/ +// Range: 0x2CAFF0 -> 0x2CB304 +void zNPCMsg_AreaNPCExplodeNoRobo(class zNPCCommon * who /* r19 */, float radius /* r20 */, class xVec3 * pos_fromHere /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CAFF0 -> 0x2CB304 + signed int i; // r18 + class st_XORDEREDARRAY * npclist; // r17 + class xVec3 from; // r29+0x90 + float ds2_discard; // r20 + class zNPCCommon * npc; // r16 + signed int ntyp; // r5 + class xVec3 diff; // r29+0x80 + float ds2_tgt; // r21 + class zNPCRobot * robo; // r2 + float dst; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CB320 -> 0x002CB524 +*/ +// Range: 0x2CB320 -> 0x2CB524 +void zNPCMsg_AreaPlayerStun(float stuntime /* r22 */, float radius /* r21 */, class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CB320 -> 0x2CB524 + signed int i; // r18 + class st_XORDEREDARRAY * npclist; // r17 + class xVec3 from; // r29+0x60 + float ds2_discard; // r20 + class zNPCCommon * npc; // r16 + signed int ntyp; // r4 + class zNPCRobot * robo; // r2 + class xVec3 diff; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CB540 -> 0x002CB8BC +*/ +// Range: 0x2CB540 -> 0x2CB8BC +void zNPCMsg_AreaNotify(class zNPCCommon * sender /* r21 */, class NPCMsg * msg /* r20 */, float radius /* r29+0xB0 */, signed int filter /* r19 */, enum en_NPCTYPES * npcTypeList /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CB540 -> 0x2CB8BC + signed int i; // r17 + float sq_rad; // r20 + class st_XORDEREDARRAY * npclist; // r22 + class xVec3 from; // r29+0xA0 + class zNPCCommon * npc; // r16 + signed int ntyp; // r3 + signed int skipit; // r6 + signed int k; // r5 + class xVec3 diff; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CB8C0 -> 0x002CB988 +*/ +// Range: 0x2CB8C0 -> 0x2CB988 +void zNPCMsg_AreaNotify(class zNPCCommon * sender /* r19 */, enum en_NPC_MSG_ID msgid /* r18 */, float rad /* r20 */, signed int filter /* r17 */, enum en_NPCTYPES * npcTypeList /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CB8C0 -> 0x2CB988 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CB990 -> 0x002CBA74 +*/ +// Range: 0x2CB990 -> 0x2CBA74 +void zNPCMsg_AreaNotify(class zNPCCommon * sender /* r18 */, enum en_NPC_MSG_ID msgid /* r17 */, float rad /* r20 */, signed int filter /* r16 */, enum en_NPCTYPES toNPCType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CB990 -> 0x2CBA74 + enum en_NPCTYPES toTypes[2]; // r29+0x58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CBA80 -> 0x002CBC20 +*/ +// Range: 0x2CBA80 -> 0x2CBC20 +void zNPCMsg_SendMsg(class NPCMsg * inmsg /* r19 */, float delay /* r20 */, class zNPCCommon * npc_sendto /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CBA80 -> 0x2CBC20 + class st_XORDEREDARRAY * npclist; // r16 + signed int idx; // r2 + class NPCPSData * npcps; // r18 + signed int i; // r17 + class NPCPSClt * clt; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CBC20 -> 0x002CBC34 +*/ +// Range: 0x2CBC20 -> 0x2CBC34 +void zNPCMsg_SendMsg(class NPCMsg * inmsg /* r2 */, class zNPCCommon * npc_sendto /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CBC20 -> 0x2CBC34 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CBC40 -> 0x002CBCAC +*/ +// Range: 0x2CBC40 -> 0x2CBCAC +void zNPCMsg_SendMsg(enum en_NPC_MSG_ID msgevent /* r17 */, class zNPCCommon * npc_sendto /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CBC40 -> 0x2CBCAC + class NPCMsg msg; // @ 0x005CC090 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CBCB0 -> 0x002CBD18 +*/ +// Range: 0x2CBCB0 -> 0x2CBD18 +void zNPCMsg_SendMsg(enum en_NPC_MSG_ID msgevent /* r17 */, unsigned int sendto /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CBCB0 -> 0x2CBD18 + class NPCMsg msg; // @ 0x005CC040 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CBD20 -> 0x002CBE18 +*/ +// Range: 0x2CBD20 -> 0x2CBE18 +void zNPCMsg_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CBD20 -> 0x2CBE18 + class NPCPSData * npcps; // r19 + signed int i; // r18 + class NPCMsg * msg; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CBE20 -> 0x002CC0EC +*/ +// Range: 0x2CBE20 -> 0x2CC0EC +void zNPCMsg_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x2CBE20 -> 0x2CC0EC + class NPCPSData * npcps; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC0F0 -> 0x002CC3BC +*/ +// Range: 0x2CC0F0 -> 0x2CC3BC +void zNPCMsg_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x2CC0F0 -> 0x2CC3BC + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC3C0 -> 0x002CC3C8 +*/ +// Range: 0x2CC3C0 -> 0x2CC3C8 +void zNPCMsg_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x2CC3C0 -> 0x2CC3C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC3D0 -> 0x002CC3D8 +*/ +// Range: 0x2CC3D0 -> 0x2CC3D8 +void zNPCMsg_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2CC3D0 -> 0x2CC3D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMessenger.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC3E0 -> 0x002CC71C +*/ +// Range: 0x2CC3E0 -> 0x2CC71C +void zNPCMsg_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CC3E0 -> 0x2CC71C + class NPCPSData * npcps; // r16 + } +} + diff --git a/dwarf/SB/Game/zNPCMgr.cpp b/dwarf/SB/Game/zNPCMgr.cpp new file mode 100644 index 000000000..3e3bc680b --- /dev/null +++ b/dwarf/SB/Game/zNPCMgr.cpp @@ -0,0 +1,3666 @@ +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int g_modinit; // size: 0x4, address: 0x50FE7C +static class zNPCMgr * g_npcmgr; // size: 0x4, address: 0x50FE80 +static signed int g_firstFrameUpdateAllNPC; // size: 0x4, address: 0x50FE84 +class NPCBrainTableEntry g_brainTable[63]; // size: 0x2F4, address: 0x4DDD80 +static class NPCMTypeTable g_tbltype[250]; // size: 0xBB8, address: 0x4DE080 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zNPCMgr_OrdComp_npcid(void *, void *); // size: 0x0, address: 0x2CC720 +signed int zNPCMgr_OrdTest_npcid(void *, void *); // size: 0x0, address: 0x2CC770 +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zNPCMgr : public RyzMemData { + // total size: 0x28 +public: + class st_XORDEREDARRAY npclist; // offset 0x0, size 0x10 + class xFactory * npcFactory; // offset 0x10, size 0x4 + class xBehaveMgr * bmgr; // offset 0x14, size 0x4 + class xBase selfbase; // offset 0x18, size 0x10 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class NPCMTypeTable { + // total size: 0xC +public: + enum en_NPCTYPES useNPCType; // offset 0x0, size 0x4 + char * modelName; // offset 0x4, size 0x4 + unsigned int hashOfName; // offset 0x8, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xModelAssetInfo { + // total size: 0x14 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int NumModelInst; // offset 0x4, size 0x4 + unsigned int AnimTableID; // offset 0x8, size 0x4 + unsigned int CombatID; // offset 0xC, size 0x4 + unsigned int BrainID; // offset 0x10, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x8 +public: + unsigned int HashID; // offset 0x0, size 0x4 + unsigned char WordLength; // offset 0x4, size 0x1 + unsigned char String[3]; // offset 0x5, size 0x3 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zEntHangable { + // total size: 0x0 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RyzMemData { + // total size: 0x1 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xPSYNote { + // total size: 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +enum en_NPCTYPES { + NPC_TYPE_UNKNOWN = 0, + NPC_TYPE_BASIC = 1314140208, + NPC_TYPE_COMMON = 1314140209, + NPC_TYPE_AMBIENT = 1314149168, + NPC_TYPE_VILLAGER = 1314149169, + NPC_TYPE_ROBOT = 1314149170, + NPC_TYPE_BOSS = 1314149171, + NPC_TYPE_TEST = 1314149172, + NPC_TYPE_BADGUY = 1314149173, + NPC_TYPE_JELLYPINK = 1314144560, + NPC_TYPE_JELLYBLUE = 1314144561, + NPC_TYPE_KINGNEPTUNE = 1314144562, + NPC_TYPE_MIMEFISH = 1314144563, + NPC_TYPE_COW = 1314144564, + NPC_TYPE_TIKI_WOOD = 1314149424, + NPC_TYPE_TIKI_LOVEY = 1314149425, + NPC_TYPE_TIKI_QUIET = 1314149426, + NPC_TYPE_TIKI_THUNDER = 1314149427, + NPC_TYPE_TIKI_STONE = 1314149428, + NPC_TYPE_FISH = 1314145840, + NPC_TYPE_FISH_MALE = 1314145841, + NPC_TYPE_FISH_FEMALE = 1314145842, + NPC_TYPE_FISH_ELDER = 1314145843, + NPC_TYPE_FISH_ELDESS = 1314145844, + NPC_TYPE_FISH_BOY = 1314145845, + NPC_TYPE_FISH_GIRL = 1314145846, + NPC_TYPE_BALLOONBOY = 1314145847, + NPC_TYPE_GARY = 1314145848, + NPC_TYPE_SQUIDWARD = 1314145849, + NPC_TYPE_SQUIDWARD_MUSIC = 1314145850, + NPC_TYPE_SQUIDWARD_BANDAID = 1314145851, + NPC_TYPE_DUTCHMAN_NSB = 1314145852, + NPC_TYPE_SANDYBIKINI = 1314145853, + NPC_TYPE_SANDYNPC = 1314145854, + NPC_TYPE_PATNPC = 1314145855, + NPC_TYPE_BOBNPC = 1314145856, + NPC_TYPE_PLANKNPC = 1314145857, + NPC_TYPE_MRKRABS = 1314145858, + NPC_TYPE_MSPUFFS = 1314145859, + NPC_TYPE_LARRY = 1314145860, + NPC_TYPE_BUBBUDDY = 1314145861, + NPC_TYPE_NEWSFISH = 1314145862, + NPC_TYPE_NEWSFISHTV = 1314145863, + NPC_TYPE_MOTORIST = 1314145864, + NPC_TYPE_MERMANCHAIR = 1314145865, + NPC_TYPE_MERMAN = 1314145866, + NPC_TYPE_BARNACLEBOY = 1314145867, + NPC_TYPE_WORM = 1314145868, + NPC_TYPE_HAMMER = 1314148912, + NPC_TYPE_HAMSPIN = 1314148913, + NPC_TYPE_TARTAR = 1314148914, + NPC_TYPE_GLOVE = 1314148915, + NPC_TYPE_MONSOON = 1314148916, + NPC_TYPE_SLEEPY = 1314148917, + NPC_TYPE_ARFDOG = 1314148918, + NPC_TYPE_ARFARF = 1314148919, + NPC_TYPE_CHUCK = 1314148920, + NPC_TYPE_TUBELET = 1314148921, + NPC_TYPE_TUBESLAVE = 1314148922, + NPC_TYPE_SLICK = 1314148923, + NPC_TYPE_FODDER = 1314148924, + NPC_TYPE_FODBOMB = 1314148925, + NPC_TYPE_FODBZZT = 1314148926, + NPC_TYPE_CHOMPER = 1314148927, + NPC_TYPE_CRITTER = 1314148928, + NPC_TYPE_DUPLOTRON = 1314145328, + NPC_TYPE_KINGJELLY = 1314146352, + NPC_TYPE_DUTCHMAN = 1314146353, + NPC_TYPE_PRAWN = 1314146354, + NPC_TYPE_BOSSSANDY = 1314144816, + NPC_TYPE_BOSSPAT = 1314144817, + NPC_TYPE_BOSS_SB1 = 1314144818, + NPC_TYPE_BOSSBOBBY = 1314144819, + NPC_TYPE_BOSSPLANKTON = 1314144820, + NPC_TYPE_BADGUYMEDIUM = 1312966448, + NPC_TYPE_NOMORE = 1312966449, + NPC_TYPE_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class NPCBrainTableEntry { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum en_NPCTYPES type; // offset 0x4, size 0x4 + unsigned int id; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC720 -> 0x002CC768 +*/ +// Range: 0x2CC720 -> 0x2CC768 +signed int zNPCMgr_OrdComp_npcid(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CC720 -> 0x2CC768 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC770 -> 0x002CC7B0 +*/ +// Range: 0x2CC770 -> 0x2CC7B0 +signed int zNPCMgr_OrdTest_npcid(void * vkey /* r2 */, void * vitem /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CC770 -> 0x2CC7B0 + signed int rc; // r2 + unsigned int key; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC7B0 -> 0x002CC858 +*/ +// Range: 0x2CC7B0 -> 0x2CC858 +enum en_NPCTYPES NPCTypeForModel(unsigned int brainID /* r2 */, unsigned int mdl_hash /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CC7B0 -> 0x2CC858 + signed int i; // r4 + enum en_NPCTYPES usetype; // r2 + class NPCMTypeTable * rec; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC860 -> 0x002CC910 +*/ +// Range: 0x2CC860 -> 0x2CC910 +class xEnt * CreateNPC(class zNPCMgr * this /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CC860 -> 0x2CC910 + class zNPCCommon * npc; // r16 + enum en_NPCTYPES nt; // r2 + unsigned int size; // r29+0x3C + class xModelAssetInfo * modelAsset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CC910 -> 0x002CCA14 +*/ +// Range: 0x2CC910 -> 0x2CCA14 +void ScenePostParticleRender(class zNPCMgr * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CC910 -> 0x2CCA14 + enum _SDRenderState old_rendstat; // r18 + signed int i; // r17 + class zNPCCommon * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCA30 -> 0x002CCB34 +*/ +// Range: 0x2CCA30 -> 0x2CCB34 +void ScenePostRender(class zNPCMgr * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CCA30 -> 0x2CCB34 + enum _SDRenderState old_rendstat; // r18 + signed int i; // r17 + class zNPCCommon * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCB60 -> 0x002CCC34 +*/ +// Range: 0x2CCB60 -> 0x2CCC34 +void SceneFinish(class zNPCMgr * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CCB60 -> 0x2CCC34 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCC40 -> 0x002CCC90 +*/ +// Range: 0x2CCC40 -> 0x2CCC90 +void Shutdown(class zNPCMgr * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CCC40 -> 0x2CCC90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCC90 -> 0x002CCC98 +*/ +// Range: 0x2CCC90 -> 0x2CCC98 +class xEnt * zNPCMgr_createNPCInst(class xEntAsset * assdat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CCC90 -> 0x2CCC98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCCA0 -> 0x002CCCA8 +*/ +// Range: 0x2CCCA0 -> 0x2CCCA8 +void zNPCMgr_scenePostParticleRender() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCCA0 -> 0x2CCCA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCCB0 -> 0x002CCCB8 +*/ +// Range: 0x2CCCB0 -> 0x2CCCB8 +void zNPCMgr_scenePostRender() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCCB0 -> 0x2CCCB8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCCC0 -> 0x002CCDD8 +*/ +// Range: 0x2CCCC0 -> 0x2CCDD8 +void zNPCMgr_sceneTimestep(class xScene * xscn /* r20 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CCCC0 -> 0x2CCDD8 + class zNPCMgr * mgr; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCDE0 -> 0x002CCE58 +*/ +// Range: 0x2CCDE0 -> 0x2CCE58 +void zNPCMgr_scenePostSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCDE0 -> 0x2CCE58 + class zNPCMgr * mgr; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCE60 -> 0x002CCE94 +*/ +// Range: 0x2CCE60 -> 0x2CCE94 +void zNPCMgr_scenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCE60 -> 0x2CCE94 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCEA0 -> 0x002CCF88 +*/ +// Range: 0x2CCEA0 -> 0x2CCF88 +void zNPCMgr_sceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCEA0 -> 0x2CCF88 + class zNPCMgr * mgr; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCF90 -> 0x002CCF98 +*/ +// Range: 0x2CCF90 -> 0x2CCF98 +void zNPCMgr_sceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCF90 -> 0x2CCF98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCFA0 -> 0x002CD014 +*/ +// Range: 0x2CCFA0 -> 0x2CD014 +void zNPCMgr_scenePrepare(signed int npccnt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CCFA0 -> 0x2CD014 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD020 -> 0x002CD1C8 +*/ +// Range: 0x2CD020 -> 0x2CD1C8 +void zNPCMgr_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD020 -> 0x2CD1C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD220 -> 0x002CD350 +*/ +// Range: 0x2CD220 -> 0x2CD350 +void zNPCMgr_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD220 -> 0x2CD350 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD350 -> 0x002CD358 +*/ +// Range: 0x2CD350 -> 0x2CD358 +class st_XORDEREDARRAY * zNPCMgr_GetNPCList() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD350 -> 0x2CD358 + } +} + +/* + Compile unit: C:\SB\Game\zNPCMgr.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD360 -> 0x002CD368 +*/ +// Range: 0x2CD360 -> 0x2CD368 +class zNPCMgr * zNPCMgrSelf() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD360 -> 0x2CD368 + } +} + diff --git a/dwarf/SB/Game/zNPCMgrpv.h b/dwarf/SB/Game/zNPCMgrpv.h new file mode 100644 index 000000000..6f89baf14 --- /dev/null +++ b/dwarf/SB/Game/zNPCMgrpv.h @@ -0,0 +1,14 @@ +/* + Compile unit: C:\SB\Game\zNPCMgrpv.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD1D0 -> 0x002CD214 +*/ +// Range: 0x2CD1D0 -> 0x2CD214 +void * __dt(class zNPCMgr * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD1D0 -> 0x2CD214 + } +} + diff --git a/dwarf/SB/Game/zNPCSndLists.cpp b/dwarf/SB/Game/zNPCSndLists.cpp new file mode 100644 index 000000000..438c2b50a --- /dev/null +++ b/dwarf/SB/Game/zNPCSndLists.cpp @@ -0,0 +1,89 @@ +/* + Compile unit: C:\SB\Game\zNPCSndLists.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class NPCSndProp g_sndProps[17]; // size: 0xCC, address: 0x4DFCA0 +class NPCSndTrax g_sndTrax_Universal[1]; // size: 0xC, address: 0x5CF988 +class NPCSndTrax g_sndTrax_General[1]; // size: 0xC, address: 0x5CF998 +class NPCSndTrax g_sndTrax_Villager[27]; // size: 0x144, address: 0x4DFD70 +class NPCSndTrax g_sndTrax_Squidward[6]; // size: 0x48, address: 0x4DFEC0 +class NPCSndTrax g_sndTrax_VillagerCoStar[16]; // size: 0xC0, address: 0x4DFF10 +class NPCSndTrax g_sndTrax_VillagerMale[1]; // size: 0xC, address: 0x5CF9A8 +class NPCSndTrax g_sndTrax_VillagerFemale[1]; // size: 0xC, address: 0x5CF9B8 +class NPCSndTrax g_sndTrax_VillagerElder[1]; // size: 0xC, address: 0x5CF9C8 +class NPCSndTrax g_sndTrax_VillagerEldess[1]; // size: 0xC, address: 0x5CF9D8 +class NPCSndTrax g_sndTrax_VillagerBoy[2]; // size: 0x18, address: 0x4DFFD0 +class NPCSndTrax g_sndTrax_VillagerGirl[2]; // size: 0x18, address: 0x4DFFF0 +class NPCSndTrax g_sndTrax_Neptune[1]; // size: 0xC, address: 0x5CF9E8 +class NPCSndTrax g_sndTrax_Jelly[4]; // size: 0x30, address: 0x4E0010 +class NPCSndTrax g_sndTrax_TikiShared[3]; // size: 0x24, address: 0x4E0040 +class NPCSndTrax g_sndTrax_TikiThunder[2]; // size: 0x18, address: 0x4E0070 +class NPCSndTrax g_sndTrax_Duplotron[3]; // size: 0x24, address: 0x4E0090 +class NPCSndTrax g_sndTrax_Robot[2]; // size: 0x18, address: 0x4E00C0 +class NPCSndTrax g_sndTrax_Fodder[3]; // size: 0x24, address: 0x4E00E0 +class NPCSndTrax g_sndTrax_FodBomb[6]; // size: 0x48, address: 0x4E0110 +class NPCSndTrax g_sndTrax_FodBzzt[3]; // size: 0x24, address: 0x4E0160 +class NPCSndTrax g_sndTrax_Chomper[4]; // size: 0x30, address: 0x4E0190 +class NPCSndTrax g_sndTrax_Hammer[3]; // size: 0x24, address: 0x4E01C0 +class NPCSndTrax g_sndTrax_TarTar[4]; // size: 0x30, address: 0x4E01F0 +class NPCSndTrax g_sndTrax_Glove[2]; // size: 0x18, address: 0x4E0220 +class NPCSndTrax g_sndTrax_Monsoon[3]; // size: 0x24, address: 0x4E0240 +class NPCSndTrax g_sndTrax_Sleepy[3]; // size: 0x24, address: 0x4E0270 +class NPCSndTrax g_sndTrax_Chuck[5]; // size: 0x3C, address: 0x4E02A0 +class NPCSndTrax g_sndTrax_ArfArf[3]; // size: 0x24, address: 0x4E02E0 +class NPCSndTrax g_sndTrax_ArfDog[4]; // size: 0x30, address: 0x4E0310 +class NPCSndTrax g_sndTrax_Tubelet[5]; // size: 0x3C, address: 0x4E0340 +class NPCSndTrax g_sndTrax_Slick[5]; // size: 0x3C, address: 0x4E0380 +class NPCSndTrax g_sndTrax_Prawn[1]; // size: 0xC, address: 0x0 +class NPCSndTrax g_sndTrax_KingJelly[1]; // size: 0xC, address: 0x5CF9F8 +class NPCSndTrax g_sndTrax_Dutchman[1]; // size: 0xC, address: 0x5CFA08 +class NPCSndTrax g_sndTrax_BossSandy[1]; // size: 0xC, address: 0x5CFA18 +class NPCSndTrax g_sndTrax_BossPat[1]; // size: 0xC, address: 0x0 +class NPCSndTrax g_sndTrax_BossSB[1]; // size: 0xC, address: 0x0 +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class NPCSndProp { + // total size: 0xC +public: + enum en_NPC_SOUND sndtype; // offset 0x0, size 0x4 + signed int flg_snd; // offset 0x4, size 0x4 + float tym_delayNext; // offset 0x8, size 0x4 +}; + diff --git a/dwarf/SB/Game/zNPCSndTable.cpp b/dwarf/SB/Game/zNPCSndTable.cpp new file mode 100644 index 000000000..c3502a282 --- /dev/null +++ b/dwarf/SB/Game/zNPCSndTable.cpp @@ -0,0 +1,214 @@ +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static float g_tmrz_sndplay[26]; // size: 0x68, address: 0x5CF8B0 +static unsigned int g_hash_sndgroup[26]; // size: 0x68, address: 0x5CF920 +static char * g_strz_sndgroup[26]; // size: 0x68, address: 0x4DFBB0 +class NPCSndTrax g_sndTrax_Universal[]; // size: 0x0, address: 0x5CF988 +class NPCSndTrax g_sndTrax_General[]; // size: 0x0, address: 0x5CF998 +class NPCSndProp g_sndProps[]; // size: 0x0, address: 0x4DFCA0 +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class NPCSndProp { + // total size: 0xC +public: + enum en_NPC_SOUND sndtype; // offset 0x0, size 0x4 + signed int flg_snd; // offset 0x4, size 0x4 + float tym_delayNext; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310330 -> 0x00310594 +*/ +// Range: 0x310330 -> 0x310594 +unsigned int NPCS_SndPickSimilar(enum en_NPC_SOUND sndtype /* r2 */, class NPCSndTrax * cust /* r2 */, class NPCSndTrax * share /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310330 -> 0x310594 + unsigned int aid_choice; // r2 + class NPCSndTrax * trax; // r17 + signed int i; // r15 + signed int ingroup; // r14 + signed int list[32]; // r29+0xB0 + float wts[32]; // r29+0x30 + signed int cnt; // r16 + float use_wt; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003105A0 -> 0x00310640 +*/ +// Range: 0x3105A0 -> 0x310640 +enum en_NPC_SOUND NPCS_SndTypeFromHash(unsigned int aid_snd /* r2 */, class NPCSndTrax * cust /* r2 */, class NPCSndTrax * share /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3105A0 -> 0x310640 + enum en_NPC_SOUND da_type; // r2 + class NPCSndTrax * trax; // r10 + signed int i; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310640 -> 0x00310678 +*/ +// Range: 0x310640 -> 0x310678 +class NPCSndProp * NPCS_SndFindProps(enum en_NPC_SOUND sndtype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310640 -> 0x310678 + class NPCSndProp * sprop; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310680 -> 0x003106FC +*/ +// Range: 0x310680 -> 0x3106FC +void NPCS_SndTablePrepare(class NPCSndTrax * trax /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310680 -> 0x3106FC + unsigned int hash; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310700 -> 0x00310760 +*/ +// Range: 0x310700 -> 0x310760 +signed int NPCS_SndOkToPlay(enum en_NPC_SOUND sndtype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310700 -> 0x310760 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310760 -> 0x003107E0 +*/ +// Range: 0x310760 -> 0x3107E0 +void NPCS_SndTypePlayed(enum en_NPC_SOUND sndtype /* r2 */, float delayNext /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310760 -> 0x3107E0 + float tym; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003107E0 -> 0x00310844 +*/ +// Range: 0x3107E0 -> 0x310844 +void NPCS_SndTimersReset() { + // Blocks + /* anonymous block */ { + // Range: 0x3107E0 -> 0x310844 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00310850 -> 0x0031089C +*/ +// Range: 0x310850 -> 0x31089C +void NPCS_SndTimersUpdate(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x310850 -> 0x31089C + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003108A0 -> 0x003108A8 +*/ +// Range: 0x3108A0 -> 0x3108A8 +void NPCS_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x3108A0 -> 0x3108A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSndTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003108B0 -> 0x00310910 +*/ +// Range: 0x3108B0 -> 0x310910 +void NPCS_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x3108B0 -> 0x310910 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCSpawner.cpp b/dwarf/SB/Game/zNPCSpawner.cpp new file mode 100644 index 000000000..371c7ea7c --- /dev/null +++ b/dwarf/SB/Game/zNPCSpawner.cpp @@ -0,0 +1,3489 @@ +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class SMDepot g_smdepot; // size: 0x10, address: 0x5D4C00 +static signed int g_drawSpawnBounds; // size: 0x4, address: 0x51006C +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +enum en_SM_WAVE_STAT { + SM_STAT_BEGIN = 0, + SM_STAT_INPROG = 1, + SM_STAT_ABORT = 2, + SM_STAT_MARKTIME = 3, + SM_STAT_DONE = 4, + SM_STAT_NOMORE = 5, + SM_STAT_FORCE = 2147483647, +}; +class zNPCSpawner : public RyzMemData { + // total size: 0x1C4 +public: + signed int flg_spawner; // offset 0x0, size 0x4 + class zNPCCommon * npc_owner; // offset 0x4, size 0x4 + float tym_delay; // offset 0x8, size 0x4 + signed int max_spawn; // offset 0xC, size 0x4 + enum en_SM_WAVE_MODE wavemode; // offset 0x10, size 0x4 + enum en_SM_WAVE_STAT wavestat; // offset 0x14, size 0x4 + float tmr_wave; // offset 0x18, size 0x4 + signed int cnt_spawn; // offset 0x1C, size 0x4 + class SMSPStatus sppool[16]; // offset 0x20, size 0xC0 + class SMNPCStatus npcpool[16]; // offset 0xE0, size 0xC0 + class st_XORDEREDARRAY pendlist; // offset 0x1A0, size 0x10 + class st_XORDEREDARRAY actvlist; // offset 0x1B0, size 0x10 + signed int cnt_cleanup; // offset 0x1C0, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class SMDepot { + // total size: 0x10 +public: + class st_XORDEREDARRAY spawners; // offset 0x0, size 0x10 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class SMNPCStatus { + // total size: 0xC +public: + class zNPCCommon * npc; // offset 0x0, size 0x4 + enum en_SM_NPC_STATUS status; // offset 0x4, size 0x4 + class zMovePoint * sp_prefer; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class SMSPStatus { + // total size: 0xC +public: + class zMovePoint * sp; // offset 0x0, size 0x4 + signed int flg_stat; // offset 0x4, size 0x4 + class zNPCCommon * npc_prefer; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +enum en_SM_NPC_STATUS { + SM_NPC_DEAD = 0, + SM_NPC_READY = 1, + SM_NPC_PENDING = 2, + SM_NPC_SPAWNED = 3, + SM_NPC_ACTIVE = 4, + SM_NPC_NOMORE = 5, + SM_NPC_FORCE = 2147483647, +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RyzMemData { + // total size: 0x1 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum en_SM_NOTICES { + SM_NOTE_NPCDIED = 0, + SM_NOTE_NPCSTANDBY = 1, + SM_NOTE_NPCALIVE = 2, + SM_NOTE_DUPPAUSE = 3, + SM_NOTE_DUPRESUME = 4, + SM_NOTE_DUPSETDELAY = 5, + SM_NOTE_DUPDEAD = 6, + SM_NOTE_KILLKIDS = 7, + SM_NOTE_NOMORE = 8, + SM_NOTE_FORCE = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum en_SM_WAVE_MODE { + SM_WAVE_CONTINUOUS = 0, + SM_WAVE_DISCREET = 1, + SM_WAVE_NOMORE = 2, + SM_WAVE_FORCE = 2147483647, +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003165E0 -> 0x00316700 +*/ +// Range: 0x3165E0 -> 0x316700 +void ChildCleanup(class zNPCSpawner * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3165E0 -> 0x316700 + signed int i; // r18 + class SMNPCStatus * npc_stat; // r8 + signed int cnt_know; // r7 + signed int cnt_dead; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316700 -> 0x0031680C +*/ +// Range: 0x316700 -> 0x31680C +signed int SpawnBeastie(class zNPCSpawner * this /* r19 */, class SMNPCStatus * npcstat /* r18 */, class SMSPStatus * spstat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316700 -> 0x31680C + class zNPCCommon * npc; // r17 + class zMovePoint * sp; // r16 + class xVec3 pos_sp; // r29+0x50 + class zMovePoint * nav_dest; // r29+0x5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316810 -> 0x00316850 +*/ +// Range: 0x316810 -> 0x316850 +class SMNPCStatus * StatForNPC(class zNPCSpawner * this /* r2 */, class zNPCCommon * npc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316810 -> 0x316850 + class SMNPCStatus * tmp_stat; // r7 + class SMNPCStatus * npc_stat; // r2 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316850 -> 0x00316A34 +*/ +// Range: 0x316850 -> 0x316A34 +signed int IsNearbyMover(class xBound * bnd /* r21 */, signed int usecyl /* r22 */, class xCollis * caller_colrec /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316850 -> 0x316A34 + signed int hitthing; // r20 + class zNPCCommon * npc; // r19 + signed int i; // r18 + class xCollis local_colrec; // r29+0xA0 + class xCollis * colrec; // r17 + class xVec3 delt; // r29+0xF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316A40 -> 0x00316C04 +*/ +// Range: 0x316A40 -> 0x316C04 +signed int IsSPLZClear(class zNPCSpawner * this /* r19 */, class zMovePoint * sp /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316A40 -> 0x316C04 + class xVec3 pos_sp; // r29+0xB0 + signed int rc; // r2 + class xBound bnd; // r29+0x50 + class xVec3 delt; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316C10 -> 0x00316DD4 +*/ +// Range: 0x316C10 -> 0x316DD4 +class SMSPStatus * SelectSP(class zNPCSpawner * this /* r16 */, class SMNPCStatus * npcstat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316C10 -> 0x316DD4 + signed int rc; // r2 + class SMSPStatus * splist[16]; // r29+0x70 + signed int cnt; // r21 + signed int i; // r20 + class SMSPStatus * tmp_stat; // r19 + signed int rc; // r2 + class SMSPStatus * sp_stat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316DE0 -> 0x00316E60 +*/ +// Range: 0x316DE0 -> 0x316E60 +unsigned char Receivable(class zNPCSpawner * this /* r2 */, enum en_SM_NOTICES note /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316DE0 -> 0x316E60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316E60 -> 0x00317084 +*/ +// Range: 0x316E60 -> 0x317084 +void Notify(class zNPCSpawner * this /* r16 */, enum en_SM_NOTICES note /* r2 */, void * data /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316E60 -> 0x317084 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317090 -> 0x00317578 +*/ +// Range: 0x317090 -> 0x317578 +void UpdateContinuous(class zNPCSpawner * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317090 -> 0x317578 + class SMSPStatus * spstat; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317580 -> 0x003179A8 +*/ +// Range: 0x317580 -> 0x3179A8 +void UpdateDiscreet(class zNPCSpawner * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317580 -> 0x3179A8 + class SMSPStatus * spstat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003179B0 -> 0x00317A74 +*/ +// Range: 0x3179B0 -> 0x317A74 +void Timestep(class zNPCSpawner * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3179B0 -> 0x317A74 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317A80 -> 0x00317B44 +*/ +// Range: 0x317A80 -> 0x317B44 +void MapPreferred(class zNPCSpawner * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317A80 -> 0x317B44 + signed int i; // r18 + class SMNPCStatus * npc_stat; // r17 + class zMovePoint * sp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317B50 -> 0x00317C38 +*/ +// Range: 0x317B50 -> 0x317C38 +void Reset(class zNPCSpawner * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317B50 -> 0x317C38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317C40 -> 0x00317CB8 +*/ +// Range: 0x317C40 -> 0x317CB8 +signed int AddSpawnNPC(class zNPCSpawner * this /* r7 */, class zNPCCommon * npc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317C40 -> 0x317CB8 + signed int ack; // r16 + signed int i; // r6 + class SMNPCStatus * npc_stat; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317CC0 -> 0x00317D00 +*/ +// Range: 0x317CC0 -> 0x317D00 +signed int AddSpawnPoint(class zNPCSpawner * this /* r2 */, class zMovePoint * sp /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317CC0 -> 0x317D00 + class SMSPStatus * sp_stat; // r7 + signed int ack; // r2 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317D00 -> 0x00317D10 +*/ +// Range: 0x317D00 -> 0x317D10 +void SetWaveMode(class zNPCSpawner * this /* r2 */, enum en_SM_WAVE_MODE mode /* r2 */, float delay /* r29 */, signed int lifemax /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317D00 -> 0x317D10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317D10 -> 0x00317D68 +*/ +// Range: 0x317D10 -> 0x317D68 +void Subscribe(class zNPCSpawner * this /* r16 */, class zNPCCommon * owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x317D10 -> 0x317D68 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317D70 -> 0x00317DD0 +*/ +// Range: 0x317D70 -> 0x317DD0 +class zNPCSpawner * zNPCSpawner_GetInstance() { + // Blocks + /* anonymous block */ { + // Range: 0x317D70 -> 0x317DD0 + class zNPCSpawner * sm; // r2 + class zNPCSpawner * sm_tmp; // r8 + class SMDepot * depot; // r3 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317DD0 -> 0x00317E54 +*/ +// Range: 0x317DD0 -> 0x317E54 +void zNPCSpawner_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x317DD0 -> 0x317E54 + class SMDepot * depot; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317E60 -> 0x00317ED4 +*/ +// Range: 0x317E60 -> 0x317ED4 +void zNPCSpawner_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x317E60 -> 0x317ED4 + class SMDepot * depot; // r17 + class zNPCSpawner * sm; // r2 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317EE0 -> 0x00317EE8 +*/ +// Range: 0x317EE0 -> 0x317EE8 +void zNPCSpawner_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x317EE0 -> 0x317EE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSpawner.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00317EF0 -> 0x00317EF8 +*/ +// Range: 0x317EF0 -> 0x317EF8 +void zNPCSpawner_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x317EF0 -> 0x317EF8 + } +} + diff --git a/dwarf/SB/Game/zNPCSupplement.cpp b/dwarf/SB/Game/zNPCSupplement.cpp new file mode 100644 index 000000000..daa9c2e2f --- /dev/null +++ b/dwarf/SB/Game/zNPCSupplement.cpp @@ -0,0 +1,4880 @@ +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static signed int g_doNPARCull; // size: 0x4, address: 0x50F160 +static class NPARMgmt g_npar_mgmt[12]; // size: 0x180, address: 0x5E6640 +static class NPARInfo g_npar_info[12]; // size: 0xC0, address: 0x4E4390 +static signed int g_gameExtrasFlags; // size: 0x4, address: 0x5102B4 +static signed int g_isSpecialDay; // size: 0x4, address: 0x5102B8 +static signed int g_mon; // size: 0x4, address: 0x5102BC +static signed int g_day; // size: 0x4, address: 0x5102C0 +static class NPARParmOilBub g_parm_oilbub[4]; // size: 0x70, address: 0x506E20 +static class NPARParmTubeSpiral g_parm_tubespiral[4]; // size: 0x30, address: 0x506E90 +static class NPARParmTubeConfetti g_parm_tubeconfetti[2]; // size: 0x50, address: 0x506FB0 +static class NPARParmGloveDust g_parm_glovedust[1]; // size: 0x1C, address: 0x507000 +static class NPARParmMonsoonRain g_parm_monsoonrain; // size: 0x1C, address: 0x507020 +static class NPARParmSleepyZeez g_parm_sleepyzeez[1]; // size: 0x28, address: 0x507040 +static class NPARParmChuckSplash g_parm_chucksplash[5]; // size: 0xA0, address: 0x507070 +static class NPARParmVisSplash g_parm_vissplash[1]; // size: 0x20, address: 0x507110 +static class NPARParmTarTarGunk g_parm_tartargunk[6]; // size: 0xF0, address: 0x507130 +static class NPARParmDogBreath g_parm_dogbreath[3]; // size: 0x60, address: 0x507220 +static class NPARParmFahrwerkz g_parm_fahrwerkz[4]; // size: 0xA0, address: 0x507290 +static class xShadowCache g_shadCaches[16]; // size: 0x30700, address: 0x5E67C0 +static signed char g_shadCachesInUseFlags[16]; // size: 0x10, address: 0x616EC0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int _rpPTankAtomicDataOffset; // size: 0x4, address: 0x50F128 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +float gShadowObjectRadius; // size: 0x4, address: 0x50FB30 +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class NPARInfo { + // total size: 0x10 +public: + void (* fun_update)(class NPARMgmt *, float); // offset 0x0, size 0x4 + signed int num_maxParticles; // offset 0x4, size 0x4 + char * nam_texture; // offset 0x8, size 0x4 + signed int flg_npar; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class NPARMgmt { + // total size: 0x20 +public: + enum en_nparptyp typ_npar; // offset 0x0, size 0x4 + signed int flg_npar; // offset 0x4, size 0x4 + class NPARData * par_buf; // offset 0x8, size 0x4 + signed int cnt_active; // offset 0xC, size 0x4 + signed int num_max; // offset 0x10, size 0x4 + class RwTexture * txtr; // offset 0x14, size 0x4 + class NPARXtraData * xtra_data; // offset 0x18, size 0x4 + void * * user_data; // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class NPARParmMonsoonRain { + // total size: 0x1C +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class NPARParmTubeSpiral { + // total size: 0xC +public: + class RwRGBA colr_base; // offset 0x0, size 0x4 + float siz_base[2]; // offset 0x4, size 0x8 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class NPARData { + // total size: 0x50 +public: + class xVec3 pos; // offset 0x0, size 0xC + float xy_size[2]; // offset 0xC, size 0x8 + float uv_tl[2]; // offset 0x14, size 0x8 + float uv_br[2]; // offset 0x1C, size 0x8 + class RwRGBA color; // offset 0x24, size 0x4 + float tmr_remain; // offset 0x28, size 0x4 + float tym_exist; // offset 0x2C, size 0x4 + float fac_abuse; // offset 0x30, size 0x4 + class xVec3 vel; // offset 0x34, size 0xC + signed int flg_popts : 24; // offset 0x40, size 0x4 + signed int nparmode : 8; // offset 0x40, size 0x4 + float unused[3]; // offset 0x44, size 0xC +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +class ptank_pool__pos_color_size_uv2 : public ptank_pool { + // total size: 0x38 +public: + class xVec3 * pos; // offset 0x24, size 0x4 + class iColor_tag * color; // offset 0x28, size 0x4 + class xVec2 * size; // offset 0x2C, size 0x4 + class xVec2 * uv; // offset 0x30, size 0x4 + signed int stride; // offset 0x34, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class anim_coll_data { + // total size: 0x0 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class ptank_pool { + // total size: 0x24 +public: + class render_state rs; // offset 0x0, size 0x10 + unsigned int used; // offset 0x10, size 0x4 + class RpAtomic * ptank; // offset 0x14, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + } hide; // offset 0x18, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class render_state { + // total size: 0x10 +public: + class RwTexture * texture; // offset 0x0, size 0x4 + unsigned int src_blend; // offset 0x4, size 0x4 + unsigned int dst_blend; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class NPARParmOilBub { + // total size: 0x1C +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + class xVec3 acc_oilBubble; // offset 0x8, size 0xC + float siz_base[2]; // offset 0x14, size 0x8 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class NPARParmSleepyZeez { + // total size: 0x28 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + float uv_scroll[2]; // offset 0x1C, size 0x8 + unsigned char row_uvstart; // offset 0x24, size 0x1 + unsigned char num_uvcell[2]; // offset 0x25, size 0x2 + unsigned char pct_keep; // offset 0x27, size 0x1 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class NPARParmGloveDust { + // total size: 0x1C +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class NPARXtraData { + // total size: 0x1 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class NPARParmTubeConfetti { + // total size: 0x28 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + float uv_scroll[2]; // offset 0x1C, size 0x8 + unsigned char row_uvstart; // offset 0x24, size 0x1 + unsigned char num_uvcell[2]; // offset 0x25, size 0x2 + unsigned char pct_keep; // offset 0x27, size 0x1 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class NPARParmChuckSplash { + // total size: 0x20 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + signed int pct_keep; // offset 0x1C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +enum en_npclyt { + NPC_LYT_PLACEHOLDER = 0, + NPC_LYT_JELLYFISH = 1, + NPC_LYT_JELLYFISHBLUE = 2, + NPC_LYT_CATTLEPROD = 3, + NPC_LYT_TIKITHUNDER = 4, + NPC_LYT_CLOUDWARN = 5, + NPC_LYT_CLOUDZAP = 6, + NPC_LYT_SLEEPYARC = 7, + NPC_LYT_NOMORE = 8, + NPC_LYT_FORCE = 2147483647, +}; +class NPARParmFahrwerkz { + // total size: 0x28 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + float uv_scroll[2]; // offset 0x1C, size 0x8 + unsigned char row_uvstart; // offset 0x24, size 0x1 + unsigned char num_uvcell[2]; // offset 0x25, size 0x2 + unsigned char pct_keep; // offset 0x27, size 0x1 +}; +class NPARParmVisSplash { + // total size: 0x20 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + signed int pct_keep; // offset 0x1C, size 0x4 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +enum en_nparptyp { + NPAR_TYP_UNKNOWN = 0, + NPAR_TYP_OILBUB = 1, + NPAR_TYP_TUBESPIRAL = 2, + NPAR_TYP_TUBECONFETTI = 3, + NPAR_TYP_GLOVEDUST = 4, + NPAR_TYP_MONSOONRAIN = 5, + NPAR_TYP_SLEEPYZEEZ = 6, + NPAR_TYP_CHUCKSPLASH = 7, + NPAR_TYP_TARTARGUNK = 8, + NPAR_TYP_DOGBREATH = 9, + NPAR_TYP_VISSPLASH = 10, + NPAR_TYP_FIREWORKS = 11, + NPAR_TYP_NOMORE = 12, + NPAR_TYP_FORCE = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class NPARParmTarTarGunk { + // total size: 0x28 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + float uv_scroll[2]; // offset 0x1C, size 0x8 + unsigned char row_uvstart; // offset 0x24, size 0x1 + unsigned char num_uvcell[2]; // offset 0x25, size 0x2 + unsigned char pct_keep; // offset 0x27, size 0x1 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum en_npcburst { + NPC_BURST_OILBUB = 0, + NPC_BURST_TUBEBONK = 1, + NPC_BURST_NOMORE = 2, + NPC_BURST_FORCE = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class StreakInfo { + // total size: 0x1C +public: + float freq; // offset 0x0, size 0x4 + float alf_fade; // offset 0x4, size 0x4 + float alf_start; // offset 0x8, size 0x4 + unsigned int idx_useTxtr; // offset 0xC, size 0x4 + class iColor_tag rgba_left; // offset 0x10, size 0x4 + class iColor_tag rgba_right; // offset 0x14, size 0x4 + signed int taper; // offset 0x18, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class NPARParmDogBreath { + // total size: 0x20 +public: + float tym_lifespan; // offset 0x0, size 0x4 + class RwRGBA colr_base; // offset 0x4, size 0x4 + float siz_base[2]; // offset 0x8, size 0x8 + class xVec3 acc_base; // offset 0x10, size 0xC + unsigned char pct_keep; // offset 0x1C, size 0x1 + unsigned char unused[3]; // offset 0x1D, size 0x3 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +enum en_npcstreak { + NPC_STRK_TARTARBLOB = 0, + NPC_STRK_OILBUBBLE = 1, + NPC_STRK_HAMMERSMASH_VERT = 2, + NPC_STRK_HAMMERSMASH_HORZ = 3, + NPC_STRK_ARFMELEE = 4, + NPC_STRK_TOSSEDROBOT = 5, + NPC_STRK_TOSSEDJELLY = 6, + NPC_STRK_TOSSEDJELLYBLUE = 7, + NPC_STRK_NOMORE = 8, + NPC_STRK_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpPTankLockStruct { + // total size: 0x8 +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 +}; +enum en_nparmode { + NPAR_MODE_STD = 0, + NPAR_MODE_ALT_A = 1, + NPAR_MODE_ALT_B = 2, + NPAR_MODE_ALT_C = 3, + NPAR_MODE_ALT_D = 4, + NPAR_MODE_ALT_E = 5, + NPAR_MODE_SPIRALNORM = 1, + NPAR_MODE_SPIRALCALT = 2, + NPAR_MODE_SPIRALCINE = 3, + NPAR_MODE_OIL_TRAIL = 1, + NPAR_MODE_OIL_VAPOR = 2, + NPAR_MODE_OIL_SPLASH = 3, + NPAR_MODE_FETTI_SPARKLIES = 1, + NPAR_MODE_DRIP = 1, + NPAR_MODE_DROP = 2, + NPAR_MODE_SPLASH = 3, + NPAR_MODE_TRAIL = 4, + NPAR_MODE_TTNOZZLE = 1, + NPAR_MODE_TTTRAIL = 2, + NPAR_MODE_TTSPLASH = 3, + NPAR_MODE_TTSPOIL = 4, + NPAR_MODE_TTSMOKE = 5, + NPAR_MODE_DOGGYWISP = 1, + NPAR_MODE_DOGGYATTACK = 2, + NPAR_MODE_FWEXHAUST = 1, + NPAR_MODE_FWSTARBURST = 2, + NPAR_MODE_FWGLITTER = 3, + NPAR_MODE_NOMORE = 4, +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3AA0 -> 0x003B3AE4 +*/ +// Range: 0x3B3AA0 -> 0x3B3AE4 +void NPCC_ShadowCacheRelease(class xShadowCache * shadcache /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3AA0 -> 0x3B3AE4 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3AF0 -> 0x003B3B68 +*/ +// Range: 0x3B3AF0 -> 0x3B3B68 +class xShadowCache * NPCC_ShadowCacheReserve() { + // Blocks + /* anonymous block */ { + // Range: 0x3B3AF0 -> 0x3B3B68 + class xShadowCache * da_cache; // r2 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3B70 -> 0x003B3C48 +*/ +// Range: 0x3B3B70 -> 0x3B3C48 +void NPAR_EmitFWExhaust(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3B70 -> 0x3B3C48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3C50 -> 0x003B3D28 +*/ +// Range: 0x3B3C50 -> 0x3B3D28 +void NPAR_EmitVSSpray(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3C50 -> 0x3B3D28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3D30 -> 0x003B3E08 +*/ +// Range: 0x3B3D30 -> 0x3B3E08 +void NPAR_EmitDoggyAttack(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3D30 -> 0x3B3E08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3E10 -> 0x003B3EE8 +*/ +// Range: 0x3B3E10 -> 0x3B3EE8 +void NPAR_EmitDoggyWisps(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3E10 -> 0x3B3EE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3EF0 -> 0x003B3FC8 +*/ +// Range: 0x3B3EF0 -> 0x3B3FC8 +void NPAR_EmitTarTarSmoke(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3EF0 -> 0x3B3FC8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B3FD0 -> 0x003B40A8 +*/ +// Range: 0x3B3FD0 -> 0x3B40A8 +void NPAR_EmitTarTarSpoil(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B3FD0 -> 0x3B40A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B40B0 -> 0x003B4188 +*/ +// Range: 0x3B40B0 -> 0x3B4188 +void NPAR_EmitTarTarSplash(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B40B0 -> 0x3B4188 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4190 -> 0x003B4268 +*/ +// Range: 0x3B4190 -> 0x3B4268 +void NPAR_EmitTarTarTrail(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4190 -> 0x3B4268 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4270 -> 0x003B4348 +*/ +// Range: 0x3B4270 -> 0x3B4348 +void NPAR_EmitTarTarNozzle(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4270 -> 0x3B4348 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4350 -> 0x003B441C +*/ +// Range: 0x3B4350 -> 0x3B441C +void NPAR_EmitH2OTrail(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4350 -> 0x3B441C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4420 -> 0x003B44F8 +*/ +// Range: 0x3B4420 -> 0x3B44F8 +void NPAR_EmitH2OSpray(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4420 -> 0x3B44F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4500 -> 0x003B45D8 +*/ +// Range: 0x3B4500 -> 0x3B45D8 +void NPAR_EmitH2ODrops(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4500 -> 0x3B45D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B45E0 -> 0x003B46B8 +*/ +// Range: 0x3B45E0 -> 0x3B46B8 +void NPAR_EmitH2ODrips(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B45E0 -> 0x3B46B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B46C0 -> 0x003B4798 +*/ +// Range: 0x3B46C0 -> 0x3B4798 +void NPAR_EmitSleepyZeez(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B46C0 -> 0x3B4798 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B47A0 -> 0x003B4878 +*/ +// Range: 0x3B47A0 -> 0x3B4878 +void NPAR_EmitGloveDust(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B47A0 -> 0x3B4878 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4880 -> 0x003B4958 +*/ +// Range: 0x3B4880 -> 0x3B4958 +void NPAR_EmitTubeSparklies(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4880 -> 0x3B4958 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4960 -> 0x003B4A38 +*/ +// Range: 0x3B4960 -> 0x3B4A38 +void NPAR_EmitTubeConfetti(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4960 -> 0x3B4A38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4A40 -> 0x003B4BCC +*/ +// Range: 0x3B4A40 -> 0x3B4BCC +void NPAR_EmitTubeSpiralCin(class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */, float lifespan /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4A40 -> 0x3B4BCC + enum en_nparmode pmod; // r18 + class NPARParmTubeSpiral * npparm; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4BD0 -> 0x003B4D5C +*/ +// Range: 0x3B4BD0 -> 0x3B4D5C +void NPAR_EmitTubeSpiral(class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */, float lifespan /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4BD0 -> 0x3B4D5C + enum en_nparmode pmod; // r18 + class NPARParmTubeSpiral * npparm; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4D60 -> 0x003B4E38 +*/ +// Range: 0x3B4D60 -> 0x3B4E38 +void NPAR_EmitOilSplash(class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4D60 -> 0x3B4E38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4E40 -> 0x003B4F0C +*/ +// Range: 0x3B4E40 -> 0x3B4F0C +void NPAR_EmitOilVapors(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4E40 -> 0x3B4F0C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4F10 -> 0x003B4FDC +*/ +// Range: 0x3B4F10 -> 0x3B4FDC +void NPAR_EmitOilTrailz(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4F10 -> 0x3B4FDC + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B4FE0 -> 0x003B50AC +*/ +// Range: 0x3B4FE0 -> 0x3B50AC +void NPAR_EmitOilShieldPop(class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B4FE0 -> 0x3B50AC + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B50B0 -> 0x003B5A8C +*/ +// Range: 0x3B50B0 -> 0x3B5A8C +void NPAR_Upd_Fireworks(class NPARMgmt * mgmt /* r20 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B50B0 -> 0x3B5A8C + signed int i; // r19 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x70 + class NPARData * npdata; // r18 + class NPARParmFahrwerkz * npparm; // r17 + float tym_life; // r3 + float rat_rev; // r21 + float rat; // r22 + float beans; // r20 + float fac_keep; // r29+0xF0 + float arch; // r1 + float dim; // r29+0xF0 + float uv_du; // r21 + float uv_dv; // r20 + signed int r; // r16 + signed int c; // r2 + signed int num_cells; // r2 + signed int cell; // r2 + signed int col; // r4 + signed int row; // r3 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B5A90 -> 0x003B5D74 +*/ +// Range: 0x3B5A90 -> 0x3B5D74 +void ConfigPar(class NPARParmFahrwerkz * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B5A90 -> 0x3B5D74 + float fac_rand; // r4 + float samecalc; // r29+0x60 + float du; // r3 + float dv; // r2 + float justTheRand; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B5D80 -> 0x003B6600 +*/ +// Range: 0x3B5D80 -> 0x3B6600 +void NPAR_Upd_DogBreath(class NPARMgmt * mgmt /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B5D80 -> 0x3B6600 + signed int i; // r17 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x50 + class xVec3 pos_plyr; // r29+0xE0 + class NPARData * npdata; // r16 + class NPARParmDogBreath * npparm; // r2 + float tym_life; // r3 + float rat_rev; // r2 + float rat; // r3 + float beans; // r2 + float fac_keep; // r1 + float arch; // r29+0xF0 + float dim; // r1 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + float ds2_plyr; // r1 + float seg_allowCollide[2]; // @ 0x00507280 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B6600 -> 0x003B66F4 +*/ +// Range: 0x3B6600 -> 0x3B66F4 +void ConfigPar(class NPARParmDogBreath * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B6600 -> 0x3B66F4 + float fac_rand; // r1 + float samecalc; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B6700 -> 0x003B70DC +*/ +// Range: 0x3B6700 -> 0x3B70DC +void NPAR_Upd_TarTarGunk(class NPARMgmt * mgmt /* r20 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B6700 -> 0x3B70DC + signed int i; // r19 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x70 + class NPARData * npdata; // r18 + class NPARParmTarTarGunk * npparm; // r17 + float tym_life; // r3 + float rat_rev; // r21 + float rat; // r22 + float beans; // r20 + float fac_keep; // r29+0xF0 + float arch; // r1 + float dim; // r29+0xF0 + float uv_du; // r21 + float uv_dv; // r20 + signed int r; // r16 + signed int c; // r2 + signed int num_cells; // r2 + signed int cell; // r2 + signed int col; // r4 + signed int row; // r3 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B70E0 -> 0x003B73C4 +*/ +// Range: 0x3B70E0 -> 0x3B73C4 +void ConfigPar(class NPARParmTarTarGunk * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B70E0 -> 0x3B73C4 + float fac_rand; // r4 + float samecalc; // r29+0x60 + float du; // r3 + float dv; // r2 + float justTheRand; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B73D0 -> 0x003B7B88 +*/ +// Range: 0x3B73D0 -> 0x3B7B88 +void NPAR_Upd_VisSplash(class NPARMgmt * mgmt /* r19 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B73D0 -> 0x3B7B88 + signed int i; // r18 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x60 + class NPARData * npdata; // r17 + class NPARParmVisSplash * npparm; // r16 + float tym_life; // r4 + float rat_rev; // r22 + float rat; // r21 + float beans; // r20 + float fac_keep; // r3 + float dim; // r29+0xE0 + float arch; // r1 + float dim; // r29+0xE0 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B7B90 -> 0x003B7CAC +*/ +// Range: 0x3B7B90 -> 0x3B7CAC +void ConfigPar(class NPARParmVisSplash * this /* r20 */, class NPARData * par /* r19 */, enum en_nparmode pmod /* r18 */, class xVec3 * pos /* r17 */, class xVec3 * vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B7B90 -> 0x3B7CAC + float fac_rand; // r1 + float samecalc; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B7CB0 -> 0x003B8470 +*/ +// Range: 0x3B7CB0 -> 0x3B8470 +void NPAR_Upd_ChuckSplash(class NPARMgmt * mgmt /* r19 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B7CB0 -> 0x3B8470 + signed int i; // r18 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x60 + class NPARData * npdata; // r17 + class NPARParmChuckSplash * npparm; // r16 + float tym_life; // r4 + float rat_rev; // r22 + float rat; // r21 + float beans; // r20 + float fac_keep; // r3 + float dim; // r29+0xE0 + float arch; // r1 + float dim; // r29+0xE0 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B8470 -> 0x003B868C +*/ +// Range: 0x3B8470 -> 0x3B868C +void ConfigPar(class NPARParmChuckSplash * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B8470 -> 0x3B868C + float fac_rand; // r2 + float samecalc; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B8690 -> 0x003B906C +*/ +// Range: 0x3B8690 -> 0x3B906C +void NPAR_Upd_SleepyZeez(class NPARMgmt * mgmt /* r20 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B8690 -> 0x3B906C + signed int i; // r19 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x70 + class NPARData * npdata; // r18 + class NPARParmSleepyZeez * npparm; // r17 + float tym_life; // r3 + float rat_rev; // r21 + float rat; // r22 + float beans; // r20 + float fac_keep; // r29+0xF0 + float arch; // r1 + float dim; // r29+0xF0 + float uv_du; // r21 + float uv_dv; // r20 + signed int r; // r16 + signed int c; // r2 + signed int num_cells; // r2 + signed int cell; // r2 + signed int col; // r4 + signed int row; // r3 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B9070 -> 0x003B9354 +*/ +// Range: 0x3B9070 -> 0x3B9354 +void ConfigPar(class NPARParmSleepyZeez * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B9070 -> 0x3B9354 + float fac_rand; // r4 + float samecalc; // r29+0x60 + float du; // r3 + float dv; // r2 + float justTheRand; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B9360 -> 0x003B9904 +*/ +// Range: 0x3B9360 -> 0x3B9904 +void NPAR_Upd_MonsoonRain(class NPARMgmt * mgmt /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B9360 -> 0x3B9904 + signed int i; // r18 + class NPARInfo * info; // r2 + class NPARParmMonsoonRain * npparm; // r17 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x60 + class NPARData * npdata; // r16 + float tym_life; // r6 + float rat_rev; // r6 + float rat; // r29+0xC0 + float arch; // r29+0xC0 + float dim; // r2 + float subrat; // r6 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B9910 -> 0x003B9EB4 +*/ +// Range: 0x3B9910 -> 0x3B9EB4 +void NPAR_Upd_GloveDust(class NPARMgmt * mgmt /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B9910 -> 0x3B9EB4 + signed int i; // r18 + class NPARInfo * info; // r2 + class NPARParmGloveDust * npparm; // r17 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x60 + class NPARData * npdata; // r16 + float tym_life; // r6 + float rat_rev; // r6 + float rat; // r29+0xC0 + float arch; // r29+0xC0 + float dim; // r2 + float subrat; // r6 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B9EC0 -> 0x003B9FB4 +*/ +// Range: 0x3B9EC0 -> 0x3B9FB4 +void ConfigPar(class NPARParmGloveDust * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B9EC0 -> 0x3B9FB4 + float fac_rand; // r1 + float samecalc; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003B9FC0 -> 0x003BA99C +*/ +// Range: 0x3B9FC0 -> 0x3BA99C +void NPAR_Upd_TubeConfetti(class NPARMgmt * mgmt /* r20 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3B9FC0 -> 0x3BA99C + signed int i; // r19 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x70 + class NPARData * npdata; // r18 + class NPARParmTubeConfetti * npparm; // r17 + float tym_life; // r3 + float rat_rev; // r21 + float rat; // r22 + float beans; // r20 + float fac_keep; // r29+0xF0 + float arch; // r1 + float dim; // r29+0xF0 + float uv_du; // r21 + float uv_dv; // r20 + signed int r; // r16 + signed int c; // r2 + signed int num_cells; // r2 + signed int cell; // r2 + signed int col; // r4 + signed int row; // r3 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BA9A0 -> 0x003BAE18 +*/ +// Range: 0x3BA9A0 -> 0x3BAE18 +void ConfigPar(class NPARParmTubeConfetti * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BA9A0 -> 0x3BAE18 + float fac_rand; // r20 + float samecalc; // r29+0x70 + float du; // r3 + float dv; // r2 + float justTheRand; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BAE20 -> 0x003BB580 +*/ +// Range: 0x3BAE20 -> 0x3BB580 +static void NPAR_TubeSpiralMagic(class RwRGBA * color /* r2 */, float pam /* r29+0x80 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BAE20 -> 0x3BB580 + signed int trun; // r3 + class RwRGBA colr_pinkRyanz; // @ 0x00506F28 + class RwRGBA colr_lavender; // @ 0x00506F18 + class RwRGBA colr_blue; // @ 0x00506F08 + class RwRGBA colr_green; // @ 0x00506F00 + class RwRGBA colr_orange; // @ 0x00506EF0 + class RwRGBA colr_red; // @ 0x00506EE8 + class RwRGBA colr_indigo; // @ 0x00506F10 + class RwRGBA colr_julyblue; // @ 0x00506EE0 + class RwRGBA colr_julywhite; // @ 0x00506ED8 + class RwRGBA colr_julyred; // @ 0x00506ED0 + class RwRGBA colr_maroon; // @ 0x00506F58 + class RwRGBA colr_pimp_gold; // @ 0x00506F78 + class RwRGBA colr_kellygreen; // @ 0x00506F20 + class RwRGBA zanyArray[10]; // @ 0x00506F80 + signed char @6434; // @ 0x005102C4 + class RwRGBA colr_cyan; // @ 0x00506F70 + class RwRGBA colr_khaki; // @ 0x00506F68 + class RwRGBA colr_seagreen; // @ 0x00506F60 + class RwRGBA colr_peach; // @ 0x00506F50 + class RwRGBA colr_fuschia; // @ 0x00506F30 + class RwRGBA colr_neon_blue; // @ 0x00506F48 + class RwRGBA colr_neon_green; // @ 0x00506F40 + class RwRGBA colr_yellow; // @ 0x00506EF8 + class RwRGBA colr_neon_red; // @ 0x00506F38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BB580 -> 0x003BBCD8 +*/ +// Range: 0x3BB580 -> 0x3BBCD8 +void NPAR_Upd_TubeSpiral(class NPARMgmt * mgmt /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BB580 -> 0x3BBCD8 + signed int i; // r17 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x50 + class xVec3 pos_plyr; // r29+0xC0 + class NPARData * npdata; // r16 + class NPARParmTubeSpiral * npparm; // r2 + float tym_life; // r6 + float rat_rev; // r1 + float rat; // r29+0xD0 + float arch; // r29+0xD0 + float dim; // r2 + float subrat; // r6 + signed int thisChickIsToast; // r2 + float ds2_plyr; // r1 + class xVec4 * _loc; // r2 + float par_dist; // r1 + float seg_allowCollide[2]; // @ 0x00506EC8 + float useFixedTimestepForSpiral; // @ 0x00506EC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BBCE0 -> 0x003BC340 +*/ +// Range: 0x3BBCE0 -> 0x3BC340 +void NPAR_Upd_OilBubble(class NPARMgmt * mgmt /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BBCE0 -> 0x3BC340 + signed int i; // r17 + class NPARInfo * info; // r2 + class ptank_pool__pos_color_size_uv2 pool; // r29+0x50 + class NPARData * npdata; // r16 + class NPARParmOilBub * npparm; // r10 + float tym_life; // r4 + float rat_rev; // r1 + float rat; // r5 + float arch; // r29+0xD0 + float dim; // r1 + signed int thisChickIsToast; // r2 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC340 -> 0x003BC470 +*/ +// Range: 0x3BC340 -> 0x3BC470 +void ConfigPar(class NPARParmOilBub * this /* r18 */, class NPARData * par /* r17 */, enum en_nparmode pmod /* r16 */, class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC340 -> 0x3BC470 + float fac_rand; // r1 + float samecalc; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC470 -> 0x003BC554 +*/ +// Range: 0x3BC470 -> 0x3BC554 +void Init(class NPARMgmt * this /* r20 */, enum en_nparptyp parType /* r19 */, void * * userData /* r18 */, class NPARXtraData * xtraData /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC470 -> 0x3BC554 + class NPARInfo * info; // r16 + unsigned int amt; // r21 + void * mem; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC560 -> 0x003BC598 +*/ +// Range: 0x3BC560 -> 0x3BC598 +class NPARMgmt * NPAR_FindParty(enum en_nparptyp parType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC560 -> 0x3BC598 + class NPARMgmt * mgmt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC5A0 -> 0x003BC618 +*/ +// Range: 0x3BC5A0 -> 0x3BC618 +class NPARMgmt * NPAR_PartySetup(enum en_nparptyp parType /* r4 */, void * * userData /* r8 */, class NPARXtraData * xtraData /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC5A0 -> 0x3BC618 + class NPARMgmt * mgmt; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC620 -> 0x003BC730 +*/ +// Range: 0x3BC620 -> 0x3BC730 +void NPAR_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC620 -> 0x3BC730 + signed int isPawzd; // r19 + signed int isCine; // r18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC730 -> 0x003BC998 +*/ +// Range: 0x3BC730 -> 0x3BC998 +void NPCC_RenderProjTextureFaceCamera(class RwRaster * rast /* r18 */, float factor /* r22 */, class xVec3 * pos /* r2 */, float radius /* r21 */, float height /* r20 */, class xShadowCache * cache /* r17 */, signed int fillCache /* r20 */, class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC730 -> 0x3BC998 + class xMat4x3 matrix; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BC9A0 -> 0x003BCAD0 +*/ +// Range: 0x3BC9A0 -> 0x3BCAD0 +void NPCC_RenderProjTexture(class RwRaster * rast /* r19 */, float factor /* r21 */, class xMat4x3 * mat /* r18 */, float radius /* r20 */, float height /* r29+0x90 */, class xShadowCache * cache /* r17 */, signed int fillCache /* r2 */, class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BC9A0 -> 0x3BCAD0 + unsigned int i; // r22 + class xEnt * ep; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BCAD0 -> 0x003BCB34 +*/ +// Range: 0x3BCAD0 -> 0x3BCB34 +void NPCC_Slick_MakePlayerSlip(class zNPCCommon * npc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BCAD0 -> 0x3BCB34 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BCB40 -> 0x003BCCB4 +*/ +// Range: 0x3BCB40 -> 0x3BCCB4 +void NPCC_MakeASplash(class xVec3 * pos /* r16 */, float radius /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BCB40 -> 0x3BCCB4 + float rad_splash; // r21 + float tym_splash; // r20 + class NPCHazard * haz; // r17 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BCCC0 -> 0x003BD024 +*/ +// Range: 0x3BCCC0 -> 0x3BD024 +void NPCC_BurstBubble(enum en_npcburst burst /* r19 */, class xVec3 * pos_base /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BCCC0 -> 0x3BD024 + signed int i; // r17 + signed int j; // r16 + float hyt; // r22 + float rat_hyt; // r29+0x80 + float rad_cur; // r21 + float curang; // r20 + float fs; // r23 + float fc; // r20 + class xVec3 pos_emit; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BD030 -> 0x003BD08C +*/ +// Range: 0x3BD030 -> 0x3BD08C +unsigned int NPCC_StreakCreate(enum en_npcstreak styp /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BD030 -> 0x3BD08C + class StreakInfo info; // @ 0x005E6620 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BD090 -> 0x003BD2E0 +*/ +// Range: 0x3BD090 -> 0x3BD2E0 +void NPCC_MakeStreakInfo(enum en_npcstreak styp /* r2 */, class StreakInfo * info /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BD090 -> 0x3BD2E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BD2E0 -> 0x003BDB18 +*/ +// Range: 0x3BD2E0 -> 0x3BDB18 +void NPCC_MakeLightningInfo(enum en_npclyt style /* r2 */, class _tagLightningAdd * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BD2E0 -> 0x3BDB18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDB20 -> 0x003BDB28 +*/ +// Range: 0x3BDB20 -> 0x3BDB28 +void NPCSupplement_Timestep(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3BDB20 -> 0x3BDB28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDB30 -> 0x003BDBA4 +*/ +// Range: 0x3BDB30 -> 0x3BDBA4 +void NPCSupplement_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x3BDB30 -> 0x3BDBA4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDBB0 -> 0x003BDBFC +*/ +// Range: 0x3BDBB0 -> 0x3BDBFC +void NPCSupplement_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x3BDBB0 -> 0x3BDBFC + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDC00 -> 0x003BDCF0 +*/ +// Range: 0x3BDC00 -> 0x3BDCF0 +void NPCSupplement_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x3BDC00 -> 0x3BDCF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDCF0 -> 0x003BDDD8 +*/ +// Range: 0x3BDCF0 -> 0x3BDDD8 +void NPCSupplement_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x3BDCF0 -> 0x3BDDD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDDE0 -> 0x003BDDE8 +*/ +// Range: 0x3BDDE0 -> 0x3BDDE8 +void NPCSupplement_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x3BDDE0 -> 0x3BDDE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupplement.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003BDDF0 -> 0x003BDDF8 +*/ +// Range: 0x3BDDF0 -> 0x3BDDF8 +void NPCSupplement_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x3BDDF0 -> 0x3BDDF8 + } +} + diff --git a/dwarf/SB/Game/zNPCSupport.cpp b/dwarf/SB/Game/zNPCSupport.cpp new file mode 100644 index 000000000..3a7cd52b0 --- /dev/null +++ b/dwarf/SB/Game/zNPCSupport.cpp @@ -0,0 +1,4051 @@ +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class NPCWidget g_npc_widgets[1]; // size: 0xC, address: 0x5D4C10 +static unsigned int g_hash_uiwidgets[1]; // size: 0x4, address: 0x510088 +static char * g_strz_uiwidgets[1]; // size: 0x4, address: 0x50F084 +static unsigned int sNPCSndFx[5]; // size: 0x14, address: 0x5D4C20 +static unsigned int sNPCSndID[5]; // size: 0x14, address: 0x5D4C40 +static float sNPCSndFxVolume[5]; // size: 0x14, address: 0x5D4C60 +static class Firework g_fireworks[32]; // size: 0x480, address: 0x5D5460 +float acc_thrust; // size: 0x4, address: 0x50F08C +float acc_gravity; // size: 0x4, address: 0x50F090 +signed int g_pc_playerInvisible; // size: 0x4, address: 0x510094 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class xVec3 g_X3; // size: 0xC, address: 0x4F8D80 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +class zCutsceneMgr { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class NPCWidget { + // total size: 0xC +public: + enum en_NPC_UI_WIDGETS idxID; // offset 0x0, size 0x4 + class xBase * base_widge; // offset 0x4, size 0x4 + class zNPCCommon * npc_ownerlock; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class Firework { + // total size: 0x24 +public: + enum en_fwstate fwstate : 8; // offset 0x0, size 0x4 + enum en_fwstyle fwstyle : 8; // offset 0x0, size 0x4 + signed int flg_firework : 16; // offset 0x0, size 0x4 + float tym_lifespan; // offset 0x4, size 0x4 + float tmr_remain; // offset 0x8, size 0x4 + class xVec3 pos; // offset 0xC, size 0xC + class xVec3 vel; // offset 0x18, size 0xC +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +enum _tageNPCSnd { + eNPCSnd_GloveAttack = 0, + eNPCSnd_SleepyAttack = 1, + eNPCSnd_TubeAttack = 2, + eNPCSnd_FodBzztAttack = 3, + eNPCSnd_JellyfishAttack = 4, + eNPCSnd_Total = 5, +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class NPCCone { + // total size: 0x20 +public: + float rad_cone; // offset 0x0, size 0x4 + class RwRGBA rgba_top; // offset 0x4, size 0x4 + class RwRGBA rgba_bot; // offset 0x8, size 0x4 + class RwRaster * rast_cone; // offset 0xC, size 0x4 + float uv_tip[2]; // offset 0x10, size 0x8 + float uv_slice[2]; // offset 0x18, size 0x8 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class anim_coll_data { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xParGroup { + // total size: 0x0 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +class NPCLaser { + // total size: 0x24 +public: + class RwRaster * rast_laser; // offset 0x0, size 0x4 + float radius[2]; // offset 0x4, size 0x8 + float uv_scroll[2]; // offset 0xC, size 0x8 + class RwRGBA rgba[2]; // offset 0x14, size 0x8 + float uv_base[2]; // offset 0x1C, size 0x8 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +enum en_NPC_UI_WIDGETS { + NPC_WIDGE_TALK = 0, + NPC_WIDGE_NOMORE = 1, + NPC_WIDGE_FORCE = 2, +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class NPCBlinker { + // total size: 0x8 +public: + float tmr_uvcell; // offset 0x0, size 0x4 + signed int idx_uvcell; // offset 0x4, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class rxReq { + // total size: 0x0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum en_fwstate { + FW_STAT_UNUSED = 0, + FW_STAT_READY = 1, + FW_STAT_FLIGHT = 2, + FW_STAT_BOOM = 3, + FW_STAT_DONE = 4, + FW_STAT_NOMORE = 5, + FW_STAT_FORCE = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum en_fwstyle { + FW_STYL_DEFAULT = 0, + FW_STYL_JULY4TH = 1, + FW_STYL_XMAS = 2, + FW_STYL_STPATS = 3, + FW_STYL_VALENTINE = 4, + FW_STYL_NOMORE = 5, + FW_STYL_FORCE = 2147483647, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zEntHangable { + // total size: 0x0 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class RyzMemData { + // total size: 0x1 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A4B0 -> 0x0031A4C8 +*/ +// Range: 0x31A4B0 -> 0x31A4C8 +unsigned int NPCC_ForceTalkOk() { + // Blocks + /* anonymous block */ { + // Range: 0x31A4B0 -> 0x31A4C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A4D0 -> 0x0031A4E4 +*/ +// Range: 0x31A4D0 -> 0x31A4E4 +signed int NPCC_LampStatus() { + // Blocks + /* anonymous block */ { + // Range: 0x31A4D0 -> 0x31A4E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A4F0 -> 0x0031A540 +*/ +// Range: 0x31A4F0 -> 0x31A540 +void zNPC_SNDStop(enum _tageNPCSnd snd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A4F0 -> 0x31A540 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A540 -> 0x0031A5D8 +*/ +// Range: 0x31A540 -> 0x31A5D8 +void zNPC_SNDPlay3D(enum _tageNPCSnd snd /* r2 */, class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A540 -> 0x31A5D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A5E0 -> 0x0031A6B0 +*/ +// Range: 0x31A5E0 -> 0x31A6B0 +void zNPC_SNDInit() { + // Blocks + /* anonymous block */ { + // Range: 0x31A5E0 -> 0x31A6B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A6B0 -> 0x0031A8AC +*/ +// Range: 0x31A6B0 -> 0x31A8AC +void NPCC_GenSmooth(class xVec3 * * pos_base /* r2 */, class xVec3 * * pos_mid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A6B0 -> 0x31A8AC + signed int i; // r9 + float u; // r11 + float u3; // r10 + float prepute[4][4]; // @ 0x005D58E0 + float yews[4]; // @ 0x005008B0 + signed int init; // @ 0x00510090 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A8B0 -> 0x0031A8C4 +*/ +// Range: 0x31A8B0 -> 0x31A8C4 +class RwRaster * NPCC_FindRWRaster(class RwTexture * txtr /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A8B0 -> 0x31A8C4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A8D0 -> 0x0031A90C +*/ +// Range: 0x31A8D0 -> 0x31A90C +class RwRaster * NPCC_FindRWRaster(char * txtrname /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A8D0 -> 0x31A90C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A910 -> 0x0031A918 +*/ +// Range: 0x31A910 -> 0x31A918 +class RwTexture * NPCC_FindRWTexture(unsigned int hashid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A910 -> 0x31A918 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A920 -> 0x0031A948 +*/ +// Range: 0x31A920 -> 0x31A948 +class RwTexture * NPCC_FindRWTexture(char * txtrname /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A920 -> 0x31A948 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031A950 -> 0x0031AA14 +*/ +// Range: 0x31A950 -> 0x31AA14 +void NPCC_MakeArbPlane(class xVec3 * dir_norm /* r18 */, class xVec3 * at /* r17 */, class xVec3 * rt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31A950 -> 0x31AA14 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AA20 -> 0x0031AA58 +*/ +// Range: 0x31AA20 -> 0x31AA58 +void NPCC_MakePerp(class xVec3 * dir_perp /* r2 */, class xVec3 * dir_axis /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AA20 -> 0x31AA58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AA60 -> 0x0031AAC8 +*/ +// Range: 0x31AA60 -> 0x31AAC8 +float NPCC_TmrCycle(float * tmr /* r16 */, float dt /* r29+0x30 */, float interval /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AA60 -> 0x31AAC8 + float parameterized; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AAD0 -> 0x0031AB94 +*/ +// Range: 0x31AAD0 -> 0x31AB94 +void NPCC_rotHPB(class xMat3x3 * mat /* r16 */, float heading /* r21 */, float pitch /* r20 */, float bank /* r29+0x70 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AAD0 -> 0x31AB94 + class xVec3 axis; // r29+0x60 + class xMat3x3 mat_rot; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031ABA0 -> 0x0031AC58 +*/ +// Range: 0x31ABA0 -> 0x31AC58 +void NPCC_Bounce(class xVec3 * vec_input /* r2 */, class xVec3 * vec_anti /* r2 */, float elastic /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31ABA0 -> 0x31AC58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AC60 -> 0x0031AD10 +*/ +// Range: 0x31AC60 -> 0x31AD10 +float NPCC_ds2_toCam(class xVec3 * pos_from /* r2 */, class xVec3 * delta /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AC60 -> 0x31AD10 + class xVec3 delt; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AD10 -> 0x0031AD78 +*/ +// Range: 0x31AD10 -> 0x31AD78 +float NPCC_DstSqPlyrToPos(class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AD10 -> 0x31AD78 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AD80 -> 0x0031AF14 +*/ +// Range: 0x31AD80 -> 0x31AF14 +signed int NPCC_HaveLOSToPos(class xVec3 * pos_src /* r19 */, class xVec3 * pos_tgt /* r18 */, float dst_max /* r20 */, class xBase * tgt /* r17 */, class xCollis * colCallers /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AD80 -> 0x31AF14 + signed int result; // r2 + class xRay3 ray; // r29+0x70 + class xScene * xscn; // r20 + class xCollis * colrec; // r16 + class xCollis localCollis; // @ 0x004E0410 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AF20 -> 0x0031AF80 +*/ +// Range: 0x31AF20 -> 0x31AF80 +void NPCC_xBoundBack(class xBound * bnd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AF20 -> 0x31AF80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AF80 -> 0x0031AFE0 +*/ +// Range: 0x31AF80 -> 0x31AFE0 +void NPCC_xBoundAway(class xBound * bnd /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AF80 -> 0x31AFE0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031AFE0 -> 0x0031B118 +*/ +// Range: 0x31AFE0 -> 0x31B118 +signed int NPCC_pos_ofBase(class xBase * tgt /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31AFE0 -> 0x31B118 + signed int known; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B120 -> 0x0031B210 +*/ +// Range: 0x31B120 -> 0x31B210 +signed int NPCC_LineHitsBound(class xVec3 * a /* r2 */, class xVec3 * b /* r2 */, class xBound * bnd /* r2 */, class xCollis * callers_colrec /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B120 -> 0x31B210 + class xRay3 ray; // r29+0x70 + class xCollis local_colrec; // r29+0x20 + class xCollis * colrec; // r16 + float len; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B210 -> 0x0031B2D8 +*/ +// Range: 0x31B210 -> 0x31B2D8 +signed int NPCC_chk_hitEnt(class xEnt * tgt /* r18 */, class xBound * bnd /* r17 */, class xCollis * collide /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B210 -> 0x31B2D8 + signed int hittgt; // r16 + class xCollis * colrec; // r19 + class xCollis lcl_collide; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B2E0 -> 0x0031B2F8 +*/ +// Range: 0x31B2E0 -> 0x31B2F8 +signed int NPCC_chk_hitPlyr(class xBound * bnd /* r2 */, class xCollis * collide /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B2E0 -> 0x31B2F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B300 -> 0x0031B7E0 +*/ +// Range: 0x31B300 -> 0x31B7E0 +float NPCC_aimVary(class xVec3 * dir_aim /* r20 */, class xVec3 * pos_src /* r19 */, class xVec3 * pos_tgt /* r18 */, float dst_vary /* r22 */, signed int flg_vary /* r17 */, class xVec3 * pos_aimPoint /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B300 -> 0x31B7E0 + float dst_toFake; // r29+0xD0 + class xVec3 dir_left; // r29+0xC0 + class xVec3 dir_toFake; // r29+0xB0 + class xVec3 dir_toReal; // r29+0xA0 + class xVec3 vec_offset; // r29+0x90 + class xVec3 pos_tgtFake; // r29+0x80 + float mag_vary; // r21 + float mag_updown; // r29+0xD0 + float fv; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B7E0 -> 0x0031B7EC +*/ +// Range: 0x31B7E0 -> 0x31B7EC +float NPCC_aimMiss(class xVec3 * dir_aim /* r2 */, class xVec3 * pos_src /* r2 */, class xVec3 * pos_tgt /* r2 */, float dst_miss /* r29 */, class xVec3 * pos_miss /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B7E0 -> 0x31B7EC + float dst_toTgt; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B7F0 -> 0x0031B818 +*/ +// Range: 0x31B7F0 -> 0x31B818 +float NPCC_dir_toXZAng(class xVec3 * dir /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B7F0 -> 0x31B818 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B820 -> 0x0031B864 +*/ +// Range: 0x31B820 -> 0x31B864 +void NPCC_ang_toXZDir(float angle /* r20 */, class xVec3 * dir /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B820 -> 0x31B864 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031B870 -> 0x0031BA90 +*/ +// Range: 0x31B870 -> 0x31BA90 +void FlyFlyFly(class Firework * this /* r2 */, float dt /* r29+0x60 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31B870 -> 0x31BA90 + float pam_life; // r2 + class xVec3 dir_trav; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031BA90 -> 0x0031BB7C +*/ +// Range: 0x31BA90 -> 0x31BB7C +void Update(class Firework * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31BA90 -> 0x31BB7C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031BB80 -> 0x0031BC28 +*/ +// Range: 0x31BB80 -> 0x31BC28 +void Firework_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31BB80 -> 0x31BC28 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031BC30 -> 0x0031C27C +*/ +// Range: 0x31BC30 -> 0x31C27C +void Render(class NPCBlinker * this /* r18 */, class xVec3 * pos_blink /* r17 */, float rad_blink /* r20 */, class RwRaster * rast_blink /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31BC30 -> 0x31C27C + class RwRGBA rgba; // r29+0x19C + class xMat3x3 mat; // r29+0xB0 + class xVec3 dir_card; // r29+0x190 + class xVec3 dir_perp; // r29+0x180 + unsigned char cg; // r2 + unsigned char cb; // r2 + unsigned char ca; // r2 + signed int i; // r22 + class RxObjSpace3DVertex * vtx_horz; // r21 + class RxObjSpace3DVertex * vtx_vert; // r20 + float rat; // r16 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + enum _SDRenderState old_rendstat; // r17 + class RxObjSpace3DVertex blink_vtxbuf[2][14]; // @ 0x005D5070 + float dst_toCamMax; // @ 0x005008A0 + signed char @6083; // @ 0x0051008C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031C280 -> 0x0031C30C +*/ +// Range: 0x31C280 -> 0x31C30C +void Update(class NPCBlinker * this /* r2 */, float dt /* r29 */, float ratio /* r29 */, float tym_slow /* r29 */, float tym_fast /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31C280 -> 0x31C30C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031C310 -> 0x0031C320 +*/ +// Range: 0x31C310 -> 0x31C320 +void Reset(class NPCBlinker * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31C310 -> 0x31C320 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031C320 -> 0x0031C648 +*/ +// Range: 0x31C320 -> 0x31C648 +void RenderCone(class NPCCone * this /* r21 */, class xVec3 * pos_tiptop /* r2 */, class xVec3 * pos_botcenter /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31C320 -> 0x31C648 + class RwRGBA rgba_top; // r29+0xDC + class RwRGBA rgba_bot; // r29+0xD8 + class xVec3 pos_top; // r29+0xC8 + class xVec3 pos_bot; // r29+0xB8 + void * mem; // r20 + class RxObjSpace3DVertex * vert_list; // r2 + class RxObjSpace3DVertex * vtx; // r19 + class RwRGBA * _col; // r2 + signed int i; // r18 + float ang_seg; // r24 + class RwRGBA * _col; // r2 + enum _SDRenderState old_rendstat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031C650 -> 0x0031CB64 +*/ +// Range: 0x31C650 -> 0x31CB64 +void Render(class NPCLaser * this /* r16 */, class xVec3 * pos_src /* r2 */, class xVec3 * pos_tgt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31C650 -> 0x31CB64 + signed int i; // r6 + class RxObjSpace3DVertex * vtx_horz; // r5 + class RxObjSpace3DVertex * vtx_vert; // r4 + class xVec3 dir_axis; // r29+0x50 + float rat; // r14 + float u; // r18 + float v; // r14 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + enum _SDRenderState old_rendstat; // r17 + class RxObjSpace3DVertex laser_vtxbuf[2][14]; // @ 0x005D4C80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031CB70 -> 0x0031CC1C +*/ +// Range: 0x31CB70 -> 0x31CC1C +signed int IsDead(class NPCTarget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31CB70 -> 0x31CC1C + signed int dead; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031CC20 -> 0x0031CD3C +*/ +// Range: 0x31CC20 -> 0x31CD3C +signed int InCylinder(class NPCTarget * this /* r2 */, class xVec3 * from /* r17 */, float rad /* r20 */, float hyt /* r22 */, float off /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31CC20 -> 0x31CD3C + signed int inrange; // r16 + class xVec3 vec; // r29+0x40 + float upper; // r3 + float lower; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031CD40 -> 0x0031CEE0 +*/ +// Range: 0x31CD40 -> 0x31CEE0 +void PosGet(class NPCTarget * this /* r2 */, class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31CD40 -> 0x31CEE0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031CEE0 -> 0x0031D208 +*/ +// Range: 0x31CEE0 -> 0x31D208 +signed int FindNearest(class NPCTarget * this /* r21 */, signed int flg_consider /* r20 */, class xBase * skipme /* r30 */, class xVec3 * from /* r19 */, float dst_max /* r29+0xC0 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31CEE0 -> 0x31D208 + signed int found; // r18 + class st_XORDEREDARRAY * npclist; // r23 + float ds2_best; // r20 + class zNPCCommon * npc; // r17 + class zNPCCommon * npc_best; // r22 + class xVec3 vec; // r29+0xB0 + float fv; // r29+0xC0 + signed int i; // r16 + signed int ntyp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D210 -> 0x0031D21C +*/ +// Range: 0x31D210 -> 0x31D21C +void TargetClear(class NPCTarget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D210 -> 0x31D21C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D220 -> 0x0031D248 +*/ +// Range: 0x31D220 -> 0x31D248 +signed int NPCIsTheLocker(class NPCWidget * this /* r2 */, class zNPCCommon * npc_lock /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D220 -> 0x31D248 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D250 -> 0x0031D298 +*/ +// Range: 0x31D250 -> 0x31D298 +signed int IsVisible(class NPCWidget * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D250 -> 0x31D298 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D2A0 -> 0x0031D348 +*/ +// Range: 0x31D2A0 -> 0x31D348 +signed int Off(class NPCWidget * this /* r16 */, class zNPCCommon * npc /* r2 */, signed int theman /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D2A0 -> 0x31D348 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D350 -> 0x0031D458 +*/ +// Range: 0x31D350 -> 0x31D458 +signed int On(class NPCWidget * this /* r16 */, class zNPCCommon * npc /* r2 */, signed int theman /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D350 -> 0x31D458 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D460 -> 0x0031D47C +*/ +// Range: 0x31D460 -> 0x31D47C +class NPCWidget * NPCWidget_Find(enum en_NPC_UI_WIDGETS which /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D460 -> 0x31D47C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D480 -> 0x0031D488 +*/ +// Range: 0x31D480 -> 0x31D488 +void NPCWidget_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x31D480 -> 0x31D488 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D490 -> 0x0031D4CC +*/ +// Range: 0x31D490 -> 0x31D4CC +void NPCSupport_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D490 -> 0x31D4CC + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D4D0 -> 0x0031D538 +*/ +// Range: 0x31D4D0 -> 0x31D538 +void NPCSupport_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x31D4D0 -> 0x31D538 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D540 -> 0x0031D59C +*/ +// Range: 0x31D540 -> 0x31D59C +void NPCSupport_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x31D540 -> 0x31D59C + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D5A0 -> 0x0031D600 +*/ +// Range: 0x31D5A0 -> 0x31D600 +void NPCSupport_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x31D5A0 -> 0x31D600 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D600 -> 0x0031D678 +*/ +// Range: 0x31D600 -> 0x31D678 +void NPCSupport_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x31D600 -> 0x31D678 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D680 -> 0x0031D6AC +*/ +// Range: 0x31D680 -> 0x31D6AC +void NPCSupport_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x31D680 -> 0x31D6AC + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D6B0 -> 0x0031D6F0 +*/ +// Range: 0x31D6B0 -> 0x31D6F0 +void NPCSupport_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x31D6B0 -> 0x31D6F0 + } +} + diff --git a/dwarf/SB/Game/zNPCSupport.h b/dwarf/SB/Game/zNPCSupport.h new file mode 100644 index 000000000..595124ab2 --- /dev/null +++ b/dwarf/SB/Game/zNPCSupport.h @@ -0,0 +1,42 @@ +/* + Compile unit: C:\SB\Game\zNPCSupport.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FBB0 -> 0x0014FBC0 +*/ +// Range: 0x14FBB0 -> 0x14FBC0 +class xVec3 * NPCC_faceDir(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FBB0 -> 0x14FBC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FBC0 -> 0x0014FBD0 +*/ +// Range: 0x14FBC0 -> 0x14FBD0 +class xVec3 * NPCC_upDir(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FBC0 -> 0x14FBD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCSupport.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0014FC80 -> 0x0014FC8C +*/ +// Range: 0x14FC80 -> 0x14FC8C +class xVec3 * NPCC_rightDir(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x14FC80 -> 0x14FC8C + } +} + diff --git a/dwarf/SB/Game/zNPCTypeAmbient.cpp b/dwarf/SB/Game/zNPCTypeAmbient.cpp new file mode 100644 index 000000000..6a4aab9d2 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeAmbient.cpp @@ -0,0 +1,3901 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_ambianim[12]; // size: 0x30, address: 0x5CC130 +char * g_strz_ambianim[12]; // size: 0x30, address: 0x4DEC40 +struct /* @anon4 */ { + // total size: 0xD0 +} __vt__12zNPCMimeFish; // size: 0xD0, address: 0x50A380 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class NPCSndTrax g_sndTrax_Neptune[]; // size: 0x0, address: 0x5CF9E8 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +signed int JELY_grul_getAngry(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2CDA30 +class NPCSndTrax g_sndTrax_Jelly[]; // size: 0x0, address: 0x4E0010 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon0 */ { + // total size: 0xD0 +} __vt__11zNPCAmbient; // size: 0xD0, address: 0x50A5F0 +struct /* @anon2 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon3 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +struct /* @anon5 */ { + // total size: 0xD0 +} __vt__11zNPCNeptune; // size: 0xD0, address: 0x50A450 +struct /* @anon1 */ { + // total size: 0xD0 +} __vt__9zNPCJelly; // size: 0xD0, address: 0x50A520 +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zNPCJelly : public zNPCAmbient { + // total size: 0x2B0 +public: + signed int cnt_angerLevel; // offset 0x2A0, size 0x4 + signed int hitpoints; // offset 0x2A4, size 0x4 + float tmr_pulseAlpha; // offset 0x2A8, size 0x4 + class zNPCCommon * npc_daddyJelly; // offset 0x2AC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class zNPCMimeFish : public zNPCAmbient { + // total size: 0x2A0 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +struct /* @anon0 */ { + // total size: 0xD0 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zNPCAmbient : public zNPCCommon { + // total size: 0x2A0 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zEntHangable { + // total size: 0x0 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zNPCNeptune : public zNPCAmbient { + // total size: 0x2A0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zNPCGoalJellyBirth : public zNPCGoalCommon { + // total size: 0x5C +public: + class xVec3 pos_spawn; // offset 0x4C, size 0xC + float tmr_fall; // offset 0x58, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0xD0 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xCurveAsset { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xCC +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +struct /* @anon3 */ { + // total size: 0x54 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0xD0 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0xD0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD490 -> 0x002CD4C0 +*/ +// Range: 0x2CD490 -> 0x2CD4C0 +void Process() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD490 -> 0x2CD4C0 + class xVec3 vec; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD4C0 -> 0x002CD508 +*/ +// Range: 0x2CD4C0 -> 0x2CD508 +void Reset(class zNPCMimeFish * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD4C0 -> 0x2CD508 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD510 -> 0x002CD578 +*/ +// Range: 0x2CD510 -> 0x2CD578 +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD510 -> 0x2CD578 + signed int idx; // r3 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD580 -> 0x002CD784 +*/ +// Range: 0x2CD580 -> 0x2CD784 +void Process(class zNPCNeptune * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD580 -> 0x2CD784 + unsigned int anid; // r2 + class xVec3 vec; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD790 -> 0x002CD7DC +*/ +// Range: 0x2CD790 -> 0x2CD7DC +void Reset(class zNPCNeptune * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD790 -> 0x2CD7DC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD7E0 -> 0x002CD820 +*/ +// Range: 0x2CD7E0 -> 0x2CD820 +void ParseINI(class zNPCNeptune * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD7E0 -> 0x2CD820 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD820 -> 0x002CD964 +*/ +// Range: 0x2CD820 -> 0x2CD964 +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD820 -> 0x2CD964 + signed int idx; // r2 + unsigned int da_anim; // r16 + signed int choices[3]; // r29+0x30 + signed int choices[3]; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD970 -> 0x002CDA24 +*/ +// Range: 0x2CD970 -> 0x2CDA24 +void ActLikeOctopus(class zNPCJelly * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD970 -> 0x2CDA24 + signed int num_vert; // r16 + signed int i; // r19 + class xVec3 pos_emit; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CDA30 -> 0x002CDC64 +*/ +// Range: 0x2CDA30 -> 0x2CDC64 +static signed int JELY_grul_getAngry(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CDA30 -> 0x2CDC64 + signed int nextgoal; // r18 + class zNPCJelly * npc; // r17 + signed int skipit; // r16 + signed int angerThresh; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CDC70 -> 0x002CDD30 +*/ +// Range: 0x2CDC70 -> 0x2CDD30 +void PlayWithLightnin(class zNPCJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CDC70 -> 0x2CDD30 + class xVec3 pos_bone; // r29+0x70 + class xVec3 pos_place; // r29+0x60 + class _tagLightningAdd info; // r29+0x20 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CDD30 -> 0x002CDED0 +*/ +// Range: 0x2CDD30 -> 0x2CDED0 +void JellyBoneWorldPos(class zNPCJelly * this /* r17 */, class xVec3 * pos /* r16 */, signed int idx_request /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CDD30 -> 0x2CDED0 + signed int idx; // r2 + class xVec3 pos_place; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CDED0 -> 0x002CDF08 +*/ +// Range: 0x2CDED0 -> 0x2CDF08 +void SetAlpha(class zNPCJelly * this /* r2 */, float alf /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CDED0 -> 0x2CDF08 + class xModelInstance * minst; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CDF10 -> 0x002CE058 +*/ +// Range: 0x2CDF10 -> 0x2CE058 +signed int AmbiHandleMail(class zNPCJelly * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CDF10 -> 0x2CE058 + signed int handled; // r17 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE060 -> 0x002CE3A8 +*/ +// Range: 0x2CE060 -> 0x2CE3A8 +void Process(class zNPCJelly * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE060 -> 0x2CE3A8 + class xPsyche * psy; // r16 + signed int flg_wonder; // r2 + class xPsyche * psy; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE3C0 -> 0x002CE520 +*/ +// Range: 0x2CE3C0 -> 0x2CE520 +void BUpdate(class zNPCJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE3C0 -> 0x2CE520 + class xVec3 pos_bnd; // r29+0x20 + class xVec3 vec_offset; // @ 0x004FE038 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE520 -> 0x002CE638 +*/ +// Range: 0x2CE520 -> 0x2CE638 +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE520 -> 0x2CE638 + signed int idx; // r7 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE640 -> 0x002CE6A4 +*/ +// Range: 0x2CE640 -> 0x2CE6A4 +void JellyKill(class zNPCJelly * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE640 -> 0x2CE6A4 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE6B0 -> 0x002CE71C +*/ +// Range: 0x2CE6B0 -> 0x2CE71C +void JellySpawn(class zNPCJelly * this /* r2 */, class xVec3 * pos_spawn /* r17 */, float tym_fall /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE6B0 -> 0x2CE71C + class xPsyche * psy; // r16 + class zNPCGoalJellyBirth * birth; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE720 -> 0x002CE7F4 +*/ +// Range: 0x2CE720 -> 0x2CE7F4 +void SelfSetup(class zNPCJelly * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE720 -> 0x2CE7F4 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE800 -> 0x002CE878 +*/ +// Range: 0x2CE800 -> 0x2CE878 +void Reset(class zNPCJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE800 -> 0x2CE878 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE880 -> 0x002CE958 +*/ +// Range: 0x2CE880 -> 0x2CE958 +void ParseINI(class zNPCJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE880 -> 0x2CE958 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE960 -> 0x002CE9D0 +*/ +// Range: 0x2CE960 -> 0x2CE9D0 +void Init(class zNPCJelly * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE960 -> 0x2CE9D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE9D0 -> 0x002CEAE0 +*/ +// Range: 0x2CE9D0 -> 0x2CEAE0 +signed int NPCMessage(class zNPCAmbient * this /* r20 */, class NPCMsg * mail /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE9D0 -> 0x2CEAE0 + class zNPCGoalCommon * curgoal; // r18 + class zNPCGoalCommon * recgoal; // r17 + class xPsyche * psy; // r16 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CEAE0 -> 0x002CEB48 +*/ +// Range: 0x2CEAE0 -> 0x2CEB48 +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CEAE0 -> 0x2CEB48 + signed int idx; // r3 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CEB50 -> 0x002CEBBC +*/ +// Range: 0x2CEB50 -> 0x2CEBBC +void SelfSetup(class zNPCAmbient * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CEB50 -> 0x2CEBBC + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CEBC0 -> 0x002CEC18 +*/ +// Range: 0x2CEBC0 -> 0x2CEC18 +void Process(class zNPCAmbient * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CEBC0 -> 0x2CEC18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CEC20 -> 0x002CEC60 +*/ +// Range: 0x2CEC20 -> 0x2CEC60 +void Reset(class zNPCAmbient * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CEC20 -> 0x2CEC60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CEC60 -> 0x002CECA8 +*/ +// Range: 0x2CEC60 -> 0x2CECA8 +void Init(class zNPCAmbient * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CEC60 -> 0x2CECA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CECB0 -> 0x002CEFA8 +*/ +// Range: 0x2CECB0 -> 0x2CEFA8 +class xAnimTable * ZNPC_AnimTable_Neptune() { + // Blocks + /* anonymous block */ { + // Range: 0x2CECB0 -> 0x2CEFA8 + class xAnimTable * table; // r16 + signed int ourAnims[7]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CEFB0 -> 0x002CF190 +*/ +// Range: 0x2CEFB0 -> 0x2CF190 +class xAnimTable * ZNPC_AnimTable_Jelly() { + // Blocks + /* anonymous block */ { + // Range: 0x2CEFB0 -> 0x2CF190 + class xAnimTable * table; // r16 + signed int ourAnims[6]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF190 -> 0x002CF210 +*/ +// Range: 0x2CF190 -> 0x2CF210 +class xAnimTable * ZNPC_AnimTable_Ambient() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF190 -> 0x2CF210 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF210 -> 0x002CF234 +*/ +// Range: 0x2CF210 -> 0x2CF234 +void ZNPC_Destroy_Ambient(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CF210 -> 0x2CF234 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF240 -> 0x002CF488 +*/ +// Range: 0x2CF240 -> 0x2CF488 +class xFactoryInst * ZNPC_Create_Ambient(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CF240 -> 0x2CF488 + class zNPCAmbient * inst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF490 -> 0x002CF498 +*/ +// Range: 0x2CF490 -> 0x2CF498 +void ZNPC_Ambient_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF490 -> 0x2CF498 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF4A0 -> 0x002CF500 +*/ +// Range: 0x2CF4A0 -> 0x2CF500 +void ZNPC_Ambient_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF4A0 -> 0x2CF500 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeAmbient.h b/dwarf/SB/Game/zNPCTypeAmbient.h new file mode 100644 index 000000000..ee9bb5e71 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeAmbient.h @@ -0,0 +1,182 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD370 -> 0x002CD378 +*/ +// Range: 0x2CD370 -> 0x2CD378 +void SelfSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD370 -> 0x2CD378 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD380 -> 0x002CD388 +*/ +// Range: 0x2CD380 -> 0x2CD388 +signed int AmbiHandleMail() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD380 -> 0x2CD388 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD390 -> 0x002CD398 +*/ +// Range: 0x2CD390 -> 0x2CD398 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD390 -> 0x2CD398 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD3A0 -> 0x002CD3A8 +*/ +// Range: 0x2CD3A0 -> 0x2CD3A8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD3A0 -> 0x2CD3A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD3B0 -> 0x002CD3B8 +*/ +// Range: 0x2CD3B0 -> 0x2CD3B8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD3B0 -> 0x2CD3B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD3C0 -> 0x002CD3C8 +*/ +// Range: 0x2CD3C0 -> 0x2CD3C8 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD3C0 -> 0x2CD3C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD3D0 -> 0x002CD3D8 +*/ +// Range: 0x2CD3D0 -> 0x2CD3D8 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD3D0 -> 0x2CD3D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CE3B0 -> 0x002CE3BC +*/ +// Range: 0x2CE3B0 -> 0x2CE3BC +signed int IsAlive(class zNPCJelly * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CE3B0 -> 0x2CE3BC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF500 -> 0x002CF508 +*/ +// Range: 0x2CF500 -> 0x2CF508 +void SelfSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF500 -> 0x2CF508 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF510 -> 0x002CF518 +*/ +// Range: 0x2CF510 -> 0x2CF518 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF510 -> 0x2CF518 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF520 -> 0x002CF528 +*/ +// Range: 0x2CF520 -> 0x2CF528 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF520 -> 0x2CF528 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF530 -> 0x002CF538 +*/ +// Range: 0x2CF530 -> 0x2CF538 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF530 -> 0x2CF538 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeAmbient.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF540 -> 0x002CF548 +*/ +// Range: 0x2CF540 -> 0x2CF548 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF540 -> 0x2CF548 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBoss.cpp b/dwarf/SB/Game/zNPCTypeBoss.cpp new file mode 100644 index 000000000..d74e4a8ba --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBoss.cpp @@ -0,0 +1,2238 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_bossanim[78]; // size: 0x138, address: 0x5DE220 +char * g_strz_bossanim[78]; // size: 0x138, address: 0x4E0580 +static signed int g_boss_is_in_the_house; // size: 0x4, address: 0x5100D8 +static class zParEmitter * g_pemit_holder; // size: 0x4, address: 0x5100DC +static class xParEmitterCustomSettings g_parf_holder; // size: 0x16C, address: 0x5DE360 +struct /* @anon5 */ { + // total size: 0xD8 +} __vt__8zNPCBoss; // size: 0xD8, address: 0x50C4D0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon4 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon1 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +struct /* @anon3 */ { + // total size: 0xD8 +} __vt__9zNPCB_SB2; // size: 0xD8, address: 0x50D230 +struct /* @anon2 */ { + // total size: 0xD8 +} __vt__9zNPCB_SB1; // size: 0xD8, address: 0x50D450 +struct /* @anon0 */ { + // total size: 0xD8 +} __vt__12zNPCBPatrick; // size: 0xD8, address: 0x50DE60 +struct /* @anon6 */ { + // total size: 0xD8 +} __vt__10zNPCBSandy; // size: 0xD8, address: 0x50CC40 +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +struct /* @anon0 */ { + // total size: 0xD8 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class rxReq { + // total size: 0x0 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x54 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xD8 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0xD8 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +struct /* @anon4 */ { + // total size: 0xCC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0xD8 +}; +struct /* @anon6 */ { + // total size: 0xD8 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324D60 -> 0x00324DA4 +*/ +// Range: 0x324D60 -> 0x324DA4 +void Setup(class zNPCBoss * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324D60 -> 0x324DA4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324DB0 -> 0x00324E60 +*/ +// Range: 0x324DB0 -> 0x324E60 +class xAnimTable * ZNPC_AnimTable_BossSBobbyArm() { + // Blocks + /* anonymous block */ { + // Range: 0x324DB0 -> 0x324E60 + class xAnimTable * table; // r16 + signed int ourAnims[2]; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324E60 -> 0x00324E84 +*/ +// Range: 0x324E60 -> 0x324E84 +void ZNPC_Destroy_Boss(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324E60 -> 0x324E84 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324E90 -> 0x003250F0 +*/ +// Range: 0x324E90 -> 0x3250F0 +class xFactoryInst * ZNPC_Create_Boss(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324E90 -> 0x3250F0 + class zNPCBoss * boss; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003250F0 -> 0x003250F8 +*/ +// Range: 0x3250F0 -> 0x3250F8 +void zNPCBoss_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x3250F0 -> 0x3250F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325100 -> 0x0032510C +*/ +// Range: 0x325100 -> 0x32510C +void zNPCBoss_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x325100 -> 0x32510C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325110 -> 0x00325118 +*/ +// Range: 0x325110 -> 0x325118 +void ZNPC_Boss_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x325110 -> 0x325118 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325120 -> 0x00325180 +*/ +// Range: 0x325120 -> 0x325180 +void ZNPC_Boss_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x325120 -> 0x325180 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBoss.h b/dwarf/SB/Game/zNPCTypeBoss.h new file mode 100644 index 000000000..749ff1bc8 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBoss.h @@ -0,0 +1,112 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324CD0 -> 0x00324CD8 +*/ +// Range: 0x324CD0 -> 0x324CD8 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x324CD0 -> 0x324CD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324CE0 -> 0x00324CE8 +*/ +// Range: 0x324CE0 -> 0x324CE8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x324CE0 -> 0x324CE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324CF0 -> 0x00324CF8 +*/ +// Range: 0x324CF0 -> 0x324CF8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x324CF0 -> 0x324CF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324D00 -> 0x00324D08 +*/ +// Range: 0x324D00 -> 0x324D08 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x324D00 -> 0x324D08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324D10 -> 0x00324D18 +*/ +// Range: 0x324D10 -> 0x324D18 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x324D10 -> 0x324D18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324D20 -> 0x00324D34 +*/ +// Range: 0x324D20 -> 0x324D34 +float AttackTimeLeft() { + // Blocks + /* anonymous block */ { + // Range: 0x324D20 -> 0x324D34 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324D40 -> 0x00324D48 +*/ +// Range: 0x324D40 -> 0x324D48 +void HoldUpDude() { + // Blocks + /* anonymous block */ { + // Range: 0x324D40 -> 0x324D48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324D50 -> 0x00324D58 +*/ +// Range: 0x324D50 -> 0x324D58 +void ThanksImDone() { + // Blocks + /* anonymous block */ { + // Range: 0x324D50 -> 0x324D58 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBossPatrick.cpp b/dwarf/SB/Game/zNPCTypeBossPatrick.cpp new file mode 100644 index 000000000..27a6b1a36 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBossPatrick.cpp @@ -0,0 +1,5163 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned char sUseBossCam; // size: 0x1, address: 0x50F11C +static unsigned char sWasUsingBossCam; // size: 0x1, address: 0x0 +static unsigned char sOthersHaventBeenAdded; // size: 0x1, address: 0x5101C0 +static class zNPCBPatrick * sPat_Ptr; // size: 0x4, address: 0x5101C4 +static class xVec3 * sCamSubTarget; // size: 0x4, address: 0x5101C8 +static float sSecsSincePatWasCarryingHead; // size: 0x4, address: 0x0 +static class xVec3 sCamSubTargetFixed; // size: 0xC, address: 0x0 +static float sCurrYaw; // size: 0x4, address: 0x5101CC +static float sCurrHeight; // size: 0x4, address: 0x5101D0 +static float sCurrRadius; // size: 0x4, address: 0x5101D4 +static float sCurrPitch; // size: 0x4, address: 0x5101D8 +static float sCurrYawOffset; // size: 0x4, address: 0x0 +static float sCurrCamInterp; // size: 0x4, address: 0x0 +static float minYVel; // size: 0x4, address: 0x5101DC +static float varYVel; // size: 0x4, address: 0x5101E0 +static float minHMul; // size: 0x4, address: 0x5101E4 +static float varHMul; // size: 0x4, address: 0x5101E8 +static float minT; // size: 0x4, address: 0x5101EC +static float varT; // size: 0x4, address: 0x5101F0 +static signed int sBone[10]; // size: 0x28, address: 0x4E0F30 +static signed int sBoundBone[4]; // size: 0x10, address: 0x4E0F60 +static float sBoundRadius[4]; // size: 0x10, address: 0x4E0F70 +static class xVec3 sBoneOffset[4]; // size: 0x30, address: 0x4E0F80 +static class newsfishSound sNFComment[37]; // size: 0x128, address: 0x4E0FB0 +static unsigned int sCurrNFSound; // size: 0x4, address: 0x0 +static class tweak_callback newsfish_cb; // size: 0x28, address: 0x0 +static class tweak_callback recenter_cb; // size: 0x28, address: 0x0 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatFudge; // size: 0x34, address: 0x50DBE0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class tagiRenderArrays gRenderArr; // size: 0x5280, address: 0x533950 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +unsigned int g_hash_bossanim[78]; // size: 0x138, address: 0x5DE220 +signed int fudgeCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x372A60 +signed int spinCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x372B60 +signed int spawnCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x372E10 +signed int freezeCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x372EF0 +signed int smackCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x372FB0 +signed int runCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x373070 +signed int spitCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x373130 +signed int hitCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x373210 +signed int tauntCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x373300 +signed int idleCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x3733D0 +signed int BoundEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x377E90 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +char * g_strz_bossanim[78]; // size: 0x138, address: 0x4E0580 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossPatSpin; // size: 0x34, address: 0x50DC20 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatSpawn; // size: 0x34, address: 0x50DC60 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossPatFreeze; // size: 0x34, address: 0x50DCA0 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatSmack; // size: 0x34, address: 0x50DCE0 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__18zNPCGoalBossPatRun; // size: 0x34, address: 0x50DD20 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossPatSpit; // size: 0x34, address: 0x50DD60 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__18zNPCGoalBossPatHit; // size: 0x34, address: 0x50DDA0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossPatTaunt; // size: 0x34, address: 0x50DDE0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossPatIdle; // size: 0x34, address: 0x50DE20 +struct /* @anon7 */ { + // total size: 0xD8 +} __vt__12zNPCBPatrick; // size: 0xD8, address: 0x50DE60 +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class tagiRenderArrays { + // total size: 0x5280 +public: + unsigned short m_index[960]; // offset 0x0, size 0x780 + class RxObjSpace3DVertex m_vertex[480]; // offset 0x780, size 0x4380 + float m_vertexTZ[480]; // offset 0x4B00, size 0x780 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zNPCGoalBossPatSpin : public zNPCGoalCommon { + // total size: 0xA0 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float numGlobs; // offset 0x54, size 0x4 + class xVec3 vel; // offset 0x58, size 0xC + class xVec3 pole[4]; // offset 0x64, size 0x30 + signed int currPole; // offset 0x94, size 0x4 + unsigned int spinSndID; // offset 0x98, size 0x4 + unsigned int globSndID; // offset 0x9C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zNPCBPatrick : public zNPCBoss { + // total size: 0x19A0 +public: + unsigned int bossFlags; // offset 0x2B4, size 0x4 + signed int hitPoints; // offset 0x2B8, size 0x4 + signed int round; // offset 0x2BC, size 0x4 + float gooHeight; // offset 0x2C0, size 0x4 + signed int gooLevel; // offset 0x2C4, size 0x4 + signed int notSwingingLastFrame; // offset 0x2C8, size 0x4 + class xEnt * gooObj; // offset 0x2CC, size 0x4 + class RpAtomic * spitModel; // offset 0x2D0, size 0x4 + class RpAtomic * splatModel; // offset 0x2D4, size 0x4 + class xVec3 arenaExtent; // offset 0x2D8, size 0xC + class xVec3 fudgePos; // offset 0x2E4, size 0xC + class xVec3 fudgeFace; // offset 0x2F0, size 0xC + signed int numTasks; // offset 0x2FC, size 0x4 + signed int currTask; // offset 0x300, size 0x4 + signed int task[20]; // offset 0x304, size 0x50 + class bossPatGlob glob[50]; // offset 0x354, size 0x1068 + signed int currGlob; // offset 0x13BC, size 0x4 + float splatTimer; // offset 0x13C0, size 0x4 + class xEnt * * boundList; // offset 0x13C4, size 0x4 + unsigned int chuckFlags[3]; // offset 0x13C8, size 0xC + class zNPCCommon * chuckList[3]; // offset 0x13D4, size 0xC + class zMovePoint * chuckMovePoint[3]; // offset 0x13E0, size 0xC + class xParEmitterCustomSettings freezeBreathSetting; // offset 0x13EC, size 0x16C + class zParEmitter * freezeBreathEmitter; // offset 0x1558, size 0x4 + class xPar * parList[4]; // offset 0x155C, size 0x10 + class xPar * lastEmitted; // offset 0x156C, size 0x4 + signed int numParticles; // offset 0x1570, size 0x4 + float particleTimer; // offset 0x1574, size 0x4 + float frozenTimer; // offset 0x1578, size 0x4 + class xAnimState * animState; // offset 0x157C, size 0x4 + class xAnimTransitionList * animTranList; // offset 0x1580, size 0x4 + class xEnt * fudgeHandle; // offset 0x1584, size 0x4 + class zParEmitter * fudgeEmitter; // offset 0x1588, size 0x4 + class zParEmitter * steamEmitter; // offset 0x158C, size 0x4 + class bossPatBox box[8][3]; // offset 0x1590, size 0x1E0 + class bossPatBox backBox; // offset 0x1770, size 0x14 + class zShrapnelAsset * boxBreak; // offset 0x1784, size 0x4 + class zShrapnelAsset * boxSplash; // offset 0x1788, size 0x4 + float boxLandSndTimer; // offset 0x178C, size 0x4 + float boxSplashSndTimer; // offset 0x1790, size 0x4 + class xEnt * swinger[8]; // offset 0x1794, size 0x20 + signed int currSwinger; // offset 0x17B4, size 0x4 + float origSwingerHeight; // offset 0x17B8, size 0x4 + float swingTimer; // offset 0x17BC, size 0x4 + class xModelInstance * frozenSB; // offset 0x17C0, size 0x4 + class xModelInstance * frozenSBIce; // offset 0x17C4, size 0x4 + class RpAtomic * shardModel; // offset 0x17C8, size 0x4 + class bossPatShard shard[10]; // offset 0x17CC, size 0xF0 + float iceScale; // offset 0x18BC, size 0x4 + float shakeAmp; // offset 0x18C0, size 0x4 + float shakePhase; // offset 0x18C4, size 0x4 + class zShrapnelAsset * iceBreak; // offset 0x18C8, size 0x4 + class RwRaster * iceWaveRaster; // offset 0x18CC, size 0x4 + class zCutsceneMgr * round1Csn; // offset 0x18D0, size 0x4 + class zCutsceneMgr * round2Csn; // offset 0x18D4, size 0x4 + class zCutsceneMgr * round3Csn; // offset 0x18D8, size 0x4 + float csnTimer; // offset 0x18DC, size 0x4 + class _zPortal * safeGroundPortal; // offset 0x18E0, size 0x4 + class zNPCNewsFish * newsfish; // offset 0x18E4, size 0x4 + unsigned int nfFlags; // offset 0x18E8, size 0x4 + float badHitTimer; // offset 0x18EC, size 0x4 + signed int numPCHitsInARow; // offset 0x18F0, size 0x4 + signed int numMissesInARow; // offset 0x18F4, size 0x4 + signed int firstTimeR1Csn; // offset 0x18F8, size 0x4 + signed int firstUpdate; // offset 0x18FC, size 0x4 + class zEntPickup * underwear[2]; // offset 0x1900, size 0x8 + class zPlatform * conveyorBelt[7]; // offset 0x1908, size 0x1C + class xBinaryCamera bossCam; // offset 0x1930, size 0x70 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class zNPCGoalBossPatTaunt : public zNPCGoalCommon { + // total size: 0x54 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class bossPatBox { + // total size: 0x14 +public: + class xEnt * box; // offset 0x0, size 0x4 + float velocity; // offset 0x4, size 0x4 + float pos; // offset 0x8, size 0x4 + float minY; // offset 0xC, size 0x4 + unsigned int flags; // offset 0x10, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xPlatformConvBeltData { + // total size: 0x4 +public: + float speed; // offset 0x0, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zNPCGoalBossPatHit : public zNPCGoalCommon { + // total size: 0x54 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zNPCNewsFish : public zNPCVillager { + // total size: 0x530 +public: + class say_data said[71]; // offset 0x2B0, size 0x238 + unsigned char was_reset; // offset 0x4E8, size 0x1 + unsigned int soundHandle; // offset 0x4EC, size 0x4 + unsigned int currSoundID; // offset 0x4F0, size 0x4 + unsigned int nextSoundID; // offset 0x4F4, size 0x4 + float jawTime; // offset 0x4F8, size 0x4 + void * jawData; // offset 0x4FC, size 0x4 + unsigned int newsfishFlags; // offset 0x500, size 0x4 + class xVec2 onScreenCoords; // offset 0x504, size 0x8 + class xVec2 offScreenCoords; // offset 0x50C, size 0x8 + class xVec2 screenCoords; // offset 0x514, size 0x8 + float screenSize; // offset 0x51C, size 0x4 + float screenRot; // offset 0x520, size 0x4 + float appearSpeed; // offset 0x524, size 0x4 + float disappearSpeed; // offset 0x528, size 0x4 + float screenLerp; // offset 0x52C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zNPCGoalBossPatIdle : public zNPCGoalCommon { + // total size: 0x54 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zNPCGoalBossPatSpawn : public zNPCGoalCommon { + // total size: 0x54 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class zNPCGoalBossPatFreeze : public zNPCGoalCommon { + // total size: 0x58 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float freezeSlope; // offset 0x54, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class zNPCGoalBossPatSmack : public zNPCGoalCommon { + // total size: 0x58 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float globNum; // offset 0x54, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xPlatformFMData { + // total size: 0x4 +public: + signed int nothingyet; // offset 0x0, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xPlatformFallingData { + // total size: 0x8 +public: + float speed; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class say_data { + // total size: 0x8 +public: + signed int total; // offset 0x0, size 0x4 + signed int prev_total; // offset 0x4, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class newsfishSound { + // total size: 0x8 +public: + char * soundName; // offset 0x0, size 0x4 + unsigned int soundID; // offset 0x4, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class bossPatShard { + // total size: 0x18 +public: + class xVec3 rotVec; // offset 0x0, size 0xC + float ang; // offset 0xC, size 0x4 + float size; // offset 0x10, size 0x4 + float maxSize; // offset 0x14, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zNPCVillager : public zNPCCommon { + // total size: 0x2B0 +public: + class HiThere hithere; // offset 0x2A0, size 0x8 + class ztaskbox * converse; // offset 0x2A8, size 0x4 + signed int current_talk_anim; // offset 0x2AC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RyzMemData { + // total size: 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPlatformFRData { + // total size: 0x10 +public: + float fspeed; // offset 0x0, size 0x4 + float rspeed; // offset 0x4, size 0x4 + float ret_delay; // offset 0x8, size 0x4 + float post_ret_delay; // offset 0xC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum en_SM_NOTICES { + SM_NOTE_NPCDIED = 0, + SM_NOTE_NPCSTANDBY = 1, + SM_NOTE_NPCALIVE = 2, + SM_NOTE_DUPPAUSE = 3, + SM_NOTE_DUPRESUME = 4, + SM_NOTE_DUPSETDELAY = 5, + SM_NOTE_DUPDEAD = 6, + SM_NOTE_KILLKIDS = 7, + SM_NOTE_NOMORE = 8, + SM_NOTE_FORCE = 2147483647, +}; +class zNPCGoalBossPatSpit : public zNPCGoalCommon { + // total size: 0x58 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float timeLeftToSpit; // offset 0x54, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +class xPlatformAsset { + // total size: 0x3C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char pad; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xPlatformERData er; // offset 0x4, size 0x4 + class xPlatformOrbitData orb; // offset 0x4, size 0x4 + class xPlatformSplineData spl; // offset 0x4, size 0x4 + class xPlatformMPData mp; // offset 0x4, size 0x4 + class xPlatformMechData mech; // offset 0x4, size 0x4 + class xPlatformPenData pen; // offset 0x4, size 0x4 + class xPlatformConvBeltData cb; // offset 0x4, size 0x4 + class xPlatformFallingData fall; // offset 0x4, size 0x8 + class xPlatformFRData fr; // offset 0x4, size 0x10 + class xPlatformBreakawayData ba; // offset 0x4, size 0x10 + class xPlatformSpringboardData sb; // offset 0x4, size 0x2C + class xPlatformTeeterData teet; // offset 0x4, size 0xC + class xPlatformPaddleData paddle; // offset 0x4, size 0x38 + class xPlatformFMData fm; // offset 0x4, size 0x4 + }; +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class asset_type { + // total size: 0x0 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class callback { + // total size: 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class bossPatGlob { + // total size: 0x54 +public: + class xParabola path; // offset 0x0, size 0x24 + float t; // offset 0x24, size 0x4 + class xVec3 lastPos; // offset 0x28, size 0xC + class xVec3 norm; // offset 0x34, size 0xC + class xVec3 convVel; // offset 0x40, size 0xC + class zPlatform * conv; // offset 0x4C, size 0x4 + unsigned int flags; // offset 0x50, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xPlatformBreakawayData { + // total size: 0x10 +public: + float ba_delay; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 + float reset_delay; // offset 0x8, size 0x4 + unsigned int breakflags; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xPlatformERData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class zAssetPickup { + // total size: 0x0 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +struct /* @anon7 */ { + // total size: 0xD8 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xPlatformOrbitData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zNPCGoalBossPatRun : public zNPCGoalCommon { + // total size: 0x58 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + unsigned int runSndID; // offset 0x54, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xPlatformSpringboardData { + // total size: 0x2C +public: + float jmph[3]; // offset 0x0, size 0xC + float jmpbounce; // offset 0xC, size 0x4 + unsigned int animID[3]; // offset 0x10, size 0xC + class xVec3 jmpdir; // offset 0x1C, size 0xC + unsigned int springflags; // offset 0x28, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zNPCGoalBossPatFudge : public zNPCGoalCommon { + // total size: 0x60 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float lerp; // offset 0x54, size 0x4 + float globNum; // offset 0x58, size 0x4 + unsigned int vomitSndID; // offset 0x5C, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class xPlatformSplineData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class zEntPickup : public zEnt { + // total size: 0x268 +public: + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + unsigned int state; // offset 0x16C, size 0x4 + class zAssetPickup * p; // offset 0x170, size 0x4 + void * anim; // offset 0x174, size 0x4 + float animTime; // offset 0x178, size 0x4 + float timer; // offset 0x17C, size 0x4 + float shake_timer; // offset 0x180, size 0x4 + class xVec3 shake_pos; // offset 0x184, size 0xC + signed int snackGateInfoDisplayed; // offset 0x190, size 0x4 + float fx_timer; // offset 0x194, size 0x4 + class xPar * fx_par; // offset 0x198, size 0x4 + class zParEmitter * fx_emit; // offset 0x19C, size 0x4 + float fx_scale; // offset 0x1A0, size 0x4 + class xVec3 grab_pos; // offset 0x1A4, size 0xC + unsigned int flyflags; // offset 0x1B0, size 0x4 + signed int flg_opts; // offset 0x1B4, size 0x4 + class xVec3 vel; // offset 0x1B8, size 0xC + class xVec3 droppos; // offset 0x1C4, size 0xC + class xBase * followTarget; // offset 0x1D0, size 0x4 + class xVec3 followOffset; // offset 0x1D4, size 0xC + class xBase * dropParent; // offset 0x1E0, size 0x4 + class xEnt * useThisEntPos; // offset 0x1E4, size 0x4 + class xEntDrive drv; // offset 0x1E8, size 0x7C + unsigned short pickupFlags; // offset 0x264, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class HiThere : public callback { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xPlatformTeeterData { + // total size: 0xC +public: + float itilt; // offset 0x0, size 0x4 + float maxtilt; // offset 0x4, size 0x4 + float invmass; // offset 0x8, size 0x4 +}; +class xPlatformMPData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class xPlatformMechData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class anim_coll_data { + // total size: 0x0 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xPlatformPaddleData { + // total size: 0x38 +public: + signed int startOrient; // offset 0x0, size 0x4 + signed int countOrient; // offset 0x4, size 0x4 + float orientLoop; // offset 0x8, size 0x4 + float orient[6]; // offset 0xC, size 0x18 + unsigned int paddleFlags; // offset 0x24, size 0x4 + float rotateSpeed; // offset 0x28, size 0x4 + float accelTime; // offset 0x2C, size 0x4 + float decelTime; // offset 0x30, size 0x4 + float hubRadius; // offset 0x34, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xPlatformPenData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E640 -> 0x0036F208 +*/ +// Range: 0x36E640 -> 0x36F208 +signed int Process(class zNPCGoalBossPatFudge * this /* r17 */, enum en_trantype * trantype /* r29+0xBC */, float dt /* r20 */, void * updCtxt /* r29+0xB8 */, class xScene * xscn /* r29+0xB4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36E640 -> 0x36F208 + class zNPCBPatrick * pat; // r16 + signed int turning; // r2 + signed int turning; // r2 + float anim; // r29+0x13C + signed int i; // r21 + signed int numGlobs; // r20 + class xVec3 offset; // r29+0x130 + class xVec3 lipL; // r29+0x120 + class xVec3 lipU; // r29+0x110 + class xCollis colls; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036F210 -> 0x0036F288 +*/ +// Range: 0x36F210 -> 0x36F288 +signed int Enter(class zNPCGoalBossPatFudge * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36F210 -> 0x36F288 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036F290 -> 0x0036F2C0 +*/ +// Range: 0x36F290 -> 0x36F2C0 +signed int Exit(class zNPCGoalBossPatSpin * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36F290 -> 0x36F2C0 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036F2C0 -> 0x003706DC +*/ +// Range: 0x36F2C0 -> 0x3706DC +signed int Process(class zNPCGoalBossPatSpin * this /* r17 */, enum en_trantype * trantype /* r29+0xCC */, float dt /* r24 */, void * updCtxt /* r29+0xC8 */, class xScene * xscn /* r29+0xC4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36F2C0 -> 0x3706DC + class zNPCBPatrick * pat; // r16 + class xVec3 awayFromPlayer; // r29+0x190 + class xVec3 offset; // r29+0x180 + class xVec3 center; // r29+0x170 + class xVec3 cone; // r29+0x160 + class xVec3 back; // r29+0x150 + float passedPole; // r23 + float ang; // r29+0x1A0 + class xMat3x3 rotMat; // r29+0x120 + class xCollis colls; // r29+0xD0 + signed int turning; // r18 + unsigned int picker; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003706E0 -> 0x00370B58 +*/ +// Range: 0x3706E0 -> 0x370B58 +signed int Enter(class zNPCGoalBossPatSpin * this /* r20 */, float dt /* r22 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3706E0 -> 0x370B58 + class zNPCBPatrick * pat; // r18 + class xVec3 offset; // r29+0xA0 + class xVec3 back; // r29+0x90 + class xVec3 center; // r29+0x80 + class xVec3 cone; // r29+0x70 + float param1; // r29+0xB0 + float param2; // r1 + float det; // r1 + signed int i; // r17 + float a; // r8 + float b; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00370B60 -> 0x00370D40 +*/ +// Range: 0x370B60 -> 0x370D40 +signed int Process(class zNPCGoalBossPatSpawn * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x370B60 -> 0x370D40 + signed int i; // r4 + class zNPCBPatrick * pat; // r17 + float animTime; // r1 + class xVec3 offset; // r29+0x90 + class xVec3 spawnPos; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00370D40 -> 0x00370DA4 +*/ +// Range: 0x370D40 -> 0x370DA4 +signed int Enter(class zNPCGoalBossPatSpawn * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x370D40 -> 0x370DA4 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00370DB0 -> 0x0037108C +*/ +// Range: 0x370DB0 -> 0x37108C +signed int Process(class zNPCGoalBossPatFreeze * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x370DB0 -> 0x37108C + class zNPCBPatrick * pat; // r17 + signed int playFreeze; // r16 + class xVec3 offset; // r29+0xC0 + class xVec3 lip; // r29+0xB0 + class xVec3 pos; // r29+0xA0 + class xVec3 vel; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371090 -> 0x0037115C +*/ +// Range: 0x371090 -> 0x37115C +signed int Enter(class zNPCGoalBossPatFreeze * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x371090 -> 0x37115C + class zNPCBPatrick * pat; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371160 -> 0x00371198 +*/ +// Range: 0x371160 -> 0x371198 +void StopFreezeBreath() { + // Blocks + /* anonymous block */ { + // Range: 0x371160 -> 0x371198 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003711A0 -> 0x003712F8 +*/ +// Range: 0x3711A0 -> 0x3712F8 +void EmitFreezeBreath(class xVec3 * pos /* r2 */, class xVec3 * vel /* r2 */, float dt /* r29+0x30 */, float elapsed /* r21 */, float total /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3711A0 -> 0x3712F8 + float x; // r3 + float z; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371300 -> 0x00371320 +*/ +// Range: 0x371300 -> 0x371320 +void StartFreezeBreath() { + // Blocks + /* anonymous block */ { + // Range: 0x371300 -> 0x371320 + class zNPCBPatrick * pat; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371320 -> 0x00371844 +*/ +// Range: 0x371320 -> 0x371844 +signed int Process(class zNPCGoalBossPatSmack * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r22 */, class xScene * xscn /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x371320 -> 0x371844 + signed int i; // r19 + class zNPCBPatrick * pat; // r18 + signed int playSmack; // r16 + class xVec3 offset; // r29+0x110 + class xVec3 cone; // r29+0x100 + signed int numGlobs; // r17 + class xCollis colls; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371850 -> 0x003718BC +*/ +// Range: 0x371850 -> 0x3718BC +signed int Enter(class zNPCGoalBossPatSmack * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x371850 -> 0x3718BC + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003718C0 -> 0x003718F0 +*/ +// Range: 0x3718C0 -> 0x3718F0 +signed int Exit(class zNPCGoalBossPatRun * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3718C0 -> 0x3718F0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003718F0 -> 0x00371968 +*/ +// Range: 0x3718F0 -> 0x371968 +signed int Process(class zNPCGoalBossPatRun * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3718F0 -> 0x371968 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371970 -> 0x00371A24 +*/ +// Range: 0x371970 -> 0x371A24 +signed int Enter(class zNPCGoalBossPatRun * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x371970 -> 0x371A24 + class zNPCBPatrick * pat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00371A30 -> 0x003720B4 +*/ +// Range: 0x371A30 -> 0x3720B4 +signed int Process(class zNPCGoalBossPatSpit * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x371A30 -> 0x3720B4 + class zNPCBPatrick * pat; // r17 + float leadTime; // r21 + class xVec3 futurePos; // r29+0x130 + class xVec3 offset; // r29+0x120 + class xVec3 upperLip; // r29+0x110 + class xVec3 lowerLip; // r29+0x100 + class xVec3 lowerLipRight; // r29+0xF0 + class xCollis colls; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003720C0 -> 0x00372134 +*/ +// Range: 0x3720C0 -> 0x372134 +signed int Enter(class zNPCGoalBossPatSpit * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3720C0 -> 0x372134 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372140 -> 0x003721C0 +*/ +// Range: 0x372140 -> 0x3721C0 +signed int Exit(class zNPCGoalBossPatHit * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372140 -> 0x3721C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003721C0 -> 0x00372260 +*/ +// Range: 0x3721C0 -> 0x372260 +signed int Process(class zNPCGoalBossPatHit * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3721C0 -> 0x372260 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372260 -> 0x00372424 +*/ +// Range: 0x372260 -> 0x372424 +signed int Enter(class zNPCGoalBossPatHit * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372260 -> 0x372424 + class zNPCBPatrick * pat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372430 -> 0x003724D0 +*/ +// Range: 0x372430 -> 0x3724D0 +signed int Process(class zNPCGoalBossPatTaunt * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372430 -> 0x3724D0 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003724D0 -> 0x00372724 +*/ +// Range: 0x3724D0 -> 0x372724 +signed int Enter(class zNPCGoalBossPatTaunt * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3724D0 -> 0x372724 + class zNPCBPatrick * pat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372730 -> 0x003727D0 +*/ +// Range: 0x372730 -> 0x3727D0 +signed int Process(class zNPCGoalBossPatIdle * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372730 -> 0x3727D0 + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003727D0 -> 0x0037283C +*/ +// Range: 0x3727D0 -> 0x37283C +signed int Enter(class zNPCGoalBossPatIdle * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3727D0 -> 0x37283C + class zNPCBPatrick * pat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372840 -> 0x00372A54 +*/ +// Range: 0x372840 -> 0x372A54 +static signed int Pat_FaceTarget(class zNPCBPatrick * pat /* r17 */, class xVec3 * target /* r2 */, float turn_rate /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372840 -> 0x372A54 + signed int retval; // r16 + class xVec3 newAt; // r29+0x40 + float currRot; // r22 + float desireRot; // r20 + float diffRot; // r2 + float deltaRot; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372A60 -> 0x00372B60 +*/ +// Range: 0x372A60 -> 0x372B60 +static signed int fudgeCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372A60 -> 0x372B60 + class zNPCGoalBossPatFudge * fudge; // r18 + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372B60 -> 0x00372E10 +*/ +// Range: 0x372B60 -> 0x372E10 +static signed int spinCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372B60 -> 0x372E10 + class zNPCGoalBossPatSpin * spin; // r19 + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + unsigned int picker; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372E10 -> 0x00372EE8 +*/ +// Range: 0x372E10 -> 0x372EE8 +static signed int spawnCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372E10 -> 0x372EE8 + class zNPCGoalBossPatSpawn * spawn; // r19 + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372EF0 -> 0x00372FAC +*/ +// Range: 0x372EF0 -> 0x372FAC +static signed int freezeCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372EF0 -> 0x372FAC + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00372FB0 -> 0x0037306C +*/ +// Range: 0x372FB0 -> 0x37306C +static signed int smackCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x372FB0 -> 0x37306C + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373070 -> 0x0037312C +*/ +// Range: 0x373070 -> 0x37312C +static signed int runCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373070 -> 0x37312C + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373130 -> 0x00373210 +*/ +// Range: 0x373130 -> 0x373210 +static signed int spitCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373130 -> 0x373210 + class zNPCGoalBossPatSpit * spit; // r19 + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373210 -> 0x003732F4 +*/ +// Range: 0x373210 -> 0x3732F4 +static signed int hitCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373210 -> 0x3732F4 + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373300 -> 0x003733CC +*/ +// Range: 0x373300 -> 0x3733CC +static signed int tauntCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373300 -> 0x3733CC + class zNPCBPatrick * pat; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003733D0 -> 0x00373494 +*/ +// Range: 0x3733D0 -> 0x373494 +static signed int idleCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3733D0 -> 0x373494 + class zNPCGoalBossPatIdle * idle; // r16 + class zNPCBPatrick * pat; // r2 + signed int nextgoal; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003734A0 -> 0x003737B0 +*/ +// Range: 0x3734A0 -> 0x3737B0 +void bossPatBoxUpdate(class zNPCBPatrick * this /* r17 */, class bossPatBox * bx /* r16 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3734A0 -> 0x3737B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003737B0 -> 0x003739F8 +*/ +// Range: 0x3737B0 -> 0x3739F8 +void ParabolaHitsConveyors(class zNPCBPatrick * this /* r2 */, class xParabola * path /* r2 */, class xCollis * colls /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3737B0 -> 0x3739F8 + signed int i; // r13 + signed int j; // r12 + class xMat4x3 * mat; // r11 + class xVec3 * lower; // r10 + class xVec3 * upper; // r9 + float a; // r10 + float b; // r9 + float det; // r4 + float t[2]; // r29+0x18 + float dispX; // r11 + float dispZ; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373A00 -> 0x00373C28 +*/ +// Range: 0x373A00 -> 0x373C28 +void hiddenByCutscene(class zNPCBPatrick * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373A00 -> 0x373C28 + signed int i; // r17 + class bossPatBox * bx; // r2 + class bossPatBox * bx; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373C30 -> 0x00373DF0 +*/ +// Range: 0x373C30 -> 0x373DF0 +void gotoRound(class zNPCBPatrick * this /* r16 */, signed int num /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373C30 -> 0x373DF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373DF0 -> 0x00373E30 +*/ +// Range: 0x373DF0 -> 0x373E30 +unsigned int canSpawnChucks(class zNPCBPatrick * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373DF0 -> 0x373E30 + unsigned int result; // r2 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00373E30 -> 0x003740C8 +*/ +// Range: 0x373E30 -> 0x3740C8 +void playSplat(class zNPCBPatrick * this /* r2 */, class xVec3 * pos /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x373E30 -> 0x3740C8 + float picker; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003740D0 -> 0x003742F4 +*/ +// Range: 0x3740D0 -> 0x3742F4 +signed int nextGoal(class zNPCBPatrick * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3740D0 -> 0x3742F4 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00374300 -> 0x00374430 +*/ +// Range: 0x374300 -> 0x374430 +void NewTime(class zNPCBPatrick * this /* r22 */, class xScene * xscn /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x374300 -> 0x374430 + signed int i; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00374430 -> 0x003744AC +*/ +// Range: 0x374430 -> 0x3744AC +void RenderExtra(class zNPCBPatrick * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x374430 -> 0x3744AC + enum _SDRenderState oldState; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003744B0 -> 0x00374794 +*/ +// Range: 0x3744B0 -> 0x374794 +void RenderFrozenPlayer(class zNPCBPatrick * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3744B0 -> 0x374794 + class xMat4x3 globMat; // r29+0xB0 + signed int i; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003747A0 -> 0x00374D54 +*/ +// Range: 0x3747A0 -> 0x374D54 +void RenderGlobs(class zNPCBPatrick * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3747A0 -> 0x374D54 + class xMat4x3 globMat; // r29+0xB0 + signed int i; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00374D60 -> 0x00374DAC +*/ +// Range: 0x374D60 -> 0x374DAC +void zNPCBPatrick_GameIsPaused() { + // Blocks + /* anonymous block */ { + // Range: 0x374D60 -> 0x374DAC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00374DB0 -> 0x00374E98 +*/ +// Range: 0x374DB0 -> 0x374E98 +void zNPCBPatrick_AddBoundEntsToGrid() { + // Blocks + /* anonymous block */ { + // Range: 0x374DB0 -> 0x374E98 + signed int i; // r17 + class xEnt * ent; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00374EA0 -> 0x003750D8 +*/ +// Range: 0x374EA0 -> 0x3750D8 +void Damage(class zNPCBPatrick * this /* r16 */, enum en_NPC_DAMAGE_TYPE dmg_type /* r2 */, class xVec3 * vec_hit /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x374EA0 -> 0x3750D8 + class xVec3 toHit; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003750E0 -> 0x00375120 +*/ +// Range: 0x3750E0 -> 0x375120 +void DuploNotice(class zNPCBPatrick * this /* r2 */, enum en_SM_NOTICES note /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3750E0 -> 0x375120 + class zNPCCommon * npc; // r2 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00375120 -> 0x00376E60 +*/ +// Range: 0x375120 -> 0x376E60 +void Process(class zNPCBPatrick * this /* r16 */, class xScene * xscn /* r29+0xEC */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x375120 -> 0x376E60 + signed int i; // r5 + signed int j; // r21 + signed int csn; // r17 + float fudgeRate; // r1 + float * swingY; // r4 + signed int shouldPlayIt; // r3 + float finalHeight; // r2 + class xModelInstance * tempModel; // r19 + float maxDist; // r28 + float numSnowflakes; // r27 + float currSize; // r26 + class xVec3 snowDir; // r29+0x170 + class xVec3 snowPos; // r29+0x160 + signed int numSamples; // r20 + float interp; // r25 + signed int numToEmit; // r19 + float theta; // r21 + float moveSplat; // r20 + float timeTillEnd; // r1 + class xCollis colls; // r29+0xF0 + unsigned int doDamage; // r20 + class xVec3 knockback; // r29+0x150 + signed int touchDamage; // r19 + class xCollis * coll; // r6 + class xCollis * cend; // r5 + class xVec3 bubbleVel; // r29+0x140 + unsigned int picker; // r2 + signed int num; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00376E60 -> 0x00377060 +*/ +// Range: 0x376E60 -> 0x377060 +unsigned int AnimPick(signed int gid /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x376E60 -> 0x377060 + signed int index; // r3 + unsigned int animID; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00377060 -> 0x003770B8 +*/ +// Range: 0x377060 -> 0x3770B8 +void Destroy(class zNPCBPatrick * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x377060 -> 0x3770B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003770C0 -> 0x003772D0 +*/ +// Range: 0x3770C0 -> 0x3772D0 +void Reset(class zNPCBPatrick * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3770C0 -> 0x3772D0 + signed int i; // r5 + class bossPatBox * bx; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003772D0 -> 0x003774E0 +*/ +// Range: 0x3772D0 -> 0x3774E0 +void SelfSetup(class zNPCBPatrick * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3772D0 -> 0x3774E0 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003774E0 -> 0x00377C40 +*/ +// Range: 0x3774E0 -> 0x377C40 +void Setup(class zNPCBPatrick * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3774E0 -> 0x377C40 + char tempString[32]; // r29+0xA0 + signed int i; // r18 + signed int j; // r20 + class RpAtomic * tempIModel; // r2 + class xMarkerAsset * marker; // r2 + char objName[32]; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00377C40 -> 0x00377E8C +*/ +// Range: 0x377C40 -> 0x377E8C +void Init(class zNPCBPatrick * this /* r21 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x377C40 -> 0x377E8C + signed int i; // r20 + class xEnt * ent; // r19 + class RwTexture * tempTexture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00377E90 -> 0x00377E98 +*/ +// Range: 0x377E90 -> 0x377E98 +static signed int BoundEventCB() { + // Blocks + /* anonymous block */ { + // Range: 0x377E90 -> 0x377E98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00377EA0 -> 0x0037804C +*/ +// Range: 0x377EA0 -> 0x37804C +static void GetBonePos(class xVec3 * result /* r17 */, class xMat4x3 * matArray /* r3 */, signed int index /* r2 */, class xVec3 * offset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x377EA0 -> 0x37804C + class xMat4x3 tmpMat; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00378050 -> 0x0037815C +*/ +// Range: 0x378050 -> 0x37815C +static void UpdatePatrickBossCam(class zNPCBPatrick * pat /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x378050 -> 0x37815C + signed int needToCallStart; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPatrick.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00378160 -> 0x00378830 +*/ +// Range: 0x378160 -> 0x378830 +class xAnimTable * ZNPC_AnimTable_BossPatrick() { + // Blocks + /* anonymous block */ { + // Range: 0x378160 -> 0x378830 + class xAnimTable * table; // r16 + signed int ourAnims[23]; // r29+0x40 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBossPlankton.cpp b/dwarf/SB/Game/zNPCTypeBossPlankton.cpp new file mode 100644 index 000000000..af065138b --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBossPlankton.cpp @@ -0,0 +1,6030 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * sound_asset_names[6][10]; // size: 0xF0, address: 0x5E4E90 +static unsigned int sound_asset_ids[6][10]; // size: 0xF0, address: 0x5E4F80 +static unsigned int sound_asset_names_size[6]; // size: 0x18, address: 0x5E5070 +static class sound_data_type sound_data[6]; // size: 0x60, address: 0x5E5090 +static class sound_asset sound_assets[29]; // size: 0x1D0, address: 0x5046F0 +static class tweak_group tweak; // size: 0x300, address: 0x5E50F0 +static class curve_node beam_ring_curve[2]; // size: 0x18, address: 0x5048C0 +static class curve_node beam_glow_curve[3]; // size: 0x24, address: 0x5048E0 +static class effect_data beam_launch_effect[2]; // size: 0x30, address: 0x4E0E60 +static class effect_data beam_head_effect[1]; // size: 0x18, address: 0x4E0E90 +static class effect_data beam_impact_effect[3]; // size: 0x48, address: 0x4E0EB0 +static class effect_data beam_death_effect[1]; // size: 0x18, address: 0x5E53F0 +static class effect_data beam_kill_effect[1]; // size: 0x18, address: 0x4E0F00 +static enum say_enum say_intro[2]; // size: 0x8, address: 0x504908 +static enum say_enum say_fuse_near[4]; // size: 0x10, address: 0x504910 +static enum say_enum say_fuse_hit[3]; // size: 0xC, address: 0x504920 +static enum say_enum say_hit_boss_1[6]; // size: 0x18, address: 0x504930 +static enum say_enum say_hit_boss_2[3]; // size: 0xC, address: 0x504948 +static enum say_enum say_hit_boss_3[6]; // size: 0x18, address: 0x504960 +static enum say_enum say_hit_boss_4[1]; // size: 0x4, address: 0x504978 +static enum say_enum say_hit_player[6]; // size: 0x18, address: 0x504980 +static class /* @class */ { + // total size: 0x8 +public: + enum say_enum * say; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +} say_set[8]; // size: 0x40, address: 0x5049A0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonBomb; // size: 0x34, address: 0x50D740 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon1 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__23zNPCGoalBPlanktonMissle; // size: 0x34, address: 0x50D780 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonWall; // size: 0x34, address: 0x50D7C0 +unsigned int g_hash_bossanim[78]; // size: 0x138, address: 0x5DE220 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonBeam; // size: 0x34, address: 0x50D800 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__22zNPCGoalBPlanktonDizzy; // size: 0x34, address: 0x50D840 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonFall; // size: 0x34, address: 0x50D880 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonStun; // size: 0x34, address: 0x50D8C0 +struct /* @anon20 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonMove; // size: 0x34, address: 0x50D900 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__22zNPCGoalBPlanktonTaunt; // size: 0x34, address: 0x50D940 +struct /* @anon15 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonHunt; // size: 0x34, address: 0x50D980 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__22zNPCGoalBPlanktonEvade; // size: 0x34, address: 0x50D9C0 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__22zNPCGoalBPlanktonFlank; // size: 0x34, address: 0x50DA00 +struct /* @anon19 */ { + // total size: 0x34 +} __vt__23zNPCGoalBPlanktonAmbush; // size: 0x34, address: 0x50DA40 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__23zNPCGoalBPlanktonAttack; // size: 0x34, address: 0x50DA80 +struct /* @anon16 */ { + // total size: 0x34 +} __vt__21zNPCGoalBPlanktonIdle; // size: 0x34, address: 0x50DAC0 +void kill_beam_fly_sound(class bolt &, void *); // size: 0x0, address: 0x36E2D0 +void play_beam_hit_sound(class bolt &, void *); // size: 0x0, address: 0x36E0B0 +void play_beam_fly_sound(class bolt &, void *); // size: 0x0, address: 0x36E360 +void play_beam_fire_sound(class bolt &, void *); // size: 0x0, address: 0x36E1C0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +void aim_gun(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // size: 0x0, address: 0x366DB0 +struct /* @anon18 */ { + // total size: 0xD8 +} __vt__13zNPCBPlankton; // size: 0xD8, address: 0x50DB00 +struct /* @anon5 */ { + // total size: 0xD8 +} __vt__8zNPCBoss; // size: 0xD8, address: 0x50C4D0 +struct /* @anon2 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon17 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +char * g_strz_bossanim[78]; // size: 0x138, address: 0x4E0580 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class sound_property { + // total size: 0x18 +public: + unsigned int asset; // offset 0x0, size 0x4 + float volume; // offset 0x4, size 0x4 + float range_inner; // offset 0x8, size 0x4 + float range_outer; // offset 0xC, size 0x4 + float delay; // offset 0x10, size 0x4 + float fade_time; // offset 0x14, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zNPCBPlankton : public zNPCBoss { + // total size: 0x6B0 +public: + class /* @class */ { + // total size: 0x10 + public: + unsigned char updated; // offset 0x0, size 0x1 + unsigned char face_player; // offset 0x1, size 0x1 + unsigned char attacking; // offset 0x2, size 0x1 + unsigned char hunt; // offset 0x3, size 0x1 + unsigned char aim_gun; // offset 0x4, size 0x1 + enum move_enum move; // offset 0x8, size 0x4 + enum follow_enum follow; // offset 0xC, size 0x4 + } flag; // offset 0x2B4, size 0x10 + enum mode_enum mode; // offset 0x2C4, size 0x4 + float delay; // offset 0x2C8, size 0x4 + class xQuat gun_tilt; // offset 0x2D0, size 0x10 + float ambush_delay; // offset 0x2E0, size 0x4 + float beam_duration; // offset 0x2E4, size 0x4 + float stun_duration; // offset 0x2E8, size 0x4 + class xDecalEmitter beam_ring; // offset 0x2EC, size 0x68 + class xDecalEmitter beam_glow; // offset 0x354, size 0x68 + class xLaserBoltEmitter beam; // offset 0x3BC, size 0x94 + class xParEmitter * beam_charge; // offset 0x450, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + class xVec3 center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + } orbit; // offset 0x454, size 0x10 + class /* @class */ { + // total size: 0x14 + public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + } turn; // offset 0x464, size 0x14 + class move_info move; // offset 0x478, size 0x30 + class /* @class */ { + // total size: 0x8 + public: + float delay; // offset 0x0, size 0x4 + float max_delay; // offset 0x4, size 0x4 + } follow; // offset 0x4A8, size 0x8 + class /* @class */ { + // total size: 0x1 + public: + unsigned char moreFlags; // offset 0x0, size 0x1 + } old; // offset 0x4B0, size 0x1 + class zNPCBoss * crony; // offset 0x4B4, size 0x4 + class territory_data territory[8]; // offset 0x4B8, size 0x1E0 + signed int territory_size; // offset 0x698, size 0x4 + signed int active_territory; // offset 0x69C, size 0x4 + class zNPCNewsFish * newsfish; // offset 0x6A0, size 0x4 + unsigned int old_player_health; // offset 0x6A4, size 0x4 + unsigned char played_intro; // offset 0x6A8, size 0x1 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +enum fx_orient_enum { + FX_ORIENT_DEFAULT = 0, + FX_ORIENT_PATH = 1, + FX_ORIENT_IPATH = 2, + FX_ORIENT_HIT_NORM = 3, + FX_ORIENT_HIT_REFLECT = 4, + MAX_FX_ORIENT = 5, + FORCE_INT_FX_ORIENT = -1, +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class move_info { + // total size: 0x30 +public: + class xVec3 dest; // offset 0x0, size 0xC + class xVec3 vel; // offset 0xC, size 0xC + class xVec3 accel; // offset 0x18, size 0xC + class xVec3 max_vel; // offset 0x24, size 0xC +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum move_enum { + MOVE_NONE = 0, + MOVE_ACCEL = 1, + MOVE_STOP = 2, + MOVE_ORBIT = 3, +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class asset_type { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zNPCGoalBPlanktonAttack : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zNPCGoalBPlanktonFall : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zNPCGoalBPlanktonIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class callback { + // total size: 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class xVec3 center; // offset 0x0, size 0xC + class /* @class */ { + // total size: 0x8 + public: + float radius; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } attack; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float radius; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } safety; // offset 0x14, size 0x8 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class territory_data { + // total size: 0x3C +public: + class zMovePoint * origin; // offset 0x0, size 0x4 + class xEnt * platform; // offset 0x4, size 0x4 + class zEntDestructObj * fuse; // offset 0x8, size 0x4 + class xTimer * timer; // offset 0xC, size 0x4 + class zNPCCommon * crony[8]; // offset 0x10, size 0x20 + signed int crony_size; // offset 0x30, size 0x4 + unsigned char fuse_detected; // offset 0x34, size 0x1 + unsigned char fuse_destroyed; // offset 0x35, size 0x1 + float fuse_detect_time; // offset 0x38, size 0x4 +}; +class zNPCGoalBPlanktonMove : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class unit_data { + // total size: 0x50 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char curve_index; // offset 0x1, size 0x1 + unsigned char u; // offset 0x2, size 0x1 + unsigned char v; // offset 0x3, size 0x1 + float frac; // offset 0x4, size 0x4 + float age; // offset 0x8, size 0x4 + float cull_size; // offset 0xC, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +struct /* @anon1 */ { + // total size: 0x2C +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float delay; // offset 0x0, size 0x4 + float max_delay; // offset 0x4, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float radius; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +enum follow_enum { + FOLLOW_NONE = 0, + FOLLOW_PLAYER = 1, + FOLLOW_CAMERA = 2, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x14 +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float beam_interval; // offset 0x8, size 0x4 + float beam_duration; // offset 0xC, size 0x4 + float beam_dist; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xCC +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xDecalEmitter { + // total size: 0x68 +public: + class config cfg; // offset 0x0, size 0x28 + class /* @class */ { + // total size: 0x1C + public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 + } texture; // offset 0x28, size 0x1C + class static_queue units; // offset 0x44, size 0x14 + class curve_node * curve; // offset 0x58, size 0x4 + unsigned int curve_size; // offset 0x5C, size 0x4 + unsigned int curve_index; // offset 0x60, size 0x4 + float ilife; // offset 0x64, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class bolt { + // total size: 0x4C +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + class xVec3 loc; // offset 0x18, size 0xC + class xVec3 hit_norm; // offset 0x24, size 0xC + float dist; // offset 0x30, size 0x4 + float hit_dist; // offset 0x34, size 0x4 + float prev_dist; // offset 0x38, size 0x4 + float prev_check_dist; // offset 0x3C, size 0x4 + class xEnt * hit_ent; // offset 0x40, size 0x4 + float emitted; // offset 0x44, size 0x4 + void * context; // offset 0x48, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zNPCGoalBPlanktonAmbush : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum mode_enum { + MODE_BUDDY = 0, + MODE_HARASS = 1, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xLaserBoltEmitter { + // total size: 0x94 +public: + class config cfg; // offset 0x0, size 0x3C + class static_queue bolts; // offset 0x3C, size 0x14 + float ialpha; // offset 0x50, size 0x4 + class RwRaster * bolt_raster; // offset 0x54, size 0x4 + signed int start_collide; // offset 0x58, size 0x4 + class effect_data * fx[7]; // offset 0x5C, size 0x1C + unsigned int fxsize[7]; // offset 0x78, size 0x1C +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +struct /* @anon5 */ { + // total size: 0xD8 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zNPCGoalBPlanktonDizzy : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class effect_data { + // total size: 0x18 +public: + enum fx_type_enum type; // offset 0x0, size 0x4 + enum fx_orient_enum orient; // offset 0x4, size 0x4 + float rate; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + union { // inferred + class xParEmitter * par; // offset 0x0, size 0x4 + class xDecalEmitter * decal; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 + } callback; // offset 0x0, size 0x8 + }; + } data; // offset 0xC, size 0x8 + float irate; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zNPCGoalBPlanktonEvade : public zNPCGoalCommon { + // total size: 0x54 +public: + float evade_delay; // offset 0x4C, size 0x4 + class zNPCBPlankton & owner; // offset 0x50, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char moreFlags; // offset 0x0, size 0x1 +}; +enum say_enum { + INVALID_SAY = -1, + SAY_B101_01 = 0, + SAY_B101_02 = 1, + SAY_B101_03 = 2, + SAY_B101_04 = 3, + SAY_B101_05 = 4, + SAY_B101_06 = 5, + SAY_B101_07 = 6, + SAY_B101_08 = 7, + SAY_B101_09 = 8, + SAY_B101_10 = 9, + SAY_B101_11 = 10, + SAY_B101_12 = 11, + SAY_B101_13 = 12, + SAY_B101_14 = 13, + SAY_B101_15 = 14, + SAY_B101_16 = 15, + SAY_B201_01 = 16, + SAY_B201_02 = 17, + SAY_B201_03 = 18, + SAY_B201_04 = 19, + SAY_B201_05 = 20, + SAY_B201_06 = 21, + SAY_B201_07 = 22, + SAY_B303_INTRO_1 = 23, + SAY_B303_INTRO_2 = 24, + SAY_B303_FUSE_NEAR = 25, + SAY_B303_FUSE_HIT = 26, + SAY_B303_BRAIN_HELP_1 = 27, + SAY_B303_BRAIN_HELP_2 = 28, + SAY_B303_BRAIN_HELP_3 = 29, + SAY_HIT_PLAYER_1 = 30, + SAY_HIT_PLAYER_2 = 31, + SAY_HIT_PLAYER_3 = 32, + SAY_HIT_PLAYER_4 = 33, + SAY_HIT_PLAYER_5 = 34, + SAY_HIT_PLAYER_6 = 35, + SAY_BOWL_HIT_1 = 36, + SAY_BOWL_HIT_2 = 37, + SAY_BOWL_HIT_3 = 38, + SAY_BOWL_HIT_4 = 39, + SAY_BOWL_HIT_5 = 40, + SAY_BOWL_HELP = 41, + SAY_HIT_BOSS_1 = 42, + SAY_HIT_BOSS_2 = 43, + SAY_SANDY_SPLIT = 44, + SAY_SANDY_FLY = 45, + SAY_SB_VICTORY = 46, + SAY_SB_ROUGH_RIDE = 47, + SAY_SB_BACK = 48, + SAY_SB_HIT_FAIL_1 = 49, + SAY_SB_HIT_FAIL_2 = 50, + SAY_SB_HIT_BOSS_1 = 51, + SAY_SB_HIT_BOSS_2 = 52, + SAY_SB_HIT_BOSS_3 = 53, + SAY_SB_VULN_1 = 54, + SAY_SB_VULN_2 = 55, + SAY_SB_VULN_3 = 56, + SAY_SB_VULN_4 = 57, + SAY_SB_VULN_5 = 58, + SAY_ROBOT_TACTICS = 59, + SAY_ROBOT_HIT_FAIL = 60, + SAY_ROBOT_DIZZY = 61, + SAY_ROBOT_STUN_1 = 62, + SAY_ROBOT_STUN_2 = 63, + SAY_ROBOT_STUN_3 = 64, + SAY_ROBOT_HIT = 65, + SAY_ROBOT_VULN_1 = 66, + SAY_ROBOT_VULN_2 = 67, + SAY_SPIN = 68, + SAY_B302_INTRO = 69, + SAY_HIT_LAST = 70, + MAX_SAY = 71, +}; +class zNPCGoalBPlanktonStun : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float radius; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class config { + // total size: 0x3C +public: + float radius; // offset 0x0, size 0x4 + float length; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float fade_dist; // offset 0xC, size 0x4 + float kill_dist; // offset 0x10, size 0x4 + float safe_dist; // offset 0x14, size 0x4 + float hit_radius; // offset 0x18, size 0x4 + float rand_ang; // offset 0x1C, size 0x4 + float scar_life; // offset 0x20, size 0x4 + class xVec2 bolt_uv[2]; // offset 0x24, size 0x10 + signed int hit_interval; // offset 0x34, size 0x4 + float damage; // offset 0x38, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class sound_asset { + // total size: 0x10 +public: + signed int group; // offset 0x0, size 0x4 + char * name; // offset 0x4, size 0x4 + unsigned int priority; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zNPCGoalBPlanktonBomb : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zNPCGoalBPlanktonBeam : public zNPCGoalCommon { + // total size: 0x58 +public: + float emitted; // offset 0x4C, size 0x4 + enum substate_enum substate; // offset 0x50, size 0x4 + class zNPCBPlankton & owner; // offset 0x54, size 0x4 +}; +class zNPCGoalBPlanktonFlank : public zNPCGoalCommon { + // total size: 0x54 +public: + float accel; // offset 0x4C, size 0x4 + class zNPCBPlankton & owner; // offset 0x50, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + float rate; // offset 0x0, size 0x4 + float time_warm_up; // offset 0x4, size 0x4 + float time_fire; // offset 0x8, size 0x4 + float gun_tilt_min; // offset 0xC, size 0x4 + float gun_tilt_max; // offset 0x10, size 0x4 + float max_dist; // offset 0x14, size 0x4 + float emit_dist; // offset 0x18, size 0x4 + class config fx; // offset 0x1C, size 0x3C +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + union { // inferred + class xParEmitter * par; // offset 0x0, size 0x4 + class xDecalEmitter * decal; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 + } callback; // offset 0x0, size 0x8 + }; +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0x8 +public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 +}; +enum texture_mode { + TM_DEFAULT = 0, + TM_RANDOM = 1, + TM_CYCLE = 2, + MAX_TM = 3, + FORCE_INT_TM = -1, +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zEntDestructObj : public zEnt { + // total size: 0x114 +public: + class zEntDestructObjAsset * dasset; // offset 0xD4, size 0x4 + unsigned int state; // offset 0xD8, size 0x4 + unsigned int healthCnt; // offset 0xDC, size 0x4 + float fx_timer; // offset 0xE0, size 0x4 + class zParEmitter * fx_emitter; // offset 0xE4, size 0x4 + float respawn_timer; // offset 0xE8, size 0x4 + unsigned int throw_target; // offset 0xEC, size 0x4 + class zShrapnelAsset * shrapnel_destroy; // offset 0xF0, size 0x4 + class zShrapnelAsset * shrapnel_hit; // offset 0xF4, size 0x4 + class xModelInstance * base_model; // offset 0xF8, size 0x4 + class xModelInstance * hit_model; // offset 0xFC, size 0x4 + class xModelInstance * destroy_model; // offset 0x100, size 0x4 + void (* destroy_notify)(class zEntDestructObj &, void *); // offset 0x104, size 0x4 + void * notify_context; // offset 0x108, size 0x4 + class xSFXAsset * sfx_destroy; // offset 0x10C, size 0x4 + class xSFXAsset * sfx_hit; // offset 0x110, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char updated; // offset 0x0, size 0x1 + unsigned char face_player; // offset 0x1, size 0x1 + unsigned char attacking; // offset 0x2, size 0x1 + unsigned char hunt; // offset 0x3, size 0x1 + unsigned char aim_gun; // offset 0x4, size 0x1 + enum move_enum move; // offset 0x8, size 0x4 + enum follow_enum follow; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xTimer { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zNPCGoalBPlanktonWall : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zNPCGoalBPlanktonHunt : public zNPCGoalCommon { + // total size: 0x5C +public: + class xVec3 player_loc; // offset 0x4C, size 0xC + class zNPCBPlankton & owner; // offset 0x58, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class HiThere : public callback { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class sound_data_type { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned int handle; // offset 0x4, size 0x4 + class xVec3 * loc; // offset 0x8, size 0x4 + float volume; // offset 0xC, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class bolt * _buffer; // offset 0x10, size 0x4 +}; +class zNPCGoalBPlanktonTaunt : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class config { + // total size: 0x28 +public: + unsigned int flags; // offset 0x0, size 0x4 + float life_time; // offset 0x4, size 0x4 + unsigned int blend_src; // offset 0x8, size 0x4 + unsigned int blend_dst; // offset 0xC, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 + } texture; // offset 0x10, size 0x18 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class zEntHangable { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zEntDestructObjAsset { + // total size: 0x38 +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned int health; // offset 0x8, size 0x4 + unsigned int spawnItemID; // offset 0xC, size 0x4 + unsigned int dflags; // offset 0x10, size 0x4 + unsigned char collType; // offset 0x14, size 0x1 + unsigned char fxType; // offset 0x15, size 0x1 + unsigned char pad[2]; // offset 0x16, size 0x2 + float blast_radius; // offset 0x18, size 0x4 + float blast_strength; // offset 0x1C, size 0x4 + unsigned int shrapnelID_destroy; // offset 0x20, size 0x4 + unsigned int shrapnelID_hit; // offset 0x24, size 0x4 + unsigned int sfx_destroy; // offset 0x28, size 0x4 + unsigned int sfx_hit; // offset 0x2C, size 0x4 + unsigned int hitModel; // offset 0x30, size 0x4 + unsigned int destroyModel; // offset 0x34, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float safety_dist; // offset 0x0, size 0x4 + float safety_height; // offset 0x4, size 0x4 + float attack_dist; // offset 0x8, size 0x4 + float attack_height; // offset 0xC, size 0x4 + float stun_time; // offset 0x10, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x18 +public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum substate_enum { + SS_WARM_UP = 0, + SS_FIRE = 1, + SS_COOL_DOWN = 2, + SS_DONE = 3, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x10 +public: + float min_ang; // offset 0x0, size 0x4 + float max_ang; // offset 0x4, size 0x4 + float min_delay; // offset 0x8, size 0x4 + float max_delay; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class tweak_group { + // total size: 0x300 +public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float turn_accel; // offset 0x18, size 0x4 + float turn_max_vel; // offset 0x1C, size 0x4 + float ground_y; // offset 0x20, size 0x4 + float ground_radius; // offset 0x24, size 0x4 + float hit_vel; // offset 0x28, size 0x4 + float hit_max_dist; // offset 0x2C, size 0x4 + float idle_time; // offset 0x30, size 0x4 + float min_arena_dist; // offset 0x34, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float min_ang; // offset 0x0, size 0x4 + float max_ang; // offset 0x4, size 0x4 + float min_delay; // offset 0x8, size 0x4 + float max_delay; // offset 0xC, size 0x4 + } follow; // offset 0x38, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + float fuse_dist; // offset 0x0, size 0x4 + float fuse_delay; // offset 0x4, size 0x4 + } help; // offset 0x48, size 0x8 + class /* @class */ { + // total size: 0x20 + public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float stun_duration; // offset 0x18, size 0x4 + float obstruct_angle; // offset 0x1C, size 0x4 + } mode_buddy; // offset 0x50, size 0x20 + class /* @class */ { + // total size: 0x1C + public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float stun_duration; // offset 0x18, size 0x4 + } mode_harass; // offset 0x70, size 0x1C + class /* @class */ { + // total size: 0x14 + public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float beam_interval; // offset 0x8, size 0x4 + float beam_duration; // offset 0xC, size 0x4 + float beam_dist; // offset 0x10, size 0x4 + } hunt; // offset 0x8C, size 0x14 + class /* @class */ { + // total size: 0x58 + public: + float rate; // offset 0x0, size 0x4 + float time_warm_up; // offset 0x4, size 0x4 + float time_fire; // offset 0x8, size 0x4 + float gun_tilt_min; // offset 0xC, size 0x4 + float gun_tilt_max; // offset 0x10, size 0x4 + float max_dist; // offset 0x14, size 0x4 + float emit_dist; // offset 0x18, size 0x4 + class config fx; // offset 0x1C, size 0x3C + } beam; // offset 0xA0, size 0x58 + class /* @class */ { + // total size: 0x14 + public: + float safety_dist; // offset 0x0, size 0x4 + float safety_height; // offset 0x4, size 0x4 + float attack_dist; // offset 0x8, size 0x4 + float attack_height; // offset 0xC, size 0x4 + float stun_time; // offset 0x10, size 0x4 + } harass; // offset 0xF8, size 0x14 + class /* @class */ { + // total size: 0xC + public: + float duration; // offset 0x0, size 0x4 + float accel; // offset 0x4, size 0x4 + float max_vel; // offset 0x8, size 0x4 + } flank; // offset 0x10C, size 0xC + class /* @class */ { + // total size: 0xC + public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float dist; // offset 0x8, size 0x4 + } fall; // offset 0x118, size 0xC + class /* @class */ { + // total size: 0x14 + public: + float duration; // offset 0x0, size 0x4 + float move_delay_min; // offset 0x4, size 0x4 + float move_delay_max; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + } evade; // offset 0x124, size 0x14 + class /* @class */ { + // total size: 0x1C + public: + class xVec3 center; // offset 0x0, size 0xC + class /* @class */ { + // total size: 0x8 + public: + float radius; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } attack; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float radius; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } safety; // offset 0x14, size 0x8 + } arena; // offset 0x138, size 0x1C + class sound_property sound[6]; // offset 0x154, size 0x90 + void * context; // offset 0x1E4, size 0x4 + class tweak_callback cb_move; // offset 0x1E8, size 0x28 + class tweak_callback cb_arena; // offset 0x210, size 0x28 + class tweak_callback cb_ground; // offset 0x238, size 0x28 + class tweak_callback cb_beam; // offset 0x260, size 0x28 + class tweak_callback cb_help; // offset 0x288, size 0x28 + class tweak_callback cb_sound; // offset 0x2B0, size 0x28 + class tweak_callback cb_sound_asset; // offset 0x2D8, size 0x28 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class zNPCGoalBPlanktonMissle : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCBPlankton & owner; // offset 0x4C, size 0x4 +}; +class zNPCNewsFish : public zNPCVillager { + // total size: 0x530 +public: + class say_data said[71]; // offset 0x2B0, size 0x238 + unsigned char was_reset; // offset 0x4E8, size 0x1 + unsigned int soundHandle; // offset 0x4EC, size 0x4 + unsigned int currSoundID; // offset 0x4F0, size 0x4 + unsigned int nextSoundID; // offset 0x4F4, size 0x4 + float jawTime; // offset 0x4F8, size 0x4 + void * jawData; // offset 0x4FC, size 0x4 + unsigned int newsfishFlags; // offset 0x500, size 0x4 + class xVec2 onScreenCoords; // offset 0x504, size 0x8 + class xVec2 offScreenCoords; // offset 0x50C, size 0x8 + class xVec2 screenCoords; // offset 0x514, size 0x8 + float screenSize; // offset 0x51C, size 0x4 + float screenRot; // offset 0x520, size 0x4 + float appearSpeed; // offset 0x524, size 0x4 + float disappearSpeed; // offset 0x528, size 0x4 + float screenLerp; // offset 0x52C, size 0x4 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class unit_data * _buffer; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + enum say_enum * say; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float duration; // offset 0x0, size 0x4 + float accel; // offset 0x4, size 0x4 + float max_vel; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class rxReq { + // total size: 0x0 +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class /* @class */ { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class /* @class */ { + // total size: 0x8 +public: + float fuse_dist; // offset 0x0, size 0x4 + float fuse_delay; // offset 0x4, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +struct /* @anon14 */ { + // total size: 0x34 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +struct /* @anon15 */ { + // total size: 0x34 +}; +struct /* @anon16 */ { + // total size: 0x34 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class /* @class */ { + // total size: 0xC +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float dist; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class /* @class */ { + // total size: 0x14 +public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +struct /* @anon17 */ { + // total size: 0x54 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class /* @class */ { + // total size: 0x20 +public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float stun_duration; // offset 0x18, size 0x4 + float obstruct_angle; // offset 0x1C, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +struct /* @anon18 */ { + // total size: 0xD8 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class say_data { + // total size: 0x8 +public: + signed int total; // offset 0x0, size 0x4 + signed int prev_total; // offset 0x4, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum fx_type_enum { + FX_TYPE_PARTICLE = 0, + FX_TYPE_DECAL = 1, + FX_TYPE_DECAL_DIST = 2, + FX_TYPE_CALLBACK = 3, +}; +class /* @class */ { + // total size: 0x14 +public: + float duration; // offset 0x0, size 0x4 + float move_delay_min; // offset 0x4, size 0x4 + float move_delay_max; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +struct /* @anon19 */ { + // total size: 0x34 +}; +struct /* @anon20 */ { + // total size: 0x34 +}; +class zNPCVillager : public zNPCCommon { + // total size: 0x2B0 +public: + class HiThere hithere; // offset 0x2A0, size 0x8 + class ztaskbox * converse; // offset 0x2A8, size 0x4 + signed int current_talk_anim; // offset 0x2AC, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float stun_duration; // offset 0x18, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363A20 -> 0x00363A28 +*/ +// Range: 0x363A20 -> 0x363A28 +signed int Process() { + // Blocks + /* anonymous block */ { + // Range: 0x363A20 -> 0x363A28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363A30 -> 0x00363A38 +*/ +// Range: 0x363A30 -> 0x363A38 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x363A30 -> 0x363A38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363A40 -> 0x00363A48 +*/ +// Range: 0x363A40 -> 0x363A48 +signed int Enter(class zNPCGoalBPlanktonBomb * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363A40 -> 0x363A48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363A50 -> 0x00363B04 +*/ +// Range: 0x363A50 -> 0x363B04 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363A50 -> 0x363B04 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363B10 -> 0x00363B18 +*/ +// Range: 0x363B10 -> 0x363B18 +signed int Process() { + // Blocks + /* anonymous block */ { + // Range: 0x363B10 -> 0x363B18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363B20 -> 0x00363B28 +*/ +// Range: 0x363B20 -> 0x363B28 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x363B20 -> 0x363B28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363B30 -> 0x00363B38 +*/ +// Range: 0x363B30 -> 0x363B38 +signed int Enter(class zNPCGoalBPlanktonMissle * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363B30 -> 0x363B38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363B40 -> 0x00363BF4 +*/ +// Range: 0x363B40 -> 0x363BF4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363B40 -> 0x363BF4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363C00 -> 0x00363C08 +*/ +// Range: 0x363C00 -> 0x363C08 +signed int Process() { + // Blocks + /* anonymous block */ { + // Range: 0x363C00 -> 0x363C08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363C10 -> 0x00363C18 +*/ +// Range: 0x363C10 -> 0x363C18 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x363C10 -> 0x363C18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363C20 -> 0x00363C28 +*/ +// Range: 0x363C20 -> 0x363C28 +signed int Enter(class zNPCGoalBPlanktonWall * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363C20 -> 0x363C28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363C30 -> 0x00363CE4 +*/ +// Range: 0x363C30 -> 0x363CE4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363C30 -> 0x363CE4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363CF0 -> 0x00364154 +*/ +// Range: 0x363CF0 -> 0x364154 +void update_fire(class zNPCGoalBPlanktonBeam * this /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363CF0 -> 0x364154 + class xMat4x3 mat; // r29+0x90 + signed int total; // r18 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364160 -> 0x00364314 +*/ +// Range: 0x364160 -> 0x364314 +signed int Process(class zNPCGoalBPlanktonBeam * this /* r16 */, enum en_trantype * trantype /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364160 -> 0x364314 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364320 -> 0x00364350 +*/ +// Range: 0x364320 -> 0x364350 +signed int Exit(class zNPCGoalBPlanktonBeam * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364320 -> 0x364350 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364350 -> 0x003644CC +*/ +// Range: 0x364350 -> 0x3644CC +signed int Enter(class zNPCGoalBPlanktonBeam * this /* r19 */, float dt /* r21 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364350 -> 0x3644CC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003644D0 -> 0x00364584 +*/ +// Range: 0x3644D0 -> 0x364584 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3644D0 -> 0x364584 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364590 -> 0x00364690 +*/ +// Range: 0x364590 -> 0x364690 +signed int Process(class zNPCGoalBPlanktonDizzy * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364590 -> 0x364690 + class xAnimState * anim; // r2 + unsigned char end; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364690 -> 0x003646A4 +*/ +// Range: 0x364690 -> 0x3646A4 +signed int Exit(class zNPCGoalBPlanktonDizzy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364690 -> 0x3646A4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003646B0 -> 0x00364728 +*/ +// Range: 0x3646B0 -> 0x364728 +signed int Enter(class zNPCGoalBPlanktonDizzy * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3646B0 -> 0x364728 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364730 -> 0x003647E4 +*/ +// Range: 0x364730 -> 0x3647E4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364730 -> 0x3647E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003647F0 -> 0x00364898 +*/ +// Range: 0x3647F0 -> 0x364898 +signed int Process(class zNPCGoalBPlanktonFall * this /* r2 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3647F0 -> 0x364898 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003648A0 -> 0x003648B4 +*/ +// Range: 0x3648A0 -> 0x3648B4 +signed int Exit(class zNPCGoalBPlanktonFall * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3648A0 -> 0x3648B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003648C0 -> 0x00364938 +*/ +// Range: 0x3648C0 -> 0x364938 +signed int Enter(class zNPCGoalBPlanktonFall * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3648C0 -> 0x364938 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364940 -> 0x003649F4 +*/ +// Range: 0x364940 -> 0x3649F4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364940 -> 0x3649F4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364A00 -> 0x00364B78 +*/ +// Range: 0x364A00 -> 0x364B78 +signed int Process(class zNPCGoalBPlanktonStun * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364A00 -> 0x364B78 + class xAnimState * anim; // r2 + unsigned char end; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364B80 -> 0x00364BD0 +*/ +// Range: 0x364B80 -> 0x364BD0 +signed int Exit(class zNPCGoalBPlanktonStun * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364B80 -> 0x364BD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364BD0 -> 0x00364C30 +*/ +// Range: 0x364BD0 -> 0x364C30 +signed int Enter(class zNPCGoalBPlanktonStun * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364BD0 -> 0x364C30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364C30 -> 0x00364CE4 +*/ +// Range: 0x364C30 -> 0x364CE4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364C30 -> 0x364CE4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364CF0 -> 0x00364CF8 +*/ +// Range: 0x364CF0 -> 0x364CF8 +signed int Process() { + // Blocks + /* anonymous block */ { + // Range: 0x364CF0 -> 0x364CF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364D00 -> 0x00364D08 +*/ +// Range: 0x364D00 -> 0x364D08 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x364D00 -> 0x364D08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364D10 -> 0x00364D18 +*/ +// Range: 0x364D10 -> 0x364D18 +signed int Enter(class zNPCGoalBPlanktonMove * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364D10 -> 0x364D18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364D20 -> 0x00364DD4 +*/ +// Range: 0x364D20 -> 0x364DD4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364D20 -> 0x364DD4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364DE0 -> 0x00364DE8 +*/ +// Range: 0x364DE0 -> 0x364DE8 +signed int Process() { + // Blocks + /* anonymous block */ { + // Range: 0x364DE0 -> 0x364DE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364DF0 -> 0x00364DF8 +*/ +// Range: 0x364DF0 -> 0x364DF8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x364DF0 -> 0x364DF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364E00 -> 0x00364E08 +*/ +// Range: 0x364E00 -> 0x364E08 +signed int Enter(class zNPCGoalBPlanktonTaunt * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364E00 -> 0x364E08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364E10 -> 0x00364EC4 +*/ +// Range: 0x364E10 -> 0x364EC4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364E10 -> 0x364EC4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00364ED0 -> 0x00365164 +*/ +// Range: 0x364ED0 -> 0x365164 +signed int Process(class zNPCGoalBPlanktonHunt * this /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x364ED0 -> 0x365164 + class xVec3 player_vel; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365170 -> 0x00365190 +*/ +// Range: 0x365170 -> 0x365190 +signed int Exit(class zNPCGoalBPlanktonHunt * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365170 -> 0x365190 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365190 -> 0x003652D4 +*/ +// Range: 0x365190 -> 0x3652D4 +signed int Enter(class zNPCGoalBPlanktonHunt * this /* r16 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365190 -> 0x3652D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003652E0 -> 0x00365394 +*/ +// Range: 0x3652E0 -> 0x365394 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3652E0 -> 0x365394 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003653A0 -> 0x00365714 +*/ +// Range: 0x3653A0 -> 0x365714 +signed int Process(class zNPCGoalBPlanktonEvade * this /* r18 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3653A0 -> 0x365714 + class xVec3 rloc; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365720 -> 0x00365804 +*/ +// Range: 0x365720 -> 0x365804 +signed int Exit(class zNPCGoalBPlanktonEvade * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365720 -> 0x365804 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365810 -> 0x00365A5C +*/ +// Range: 0x365810 -> 0x365A5C +signed int Enter(class zNPCGoalBPlanktonEvade * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365810 -> 0x365A5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365A60 -> 0x00365B14 +*/ +// Range: 0x365A60 -> 0x365B14 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365A60 -> 0x365B14 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365B20 -> 0x00365B88 +*/ +// Range: 0x365B20 -> 0x365B88 +signed int Process(class zNPCGoalBPlanktonFlank * this /* r2 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365B20 -> 0x365B88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365B90 -> 0x00365C6C +*/ +// Range: 0x365B90 -> 0x365C6C +signed int Exit(class zNPCGoalBPlanktonFlank * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365B90 -> 0x365C6C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365C70 -> 0x00365EC8 +*/ +// Range: 0x365C70 -> 0x365EC8 +signed int Enter(class zNPCGoalBPlanktonFlank * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365C70 -> 0x365EC8 + class xVec3 target; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365ED0 -> 0x00365F84 +*/ +// Range: 0x365ED0 -> 0x365F84 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365ED0 -> 0x365F84 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00365F90 -> 0x00366128 +*/ +// Range: 0x365F90 -> 0x366128 +signed int Process(class zNPCGoalBPlanktonAmbush * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x365F90 -> 0x366128 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366130 -> 0x00366138 +*/ +// Range: 0x366130 -> 0x366138 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x366130 -> 0x366138 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366140 -> 0x003662D0 +*/ +// Range: 0x366140 -> 0x3662D0 +signed int Enter(class zNPCGoalBPlanktonAmbush * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366140 -> 0x3662D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003662D0 -> 0x00366384 +*/ +// Range: 0x3662D0 -> 0x366384 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3662D0 -> 0x366384 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366390 -> 0x00366454 +*/ +// Range: 0x366390 -> 0x366454 +signed int Process(class zNPCGoalBPlanktonAttack * this /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366390 -> 0x366454 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366460 -> 0x00366468 +*/ +// Range: 0x366460 -> 0x366468 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x366460 -> 0x366468 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366470 -> 0x003665B8 +*/ +// Range: 0x366470 -> 0x3665B8 +signed int Enter(class zNPCGoalBPlanktonAttack * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366470 -> 0x3665B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003665C0 -> 0x00366674 +*/ +// Range: 0x3665C0 -> 0x366674 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3665C0 -> 0x366674 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366680 -> 0x003668E8 +*/ +// Range: 0x366680 -> 0x3668E8 +void get_yaw(class zNPCGoalBPlanktonIdle * this /* r18 */, float & optimal /* r17 */, float & dist /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366680 -> 0x3668E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003668F0 -> 0x00366AC4 +*/ +// Range: 0x3668F0 -> 0x366AC4 +signed int Process(class zNPCGoalBPlanktonIdle * this /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3668F0 -> 0x366AC4 + float yaw_optimal; // r29+0x4C + float yaw_dist; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366AD0 -> 0x00366AF0 +*/ +// Range: 0x366AD0 -> 0x366AF0 +signed int Exit(class zNPCGoalBPlanktonIdle * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366AD0 -> 0x366AF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366AF0 -> 0x00366CF0 +*/ +// Range: 0x366AF0 -> 0x366CF0 +signed int Enter(class zNPCGoalBPlanktonIdle * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366AF0 -> 0x366CF0 + float yaw_optimal; // r29+0x4C + float yaw_dist; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366CF0 -> 0x00366DA4 +*/ +// Range: 0x366CF0 -> 0x366DA4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366CF0 -> 0x366DA4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366DB0 -> 0x00366DE8 +*/ +// Range: 0x366DB0 -> 0x366DE8 +void aim_gun(class xAnimPlay * play /* r2 */, class xQuat * quat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366DB0 -> 0x366DE8 + class zNPCBPlankton & owner; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366DF0 -> 0x00366FA4 +*/ +// Range: 0x366DF0 -> 0x366FA4 +void fall(class zNPCBPlankton * this /* r2 */, float accel /* r29+0x40 */, float max_vel /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366DF0 -> 0x366FA4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00366FB0 -> 0x003671B8 +*/ +// Range: 0x366FB0 -> 0x3671B8 +void halt(class zNPCBPlankton * this /* r2 */, float accel /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x366FB0 -> 0x3671B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003671C0 -> 0x003671C8 +*/ +// Range: 0x3671C0 -> 0x3671C8 +void here_boy(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3671C0 -> 0x3671C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003671D0 -> 0x00367218 +*/ +// Range: 0x3671D0 -> 0x367218 +void sickum(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3671D0 -> 0x367218 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367220 -> 0x003672F0 +*/ +// Range: 0x367220 -> 0x3672F0 +unsigned char player_left_territory(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367220 -> 0x3672F0 + class territory_data & t; // r3 + class xCollis & coll; // r5 + class xEnt * platform; // r7 + signed int i; // r6 + class territory_data & t; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003672F0 -> 0x00367380 +*/ +// Range: 0x3672F0 -> 0x367380 +unsigned char move_to_player_territory(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3672F0 -> 0x367380 + class xCollis & coll; // r3 + class xEnt * platform; // r8 + signed int i; // r7 + class territory_data & t; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367380 -> 0x00367608 +*/ +// Range: 0x367380 -> 0x367608 +void impart_velocity(class zNPCBPlankton * this /* r17 */, class xVec3 & vel /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367380 -> 0x367608 + class xVec3 rvel; // r29+0x80 + class xVec2 offset; // r29+0x78 + float max_dist; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367700 -> 0x003679F0 +*/ +// Range: 0x367700 -> 0x3679F0 +void stun(class zNPCBPlankton * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367700 -> 0x3679F0 + signed int state; // r2 + signed int fuses; // r16 + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003679F0 -> 0x00367C74 +*/ +// Range: 0x3679F0 -> 0x367C74 +class xVec3 player_orbit(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3679F0 -> 0x367C74 + float dyaw; // r29+0xA0 + float dx; // r29+0xA0 + float t; // r29+0xA0 + class xVec3 player_loc; // r29+0x90 + class xVec2 center; // r29+0x88 + class xVec2 rloc; // r29+0x80 + class xVec2 roffset; // r29+0x78 + class xVec2 ret; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367C80 -> 0x00367E84 +*/ +// Range: 0x367C80 -> 0x367E84 +class xVec3 random_orbit(class zNPCBPlankton * this /* r16 */, class xVec3 & loc /* r2 */, float min_ang /* r21 */, float max_ang /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367C80 -> 0x367E84 + class xVec3 offset; // r29+0x60 + float ang; // r22 + float imag; // r1 + float r; // r20 + float rand_ang; // r20 + class xVec3 dest; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367E90 -> 0x00367FD0 +*/ +// Range: 0x367E90 -> 0x367FD0 +void reappear(class zNPCBPlankton * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367E90 -> 0x367FD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00367FD0 -> 0x00368124 +*/ +// Range: 0x367FD0 -> 0x368124 +void setup_beam(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x367FD0 -> 0x368124 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00368130 -> 0x003682F0 +*/ +// Range: 0x368130 -> 0x3682F0 +void init_beam(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x368130 -> 0x3682F0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003682F0 -> 0x00368448 +*/ +// Range: 0x3682F0 -> 0x368448 +void load_territory(class zNPCBPlankton * this /* r19 */, signed int index /* r18 */, class xBase & child /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3682F0 -> 0x368448 + class territory_data & t; // r16 + unsigned int i; // r20 + unsigned int size; // r16 + class xBase * entry; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00368450 -> 0x00368658 +*/ +// Range: 0x368450 -> 0x368658 +float orbit_yaw_offset(class zNPCBPlankton * this /* r2 */, class xVec3 & p0 /* r2 */, class xVec3 & p1 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x368450 -> 0x368658 + class xVec2 center; // r29+0x58 + class xVec2 loc0; // r29+0x50 + class xVec2 loc1; // r29+0x48 + class xVec2 offset0; // r29+0x40 + class xVec2 offset1; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00368660 -> 0x003687F0 +*/ +// Range: 0x368660 -> 0x3687F0 +void update_follow_camera(class zNPCBPlankton * this /* r16 */, float dt /* r29+0x80 */) { + // Blocks + /* anonymous block */ { + // Range: 0x368660 -> 0x3687F0 + class xVec3 target; // r29+0x70 + float min; // r21 + float max; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003687F0 -> 0x003688E8 +*/ +// Range: 0x3687F0 -> 0x3688E8 +void update_follow_player(class zNPCBPlankton * this /* r16 */, float dt /* r29+0x50 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3687F0 -> 0x3688E8 + float min; // r21 + float max; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003688F0 -> 0x0036893C +*/ +// Range: 0x3688F0 -> 0x36893C +void update_follow(class zNPCBPlankton * this /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3688F0 -> 0x36893C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00368940 -> 0x00368C2C +*/ +// Range: 0x368940 -> 0x368C2C +void update_dialog(class zNPCBPlankton * this /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x368940 -> 0x368C2C + signed int i; // r19 + class territory_data & t; // r17 + signed int i; // r20 + class territory_data & t; // r19 + class xVec3 & fuse_loc; // r2 + class xVec3 offset; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00368C30 -> 0x00368FE8 +*/ +// Range: 0x368C30 -> 0x368FE8 +void update_turn(class zNPCBPlankton * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x368C30 -> 0x368FE8 + class xVec3 & loc3; // r6 + class xVec3 & start3; // r5 + class xVec2 loc; // r29+0x40 + class xVec2 start_dir; // r29+0x38 + float start; // r21 + float end; // r29+0x50 + float diff; // r1 + float yaw; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00368FF0 -> 0x003694B8 +*/ +// Range: 0x368FF0 -> 0x3694B8 +static void update_move_orbit(class xVec3 & loc /* r18 */, class move_info & move /* r17 */, class xVec3 & center /* r16 */, float dt /* r24 */, unsigned char xfree /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x368FF0 -> 0x3694B8 + class xVec3 ring_loc0; // r29+0x120 + class xVec3 ring_loc1; // r29+0x110 + class xVec3 offset0; // r29+0x100 + class xVec3 offset1; // r29+0xF0 + class xVec3 offset; // r29+0xE0 + class xVec3 dloc; // r29+0xD0 + float new_yaw; // r23 + float iradius0; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003694C0 -> 0x00369708 +*/ +// Range: 0x3694C0 -> 0x369708 +void refresh_orbit(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3694C0 -> 0x369708 + class xVec3 oldcenter; // r29+0x20 + class xMovePointAsset & mp; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00369710 -> 0x003697B4 +*/ +// Range: 0x369710 -> 0x3697B4 +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x369710 -> 0x3697B4 + signed int index; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003697C0 -> 0x003698C8 +*/ +// Range: 0x3697C0 -> 0x3698C8 +void Damage(class zNPCBPlankton * this /* r18 */, enum en_NPC_DAMAGE_TYPE damtype /* r17 */, class xVec3 * vec_hit /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3697C0 -> 0x3698C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003698D0 -> 0x0036996C +*/ +// Range: 0x3698D0 -> 0x36996C +void SelfSetup(class zNPCBPlankton * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3698D0 -> 0x36996C + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00369970 -> 0x00369B44 +*/ +// Range: 0x369970 -> 0x369B44 +void ParseLinks(class zNPCBPlankton * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x369970 -> 0x369B44 + class xLinkAsset * it; // r18 + class xLinkAsset * end; // r17 + class xBase * child; // r2 + signed int index; // r2 + class territory_data & t; // r16 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00369B50 -> 0x00369B90 +*/ +// Range: 0x369B50 -> 0x369B90 +void ParseINI(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x369B50 -> 0x369B90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00369B90 -> 0x0036CCAC +*/ +// Range: 0x369B90 -> 0x36CCAC +static void register_tweaks(class tweak_group * this /* r19 */, unsigned char init /* r18 */, class xModelAssetParam * ap /* r17 */, unsigned int apsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x369B90 -> 0x36CCAC + class xVec3 V0; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036CCB0 -> 0x0036CD08 +*/ +// Range: 0x36CCB0 -> 0x36CD08 +void RenderExtraPostParticles(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36CCB0 -> 0x36CD08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036CD10 -> 0x0036CD18 +*/ +// Range: 0x36CD10 -> 0x36CD18 +void Render(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36CD10 -> 0x36CD18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036CD20 -> 0x0036CD28 +*/ +// Range: 0x36CD20 -> 0x36CD28 +signed int SysEvent(class zNPCBPlankton * this /* r2 */, class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */, signed int * handled /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36CD20 -> 0x36CD28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036CD30 -> 0x0036D1D0 +*/ +// Range: 0x36CD30 -> 0x36D1D0 +void Process(class zNPCBPlankton * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36CD30 -> 0x36D1D0 + class xVec3 & player_loc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D1D0 -> 0x0036D1D8 +*/ +// Range: 0x36D1D0 -> 0x36D1D8 +void Destroy(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36D1D0 -> 0x36D1D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D1E0 -> 0x0036D54C +*/ +// Range: 0x36D1E0 -> 0x36D54C +void Reset(class zNPCBPlankton * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36D1E0 -> 0x36D54C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D550 -> 0x0036D56C +*/ +// Range: 0x36D550 -> 0x36D56C +void PostSetup(class zNPCBPlankton * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36D550 -> 0x36D56C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D570 -> 0x0036D5B4 +*/ +// Range: 0x36D570 -> 0x36D5B4 +void Setup(class zNPCBPlankton * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36D570 -> 0x36D5B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D5C0 -> 0x0036D698 +*/ +// Range: 0x36D5C0 -> 0x36D698 +void Init(class zNPCBPlankton * this /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36D5C0 -> 0x36D698 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D6A0 -> 0x0036D714 +*/ +// Range: 0x36D6A0 -> 0x36D714 +void * __ct(class zNPCBPlankton * this /* r16 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36D6A0 -> 0x36D714 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036D720 -> 0x0036E0A8 +*/ +// Range: 0x36D720 -> 0x36E0A8 +class xAnimTable * ZNPC_AnimTable_BossPlankton() { + // Blocks + /* anonymous block */ { + // Range: 0x36D720 -> 0x36E0A8 + class xAnimTable * table; // r16 + signed int anim_list[32]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E0B0 -> 0x0036E1C0 +*/ +// Range: 0x36E0B0 -> 0x36E1C0 +static void play_beam_hit_sound(class bolt & b /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36E0B0 -> 0x36E1C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E1C0 -> 0x0036E2C8 +*/ +// Range: 0x36E1C0 -> 0x36E2C8 +static void play_beam_fire_sound(class bolt & b /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36E1C0 -> 0x36E2C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E2D0 -> 0x0036E354 +*/ +// Range: 0x36E2D0 -> 0x36E354 +static void kill_beam_fly_sound(class bolt & b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36E2D0 -> 0x36E354 + unsigned int & handle; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E360 -> 0x0036E494 +*/ +// Range: 0x36E360 -> 0x36E494 +static void play_beam_fly_sound(class bolt & b /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x36E360 -> 0x36E494 + unsigned int & handle; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E4A0 -> 0x0036E5D8 +*/ +// Range: 0x36E4A0 -> 0x36E5D8 +static void init_sound() { + // Blocks + /* anonymous block */ { + // Range: 0x36E4A0 -> 0x36E5D8 + unsigned int i; // r3 + unsigned int & total; // r10 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBossPlankton.h b/dwarf/SB/Game/zNPCTypeBossPlankton.h new file mode 100644 index 000000000..1bf1b1768 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBossPlankton.h @@ -0,0 +1,84 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E5E0 -> 0x0036E5E8 +*/ +// Range: 0x36E5E0 -> 0x36E5E8 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x36E5E0 -> 0x36E5E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E5F0 -> 0x0036E5F8 +*/ +// Range: 0x36E5F0 -> 0x36E5F8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x36E5F0 -> 0x36E5F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E600 -> 0x0036E608 +*/ +// Range: 0x36E600 -> 0x36E608 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x36E600 -> 0x36E608 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E610 -> 0x0036E618 +*/ +// Range: 0x36E610 -> 0x36E618 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x36E610 -> 0x36E618 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E620 -> 0x0036E628 +*/ +// Range: 0x36E620 -> 0x36E628 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x36E620 -> 0x36E628 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossPlankton.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0036E630 -> 0x0036E638 +*/ +// Range: 0x36E630 -> 0x36E638 +signed int IsAlive() { + // Blocks + /* anonymous block */ { + // Range: 0x36E630 -> 0x36E638 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBossSB1.cpp b/dwarf/SB/Game/zNPCTypeBossSB1.cpp new file mode 100644 index 000000000..b32613ba0 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBossSB1.cpp @@ -0,0 +1,3915 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xVec3 BossArmTags[8]; // size: 0x60, address: 0x4E0CE0 +static class xVec3 BossFeetTags[4]; // size: 0x30, address: 0x4E0D40 +static class zNPCB_SB1 * sSB1_Ptr; // size: 0x4, address: 0x510188 +static class zEnt * sSB1_armTgtHit; // size: 0x4, address: 0x51018C +static unsigned int sSB1_deflated[2]; // size: 0x8, address: 0x510190 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSB1Deflate; // size: 0x34, address: 0x50D310 +unsigned int g_hash_bossanim[78]; // size: 0x138, address: 0x5DE220 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int deflateCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x35AF10 +signed int smashCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x35AF90 +signed int stompCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x35B0B0 +signed int tauntCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x35B1B0 +signed int idleCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x35B2B0 +signed int SB1Dummy_TgtEventFunc(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x35BD70 +void SB1Dummy_BoundFunc(class xEnt *, class xVec3 *); // size: 0x0, address: 0x35BDA0 +void SB1Dummy_RenderFunc(class xEnt *); // size: 0x0, address: 0x35BD90 +void SB1Dummy_UpdateFunc(class xEnt *, class xScene *, float); // size: 0x0, address: 0x35BDD0 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +char * g_strz_bossanim[78]; // size: 0x138, address: 0x4E0580 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB1Smash; // size: 0x34, address: 0x50D350 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB1Stomp; // size: 0x34, address: 0x50D390 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB1Taunt; // size: 0x34, address: 0x50D3D0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossSB1Idle; // size: 0x34, address: 0x50D410 +struct /* @anon1 */ { + // total size: 0xD8 +} __vt__9zNPCB_SB1; // size: 0xD8, address: 0x50D450 +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zNPCGoalBossSB1Idle : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zNPCB_SB1 : public zNPCBoss { + // total size: 0x4AC +public: + class xModelInstance * m_subModels[6]; // offset 0x2B4, size 0x18 + class xModelTag m_leftArmTags[4]; // offset 0x2CC, size 0x80 + class xModelTag m_rightArmTags[4]; // offset 0x34C, size 0x80 + class xModelTag m_feetTags[4]; // offset 0x3CC, size 0x80 + float m_tauntTimer; // offset 0x44C, size 0x4 + class zEnt * m_armColl[2]; // offset 0x450, size 0x8 + class zEnt * m_bodyColl; // offset 0x458, size 0x4 + class zEnt * m_armTgt[2]; // offset 0x45C, size 0x8 + class xFXRing * m_stompRing[16]; // offset 0x464, size 0x40 + unsigned char attacking; // offset 0x4A4, size 0x1 + float attack_delay; // offset 0x4A8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zNPCGoalBossSB1Stomp : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zNPCGoalBossSB1Smash : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zEntHangable { + // total size: 0x0 +}; +class xFXRing { + // total size: 0x3C +public: + unsigned int texture; // offset 0x0, size 0x4 + float lifetime; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + float time; // offset 0x14, size 0x4 + float ring_radius; // offset 0x18, size 0x4 + float ring_radius_delta; // offset 0x1C, size 0x4 + float ring_tilt; // offset 0x20, size 0x4 + float ring_tilt_delta; // offset 0x24, size 0x4 + float ring_height; // offset 0x28, size 0x4 + float ring_height_delta; // offset 0x2C, size 0x4 + class iColor_tag ring_color; // offset 0x30, size 0x4 + unsigned short ring_segs; // offset 0x34, size 0x2 + unsigned char u_repeat; // offset 0x36, size 0x1 + unsigned char v_repeat; // offset 0x37, size 0x1 + class xFXRing * * parent; // offset 0x38, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +struct /* @anon1 */ { + // total size: 0xD8 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zNPCGoalBossSB1Taunt : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zNPCGoalBossSB1Deflate : public zNPCGoalCommon { + // total size: 0x1C84 +public: + float timeInGoal; // offset 0x4C, size 0x4 + class RwV3d morphVertBuf[600]; // offset 0x50, size 0x1C20 + class RwV3d * targetVec; // offset 0x1C70, size 0x4 + class RwV3d * modelVec; // offset 0x1C74, size 0x4 + class RpGeometry * modelGeom; // offset 0x1C78, size 0x4 + signed int morphVertCount; // offset 0x1C7C, size 0x4 + float morphInvTime; // offset 0x1C80, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00359F80 -> 0x0035A0E8 +*/ +// Range: 0x359F80 -> 0x35A0E8 +signed int Process(class zNPCGoalBossSB1Deflate * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x359F80 -> 0x35A0E8 + float invlerp; // r3 + float lerp; // r2 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035A0F0 -> 0x0035A208 +*/ +// Range: 0x35A0F0 -> 0x35A208 +signed int Exit(class zNPCGoalBossSB1Deflate * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35A0F0 -> 0x35A208 + class zNPCB_SB1 * sb1; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035A210 -> 0x0035A36C +*/ +// Range: 0x35A210 -> 0x35A36C +signed int Enter(class zNPCGoalBossSB1Deflate * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35A210 -> 0x35A36C + class zNPCB_SB1 * sb1; // r2 + class RpGeometry * srcGeom; // r18 + class RpGeometry * dstGeom; // r17 + class xAnimState * deflateState; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035A370 -> 0x0035A6BC +*/ +// Range: 0x35A370 -> 0x35A6BC +signed int Process(class zNPCGoalBossSB1Smash * this /* r23 */, enum en_trantype * trantype /* r30 */, float dt /* r20 */, void * updCtxt /* r29+0xBC */, class xScene * xscn /* r29+0xB8 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35A370 -> 0x35A6BC + class zNPCB_SB1 * sb1; // r16 + signed int i; // r20 + class xVec3 curTag; // r29+0xE0 + class xVec3 sumTag; // r29+0xD0 + class xVec3 sumTag; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035A6C0 -> 0x0035A78C +*/ +// Range: 0x35A6C0 -> 0x35A78C +signed int Exit(class zNPCGoalBossSB1Smash * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35A6C0 -> 0x35A78C + class zNPCB_SB1 * sb1; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035A790 -> 0x0035A7E4 +*/ +// Range: 0x35A790 -> 0x35A7E4 +signed int Enter(class zNPCGoalBossSB1Smash * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35A790 -> 0x35A7E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035A7F0 -> 0x0035AA80 +*/ +// Range: 0x35A7F0 -> 0x35AA80 +signed int Process(class zNPCGoalBossSB1Stomp * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r22 */, class xScene * xscn /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35A7F0 -> 0x35AA80 + class zNPCB_SB1 * sb1; // r19 + unsigned int i; // r18 + class xVec3 feetTag[4]; // r29+0xC0 + class xVec3 wavePt[2]; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035AA80 -> 0x0035AAD0 +*/ +// Range: 0x35AA80 -> 0x35AAD0 +signed int Enter(class zNPCGoalBossSB1Stomp * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35AA80 -> 0x35AAD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035AAD0 -> 0x0035AB64 +*/ +// Range: 0x35AAD0 -> 0x35AB64 +signed int Process(class zNPCGoalBossSB1Taunt * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35AAD0 -> 0x35AB64 + class zNPCB_SB1 * sb1; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035AB70 -> 0x0035ABC8 +*/ +// Range: 0x35AB70 -> 0x35ABC8 +signed int Enter(class zNPCGoalBossSB1Taunt * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35AB70 -> 0x35ABC8 + class zNPCB_SB1 * sb1; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035ABD0 -> 0x0035AC94 +*/ +// Range: 0x35ABD0 -> 0x35AC94 +signed int Process(class zNPCGoalBossSB1Idle * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35ABD0 -> 0x35AC94 + class zNPCB_SB1 * sb1; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035ACA0 -> 0x0035AD00 +*/ +// Range: 0x35ACA0 -> 0x35AD00 +signed int Enter(class zNPCGoalBossSB1Idle * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35ACA0 -> 0x35AD00 + class zNPCB_SB1 * sb1; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035AD00 -> 0x0035AF08 +*/ +// Range: 0x35AD00 -> 0x35AF08 +static signed int SB1_FaceTarget(class zNPCB_SB1 * sb1 /* r17 */, class xVec3 * target /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35AD00 -> 0x35AF08 + signed int retval; // r16 + class xVec3 newAt; // r29+0x40 + float currRot; // r21 + float desireRot; // r20 + float diffRot; // r3 + float deltaRot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035AF10 -> 0x0035AF8C +*/ +// Range: 0x35AF10 -> 0x35AF8C +static signed int deflateCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35AF10 -> 0x35AF8C + class zNPCB_SB1 * sb1; // r2 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035AF90 -> 0x0035B0A4 +*/ +// Range: 0x35AF90 -> 0x35B0A4 +static signed int smashCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35AF90 -> 0x35B0A4 + class zNPCGoalBossSB1Smash * smash; // r16 + class zNPCB_SB1 * sb1; // r2 + signed int nextgoal; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B0B0 -> 0x0035B1A4 +*/ +// Range: 0x35B0B0 -> 0x35B1A4 +static signed int stompCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B0B0 -> 0x35B1A4 + class zNPCGoalBossSB1Stomp * stomp; // r16 + class zNPCB_SB1 * sb1; // r2 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B1B0 -> 0x0035B2B0 +*/ +// Range: 0x35B1B0 -> 0x35B2B0 +static signed int tauntCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B1B0 -> 0x35B2B0 + class zNPCB_SB1 * sb1; // r2 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B2B0 -> 0x0035B3CC +*/ +// Range: 0x35B2B0 -> 0x35B3CC +static signed int idleCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B2B0 -> 0x35B3CC + class zNPCGoalBossSB1Idle * idle; // r16 + class zNPCB_SB1 * sb1; // r2 + signed int nextgoal; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B3D0 -> 0x0035B3E4 +*/ +// Range: 0x35B3D0 -> 0x35B3E4 +void ThanksImDone(class zNPCB_SB1 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B3D0 -> 0x35B3E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B3F0 -> 0x0035B404 +*/ +// Range: 0x35B3F0 -> 0x35B404 +void HoldUpDude(class zNPCB_SB1 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B3F0 -> 0x35B404 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B410 -> 0x0035B43C +*/ +// Range: 0x35B410 -> 0x35B43C +float AttackTimeLeft(class zNPCB_SB1 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B410 -> 0x35B43C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B440 -> 0x0035B488 +*/ +// Range: 0x35B440 -> 0x35B488 +void NewTime(class zNPCB_SB1 * this /* r2 */, class xScene * xscn /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B440 -> 0x35B488 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B490 -> 0x0035B5D4 +*/ +// Range: 0x35B490 -> 0x35B5D4 +void Process(class zNPCB_SB1 * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B490 -> 0x35B5D4 + unsigned int i; // r4 + float rescale; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B5E0 -> 0x0035B6C0 +*/ +// Range: 0x35B5E0 -> 0x35B6C0 +unsigned int AnimPick(class zNPCB_SB1 * this /* r2 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B5E0 -> 0x35B6C0 + signed int index; // r3 + unsigned int animID; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B6C0 -> 0x0035B718 +*/ +// Range: 0x35B6C0 -> 0x35B718 +void Reset(class zNPCB_SB1 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B6C0 -> 0x35B718 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B720 -> 0x0035B85C +*/ +// Range: 0x35B720 -> 0x35B85C +void SelfSetup(class zNPCB_SB1 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B720 -> 0x35B85C + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B860 -> 0x0035B9E8 +*/ +// Range: 0x35B860 -> 0x35B9E8 +void Init(class zNPCB_SB1 * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35B860 -> 0x35B9E8 + signed int i; // r19 + class xModelInstance * minst; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035B9F0 -> 0x0035BD70 +*/ +// Range: 0x35B9F0 -> 0x35BD70 +static void SB1_ResetGlobalStuff() { + // Blocks + /* anonymous block */ { + // Range: 0x35B9F0 -> 0x35BD70 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035BD70 -> 0x0035BD88 +*/ +// Range: 0x35BD70 -> 0x35BD88 +static signed int SB1Dummy_TgtEventFunc(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35BD70 -> 0x35BD88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035BD90 -> 0x0035BD98 +*/ +// Range: 0x35BD90 -> 0x35BD98 +static void SB1Dummy_RenderFunc() { + // Blocks + /* anonymous block */ { + // Range: 0x35BD90 -> 0x35BD98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035BDA0 -> 0x0035BDD0 +*/ +// Range: 0x35BDA0 -> 0x35BDD0 +static void SB1Dummy_BoundFunc(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35BDA0 -> 0x35BDD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035BDD0 -> 0x0035BED8 +*/ +// Range: 0x35BDD0 -> 0x35BED8 +static void SB1Dummy_UpdateFunc(class xEnt * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35BDD0 -> 0x35BED8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB1.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035BEE0 -> 0x0035C2E4 +*/ +// Range: 0x35BEE0 -> 0x35C2E4 +class xAnimTable * ZNPC_AnimTable_BossSB1() { + // Blocks + /* anonymous block */ { + // Range: 0x35BEE0 -> 0x35C2E4 + class xAnimTable * table; // r16 + signed int ourAnims[11]; // r29+0x40 + class xAnimTransition * cur; // r3 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBossSB2.cpp b/dwarf/SB/Game/zNPCTypeBossSB2.cpp new file mode 100644 index 000000000..3a11a404f --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBossSB2.cpp @@ -0,0 +1,6147 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * sound_asset_names[10][4]; // size: 0xA0, address: 0x5E4400 +static unsigned int sound_asset_ids[10][4]; // size: 0xA0, address: 0x5E44A0 +static unsigned int sound_asset_names_size[10]; // size: 0x28, address: 0x5E4540 +static class sound_data_type sound_data[10]; // size: 0xA0, address: 0x5E4570 +static class sound_asset sound_assets[12]; // size: 0xC0, address: 0x502730 +static class tweak_group tweak; // size: 0x358, address: 0x5E4610 +static class curve_node scale_curve[4]; // size: 0x20, address: 0x5027F0 +static class response_curve rc_scale; // size: 0x10, address: 0x5E4970 +static class xBinaryCamera boss_cam; // size: 0x70, address: 0x4E0C70 +static class delay_goal sequence[9][16]; // size: 0x480, address: 0x502810 +static unsigned char dizzy_round[9]; // size: 0x9, address: 0x502C90 +static class node_hook node_hooks[9]; // size: 0x1D4, address: 0x502CA0 +static class hand_hook hand_hooks[2]; // size: 0xC0, address: 0x502E80 +static class platform_hook platform_hooks[16]; // size: 0x40, address: 0x502F40 +static class slug_hook slug_hooks[3]; // size: 0xC, address: 0x502F80 +static enum say_enum say_intro[1]; // size: 0x4, address: 0x502F90 +static enum say_enum say_hit_player[6]; // size: 0x18, address: 0x502FA0 +static enum say_enum say_hit_boss_1[4]; // size: 0x10, address: 0x502FC0 +static enum say_enum say_hit_boss_2[3]; // size: 0xC, address: 0x502FD0 +static enum say_enum say_hit_boss_3[1]; // size: 0x4, address: 0x502FE0 +static enum say_enum say_hit_fail[1]; // size: 0x4, address: 0x502FE8 +static enum say_enum say_hit_last[1]; // size: 0x4, address: 0x502FF0 +static enum say_enum say_spun[2]; // size: 0x8, address: 0x502FF8 +static enum say_enum say_vuln[7]; // size: 0x1C, address: 0x503000 +static enum say_enum say_stun[4]; // size: 0x10, address: 0x503020 +static enum say_enum say_return[1]; // size: 0x4, address: 0x503030 +static enum say_enum say_tactics[1]; // size: 0x4, address: 0x503038 +static enum say_enum say_fall[1]; // size: 0x4, address: 0x503040 +static class /* @class */ { + // total size: 0x8 +public: + enum say_enum * say; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +} say_set[13]; // size: 0x68, address: 0x503050 +class zNPCB_SB2 * _singleton; // size: 0x4, address: 0x510184 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB2Death; // size: 0x34, address: 0x50CFB0 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon2 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int g_hash_bossanim[78]; // size: 0x138, address: 0x5DE220 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossSB2Karate; // size: 0x34, address: 0x50CFF0 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossSB2Chop; // size: 0x34, address: 0x50D030 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB2Swipe; // size: 0x34, address: 0x50D070 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossSB2Hunt; // size: 0x34, address: 0x50D0B0 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__18zNPCGoalBossSB2Hit; // size: 0x34, address: 0x50D0F0 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB2Dizzy; // size: 0x34, address: 0x50D130 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB2Taunt; // size: 0x34, address: 0x50D170 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__19zNPCGoalBossSB2Idle; // size: 0x34, address: 0x50D1B0 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSB2Intro; // size: 0x34, address: 0x50D1F0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xVec3 m_UnitAxisY; // size: 0xC, address: 0x4F9980 +char * g_strz_bossanim[78]; // size: 0x138, address: 0x4E0580 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon8 */ { + // total size: 0xD8 +} __vt__9zNPCB_SB2; // size: 0xD8, address: 0x50D230 +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zEntDestructObj : public zEnt { + // total size: 0x114 +public: + class zEntDestructObjAsset * dasset; // offset 0xD4, size 0x4 + unsigned int state; // offset 0xD8, size 0x4 + unsigned int healthCnt; // offset 0xDC, size 0x4 + float fx_timer; // offset 0xE0, size 0x4 + class zParEmitter * fx_emitter; // offset 0xE4, size 0x4 + float respawn_timer; // offset 0xE8, size 0x4 + unsigned int throw_target; // offset 0xEC, size 0x4 + class zShrapnelAsset * shrapnel_destroy; // offset 0xF0, size 0x4 + class zShrapnelAsset * shrapnel_hit; // offset 0xF4, size 0x4 + class xModelInstance * base_model; // offset 0xF8, size 0x4 + class xModelInstance * hit_model; // offset 0xFC, size 0x4 + class xModelInstance * destroy_model; // offset 0x100, size 0x4 + void (* destroy_notify)(class zEntDestructObj &, void *); // offset 0x104, size 0x4 + void * notify_context; // offset 0x108, size 0x4 + class xSFXAsset * sfx_destroy; // offset 0x10C, size 0x4 + class xSFXAsset * sfx_hit; // offset 0x110, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zNPCB_SB2 : public zNPCBoss { + // total size: 0x1B40 +public: + class /* @class */ { + // total size: 0x10 + public: + unsigned char face_player; // offset 0x0, size 0x1 + unsigned char face_follow; // offset 0x1, size 0x1 + unsigned char dizzy; // offset 0x2, size 0x1 + enum move_enum move; // offset 0x4, size 0x4 + unsigned char vulnerable; // offset 0x8, size 0x1 + unsigned char cruise_exploding; // offset 0x9, size 0x1 + unsigned char cruise_hit_body; // offset 0xA, size 0x1 + unsigned char cruise_hit_target; // offset 0xB, size 0x1 + unsigned char nodes_taken; // offset 0xC, size 0x1 + unsigned char updated; // offset 0xD, size 0x1 + } flag; // offset 0x2B4, size 0x10 + signed int life; // offset 0x2C4, size 0x4 + signed int round; // offset 0x2C8, size 0x4 + signed int stage; // offset 0x2CC, size 0x4 + float delay; // offset 0x2D0, size 0x4 + float stage_delay; // offset 0x2D4, size 0x4 + float player_damage_timer; // offset 0x2D8, size 0x4 + unsigned int old_player_health; // offset 0x2DC, size 0x4 + enum hand_enum active_hand; // offset 0x2E0, size 0x4 + class zNPCBPlankton * plankton; // offset 0x2E4, size 0x4 + class zNPCNewsFish * newsfish; // offset 0x2E8, size 0x4 + unsigned char said_intro; // offset 0x2EC, size 0x1 + class xModelInstance * models[4]; // offset 0x2F0, size 0x10 + class node_data nodes[9]; // offset 0x300, size 0x414 + class hand_data hands[2]; // offset 0x714, size 0x218 + class platform_data platforms[16]; // offset 0x92C, size 0x5C0 + class bound_data bounds[5]; // offset 0xEF0, size 0x640 + class slug_data slugs[3]; // offset 0x1530, size 0x270 + class /* @class */ { + // total size: 0x14 + public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + } turn; // offset 0x17A0, size 0x14 + class move_data move; // offset 0x17B4, size 0x2C + class /* @class */ { + // total size: 0x10 + public: + float begin; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float time; // offset 0x8, size 0x4 + float end_time; // offset 0xC, size 0x4 + } ymove; // offset 0x17E0, size 0x10 + class /* @class */ { + // total size: 0x30 + public: + class xVec3 body; // offset 0x0, size 0xC + class xVec3 mouth; // offset 0xC, size 0xC + class xVec3 hand[2]; // offset 0x18, size 0x18 + } sound_loc; // offset 0x17F0, size 0x30 + float node_pulse; // offset 0x1820, size 0x4 + class /* @class */ { + // total size: 0x310 + public: + class xLightKit kit; // offset 0x0, size 0x10 + class xLightKitLight light[8]; // offset 0x10, size 0x300 + } glow_light; // offset 0x1824, size 0x310 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zNPCBPlankton : public zNPCBoss { + // total size: 0x6B0 +public: + class /* @class */ { + // total size: 0x10 + public: + unsigned char updated; // offset 0x0, size 0x1 + unsigned char face_player; // offset 0x1, size 0x1 + unsigned char attacking; // offset 0x2, size 0x1 + unsigned char hunt; // offset 0x3, size 0x1 + unsigned char aim_gun; // offset 0x4, size 0x1 + enum move_enum move; // offset 0x8, size 0x4 + enum follow_enum follow; // offset 0xC, size 0x4 + } flag; // offset 0x2B4, size 0x10 + enum mode_enum mode; // offset 0x2C4, size 0x4 + float delay; // offset 0x2C8, size 0x4 + class xQuat gun_tilt; // offset 0x2D0, size 0x10 + float ambush_delay; // offset 0x2E0, size 0x4 + float beam_duration; // offset 0x2E4, size 0x4 + float stun_duration; // offset 0x2E8, size 0x4 + class xDecalEmitter beam_ring; // offset 0x2EC, size 0x68 + class xDecalEmitter beam_glow; // offset 0x354, size 0x68 + class xLaserBoltEmitter beam; // offset 0x3BC, size 0x94 + class xParEmitter * beam_charge; // offset 0x450, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + class xVec3 center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + } orbit; // offset 0x454, size 0x10 + class /* @class */ { + // total size: 0x14 + public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + } turn; // offset 0x464, size 0x14 + class move_info move; // offset 0x478, size 0x30 + class /* @class */ { + // total size: 0x8 + public: + float delay; // offset 0x0, size 0x4 + float max_delay; // offset 0x4, size 0x4 + } follow; // offset 0x4A8, size 0x8 + class /* @class */ { + // total size: 0x1 + public: + unsigned char moreFlags; // offset 0x0, size 0x1 + } old; // offset 0x4B0, size 0x1 + class zNPCBoss * crony; // offset 0x4B4, size 0x4 + class territory_data territory[8]; // offset 0x4B8, size 0x1E0 + signed int territory_size; // offset 0x698, size 0x4 + signed int active_territory; // offset 0x69C, size 0x4 + class zNPCNewsFish * newsfish; // offset 0x6A0, size 0x4 + unsigned int old_player_health; // offset 0x6A4, size 0x4 + unsigned char played_intro; // offset 0x6A8, size 0x1 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class zNPCNewsFish : public zNPCVillager { + // total size: 0x530 +public: + class say_data said[71]; // offset 0x2B0, size 0x238 + unsigned char was_reset; // offset 0x4E8, size 0x1 + unsigned int soundHandle; // offset 0x4EC, size 0x4 + unsigned int currSoundID; // offset 0x4F0, size 0x4 + unsigned int nextSoundID; // offset 0x4F4, size 0x4 + float jawTime; // offset 0x4F8, size 0x4 + void * jawData; // offset 0x4FC, size 0x4 + unsigned int newsfishFlags; // offset 0x500, size 0x4 + class xVec2 onScreenCoords; // offset 0x504, size 0x8 + class xVec2 offScreenCoords; // offset 0x50C, size 0x8 + class xVec2 screenCoords; // offset 0x514, size 0x8 + float screenSize; // offset 0x51C, size 0x4 + float screenRot; // offset 0x520, size 0x4 + float appearSpeed; // offset 0x524, size 0x4 + float disappearSpeed; // offset 0x528, size 0x4 + float screenLerp; // offset 0x52C, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class bound_data { + // total size: 0x140 +public: + class xEnt ent; // offset 0x0, size 0xD0 + class xMat4x3 mat; // offset 0xD0, size 0x40 + class xMat3x3 rot_mat; // offset 0x110, size 0x30 +}; +class zNPCGoalBossSB2Intro : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCB_SB2 & owner; // offset 0x4C, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tweak_group { + // total size: 0x358 +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float turn_accel; // offset 0x8, size 0x4 + float turn_max_vel; // offset 0xC, size 0x4 + float arena_radius; // offset 0x10, size 0x4 + float ground_y; // offset 0x14, size 0x4 + float ground_radius; // offset 0x18, size 0x4 + float ground_zone_height; // offset 0x1C, size 0x4 + float move_radius; // offset 0x20, size 0x4 + float damage_speed; // offset 0x24, size 0x4 + float player_damage_time; // offset 0x28, size 0x4 + float intro_time; // offset 0x2C, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float pulse_rate; // offset 0x0, size 0x4 + float pulse_min; // offset 0x4, size 0x4 + float pulse_max; // offset 0x8, size 0x4 + } nodes; // offset 0x30, size 0xC + class /* @class */ { + // total size: 0x14 + public: + float min_dist; // offset 0x0, size 0x4 + float vel; // offset 0x4, size 0x4 + float accel; // offset 0x8, size 0x4 + float decel; // offset 0xC, size 0x4 + float collide_vel; // offset 0x10, size 0x4 + } spin; // offset 0x3C, size 0x14 + class /* @class */ { + // total size: 0x4 + public: + float delay_vuln; // offset 0x0, size 0x4 + } help; // offset 0x50, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + float delay; // offset 0x0, size 0x4 + } chop; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + float hold_time; // offset 0x0, size 0x4 + } swipe; // offset 0x58, size 0x4 + class /* @class */ { + // total size: 0x50 + public: + class xVec3 emit_offset; // offset 0x0, size 0xC + float emit_arc; // offset 0xC, size 0x4 + float aim_dist; // offset 0x10, size 0x4 + float aim_time; // offset 0x14, size 0x4 + float aim_accel_time; // offset 0x18, size 0x4 + float fire_vel; // offset 0x1C, size 0x4 + float fire_accel; // offset 0x20, size 0x4 + float drop_vel; // offset 0x24, size 0x4 + float drop_accel; // offset 0x28, size 0x4 + float target_yoffset; // offset 0x2C, size 0x4 + float fade_dist; // offset 0x30, size 0x4 + float kill_dist; // offset 0x34, size 0x4 + float delay_emit[3]; // offset 0x38, size 0xC + float delay_fire[3]; // offset 0x44, size 0xC + } karate; // offset 0x5C, size 0x50 + class /* @class */ { + // total size: 0x10 + public: + float warm_up; // offset 0x0, size 0x4 + float cool_down; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float move_time; // offset 0xC, size 0x4 + } hunt; // offset 0xAC, size 0x10 + class /* @class */ { + // total size: 0x30 + public: + unsigned char is_sphere; // offset 0x0, size 0x1 + unsigned char damage_player; // offset 0x1, size 0x1 + signed int bone; // offset 0x4, size 0x4 + class xVec3 offset; // offset 0x8, size 0xC + float radius; // offset 0x14, size 0x4 + class xVec3 extent; // offset 0x18, size 0xC + float yaw; // offset 0x24, size 0x4 + float pitch; // offset 0x28, size 0x4 + float roll; // offset 0x2C, size 0x4 + } bounds[3]; // offset 0xBC, size 0x90 + class sound_property sound[10]; // offset 0x14C, size 0xF0 + void * context; // offset 0x23C, size 0x4 + class tweak_callback cb_arena; // offset 0x240, size 0x28 + class tweak_callback cb_ground; // offset 0x268, size 0x28 + class tweak_callback cb_move_radius; // offset 0x290, size 0x28 + class tweak_callback cb_bounds; // offset 0x2B8, size 0x28 + class tweak_callback cb_hunt_move; // offset 0x2E0, size 0x28 + class tweak_callback cb_sound; // offset 0x308, size 0x28 + class tweak_callback cb_sound_asset; // offset 0x330, size 0x28 +}; +class xModelTagWithNormal : public xModelTag { + // total size: 0x2C +public: + class xVec3 normal; // offset 0x20, size 0xC +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zNPCGoalBossSB2Hunt : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned char following; // offset 0x4C, size 0x1 + class zNPCB_SB2 & owner; // offset 0x50, size 0x4 +}; +class zNPCGoalBossSB2Death : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCB_SB2 & owner; // offset 0x4C, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class platform_data { + // total size: 0x5C +public: + unsigned char stopping; // offset 0x0, size 0x1 + class xEnt * ent; // offset 0x4, size 0x4 + float radius; // offset 0x8, size 0x4 + class xMat3x3 mat; // offset 0xC, size 0x30 + class /* @class */ { + // total size: 0x20 + public: + class xVec3 axis; // offset 0x0, size 0xC + float ang; // offset 0xC, size 0x4 + float end_ang; // offset 0x10, size 0x4 + float vel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 + float accel; // offset 0x1C, size 0x4 + } spin; // offset 0x3C, size 0x20 +}; +class bolt { + // total size: 0x4C +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + class xVec3 loc; // offset 0x18, size 0xC + class xVec3 hit_norm; // offset 0x24, size 0xC + float dist; // offset 0x30, size 0x4 + float hit_dist; // offset 0x34, size 0x4 + float prev_dist; // offset 0x38, size 0x4 + float prev_check_dist; // offset 0x3C, size 0x4 + class xEnt * hit_ent; // offset 0x40, size 0x4 + float emitted; // offset 0x44, size 0x4 + void * context; // offset 0x48, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class slug_hook { + // total size: 0x4 +public: + char * name; // offset 0x0, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x2C +}; +class zNPCGoalBossSB2Karate : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned char emitted[3]; // offset 0x4C, size 0x3 + unsigned char started; // offset 0x4F, size 0x1 + class zNPCB_SB2 & owner; // offset 0x50, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class zNPCGoalBossSB2Idle : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned char transitioning; // offset 0x4C, size 0x1 + class zNPCB_SB2 & owner; // offset 0x50, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class zNPCGoalBossSB2Chop : public zNPCGoalCommon { + // total size: 0x60 +public: + unsigned char started; // offset 0x4C, size 0x1 + unsigned char targetted; // offset 0x4D, size 0x1 + unsigned int begin_anim; // offset 0x50, size 0x4 + unsigned int loop_anim; // offset 0x54, size 0x4 + unsigned int end_anim; // offset 0x58, size 0x4 + class zNPCB_SB2 & owner; // offset 0x5C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xTimer { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4C +public: + class xModelTagWithNormal tag; // offset 0x0, size 0x2C + class xModelTag uptag; // offset 0x2C, size 0x20 +}; +class /* @class */ { + // total size: 0x50 +public: + class xVec3 emit_offset; // offset 0x0, size 0xC + float emit_arc; // offset 0xC, size 0x4 + float aim_dist; // offset 0x10, size 0x4 + float aim_time; // offset 0x14, size 0x4 + float aim_accel_time; // offset 0x18, size 0x4 + float fire_vel; // offset 0x1C, size 0x4 + float fire_accel; // offset 0x20, size 0x4 + float drop_vel; // offset 0x24, size 0x4 + float drop_accel; // offset 0x28, size 0x4 + float target_yoffset; // offset 0x2C, size 0x4 + float fade_dist; // offset 0x30, size 0x4 + float kill_dist; // offset 0x34, size 0x4 + float delay_emit[3]; // offset 0x38, size 0xC + float delay_fire[3]; // offset 0x44, size 0xC +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class sound_property { + // total size: 0x18 +public: + unsigned int asset; // offset 0x0, size 0x4 + float volume; // offset 0x4, size 0x4 + float range_inner; // offset 0x8, size 0x4 + float range_outer; // offset 0xC, size 0x4 + float delay; // offset 0x10, size 0x4 + float fade_time; // offset 0x14, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class inode : public node { + // total size: 0x8 +public: + float value[1]; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class curve_node { + // total size: 0x8 +public: + float t; // offset 0x0, size 0x4 + float value; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class move_info { + // total size: 0x30 +public: + class xVec3 dest; // offset 0x0, size 0xC + class xVec3 vel; // offset 0xC, size 0xC + class xVec3 accel; // offset 0x18, size 0xC + class xVec3 max_vel; // offset 0x24, size 0xC +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zNPCGoalBossSB2Swipe : public zNPCGoalCommon { + // total size: 0x60 +public: + unsigned char started; // offset 0x4C, size 0x1 + unsigned char holding; // offset 0x4D, size 0x1 + unsigned char said; // offset 0x4E, size 0x1 + unsigned int begin_anim; // offset 0x50, size 0x4 + unsigned int loop_anim; // offset 0x54, size 0x4 + unsigned int end_anim; // offset 0x58, size 0x4 + class zNPCB_SB2 & owner; // offset 0x5C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class say_data { + // total size: 0x8 +public: + signed int total; // offset 0x0, size 0x4 + signed int prev_total; // offset 0x4, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class /* @class */ { + // total size: 0x14 +public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 +}; +class effect_data { + // total size: 0x18 +public: + enum fx_type_enum type; // offset 0x0, size 0x4 + enum fx_orient_enum orient; // offset 0x4, size 0x4 + float rate; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + union { // inferred + class xParEmitter * par; // offset 0x0, size 0x4 + class xDecalEmitter * decal; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 + } callback; // offset 0x0, size 0x8 + }; + } data; // offset 0xC, size 0x8 + float irate; // offset 0x14, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x310 +public: + class xLightKit kit; // offset 0x0, size 0x10 + class xLightKitLight light[8]; // offset 0x10, size 0x300 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +enum fx_type_enum { + FX_TYPE_PARTICLE = 0, + FX_TYPE_DECAL = 1, + FX_TYPE_DECAL_DIST = 2, + FX_TYPE_CALLBACK = 3, +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum slug_stage { + SLUG_INACTIVE = 0, + SLUG_AIM = 1, + SLUG_DELAY = 2, + SLUG_DYING = 3, + SLUG_FIRE = 4, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class sound_data_type { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned int handle; // offset 0x4, size 0x4 + class xVec3 * loc; // offset 0x8, size 0x4 + float volume; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x60 +public: + class xModelTag tag[3]; // offset 0x0, size 0x60 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum move_enum { + MOVE_NONE = 0, + MOVE_ACCEL = 1, + MOVE_STOP = 2, + MOVE_ORBIT = 3, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zNPCVillager : public zNPCCommon { + // total size: 0x2B0 +public: + class HiThere hithere; // offset 0x2A0, size 0x8 + class ztaskbox * converse; // offset 0x2A8, size 0x4 + signed int current_talk_anim; // offset 0x2AC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class zNPCGoalBossSB2Dizzy : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned char sicked; // offset 0x4C, size 0x1 + class zNPCB_SB2 & owner; // offset 0x50, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float delay; // offset 0x0, size 0x4 + float max_delay; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class slug_data { + // total size: 0xD0 +public: + enum slug_stage stage; // offset 0x0, size 0x4 + unsigned char spun; // offset 0x4, size 0x1 + unsigned char abandoned; // offset 0x5, size 0x1 + float time; // offset 0x8, size 0x4 + float stage_delay; // offset 0xC, size 0x4 + class xEnt * ent; // offset 0x10, size 0x4 + class platform_data * target; // offset 0x14, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 dmat; // offset 0x60, size 0x40 + class xVec3 move_dir; // offset 0xA0, size 0xC + float dist; // offset 0xAC, size 0x4 + float vel; // offset 0xB0, size 0x4 + float accel; // offset 0xB4, size 0x4 + float end_dist; // offset 0xB8, size 0x4 + float max_vel; // offset 0xBC, size 0x4 + float ydist; // offset 0xC0, size 0x4 + float yvel; // offset 0xC4, size 0x4 + float end_ydist; // offset 0xC8, size 0x4 + unsigned int sound_handle; // offset 0xCC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zEntDestructObjAsset { + // total size: 0x38 +public: + float animSpeed; // offset 0x0, size 0x4 + unsigned int initAnimState; // offset 0x4, size 0x4 + unsigned int health; // offset 0x8, size 0x4 + unsigned int spawnItemID; // offset 0xC, size 0x4 + unsigned int dflags; // offset 0x10, size 0x4 + unsigned char collType; // offset 0x14, size 0x1 + unsigned char fxType; // offset 0x15, size 0x1 + unsigned char pad[2]; // offset 0x16, size 0x2 + float blast_radius; // offset 0x18, size 0x4 + float blast_strength; // offset 0x1C, size 0x4 + unsigned int shrapnelID_destroy; // offset 0x20, size 0x4 + unsigned int shrapnelID_hit; // offset 0x24, size 0x4 + unsigned int sfx_destroy; // offset 0x28, size 0x4 + unsigned int sfx_hit; // offset 0x2C, size 0x4 + unsigned int hitModel; // offset 0x30, size 0x4 + unsigned int destroyModel; // offset 0x34, size 0x4 +}; +class zNPCGoalBossSB2Hit : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCB_SB2 & owner; // offset 0x4C, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum fx_orient_enum { + FX_ORIENT_DEFAULT = 0, + FX_ORIENT_PATH = 1, + FX_ORIENT_IPATH = 2, + FX_ORIENT_HIT_NORM = 3, + FX_ORIENT_HIT_REFLECT = 4, + MAX_FX_ORIENT = 5, + FORCE_INT_FX_ORIENT = -1, +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +enum hand_enum { + LEFT_HAND = 0, + RIGHT_HAND = 1, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum follow_enum { + FOLLOW_NONE = 0, + FOLLOW_PLAYER = 1, + FOLLOW_CAMERA = 2, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class move_config { + // total size: 0x10 +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float turn_accel; // offset 0x8, size 0x4 + float turn_max_vel; // offset 0xC, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + signed int from; // offset 0x0, size 0x4 + signed int to; // offset 0x4, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class hand_hook { + // total size: 0x60 +public: + class xVec3 head[4]; // offset 0x0, size 0x30 + class xVec3 tail[4]; // offset 0x30, size 0x30 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zNPCGoalBossSB2Taunt : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCB_SB2 & owner; // offset 0x4C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class unit_data { + // total size: 0x50 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char curve_index; // offset 0x1, size 0x1 + unsigned char u; // offset 0x2, size 0x1 + unsigned char v; // offset 0x3, size 0x1 + float frac; // offset 0x4, size 0x4 + float age; // offset 0x8, size 0x4 + float cull_size; // offset 0xC, size 0x4 + class xMat4x3 mat; // offset 0x10, size 0x40 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char moreFlags; // offset 0x0, size 0x1 +}; +enum mode_enum { + MODE_BUDDY = 0, + MODE_HARASS = 1, +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xParSys { + // total size: 0x0 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RyzMemData { + // total size: 0x1 +}; +class /* @class */ { + // total size: 0x10 +public: + float warm_up; // offset 0x0, size 0x4 + float cool_down; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float move_time; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class territory_data { + // total size: 0x3C +public: + class zMovePoint * origin; // offset 0x0, size 0x4 + class xEnt * platform; // offset 0x4, size 0x4 + class zEntDestructObj * fuse; // offset 0x8, size 0x4 + class xTimer * timer; // offset 0xC, size 0x4 + class zNPCCommon * crony[8]; // offset 0x10, size 0x20 + signed int crony_size; // offset 0x30, size 0x4 + unsigned char fuse_detected; // offset 0x34, size 0x1 + unsigned char fuse_destroyed; // offset 0x35, size 0x1 + float fuse_detect_time; // offset 0x38, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class node_hook { + // total size: 0x34 +public: + char * name; // offset 0x0, size 0x4 + enum model_enum model; // offset 0x4, size 0x4 + unsigned char center; // offset 0x8, size 0x1 + signed int loc_size; // offset 0xC, size 0x4 + class xVec3 loc[3]; // offset 0x10, size 0x24 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float pulse_rate; // offset 0x0, size 0x4 + float pulse_min; // offset 0x4, size 0x4 + float pulse_max; // offset 0x8, size 0x4 +}; +class move_data : public move_config { + // total size: 0x2C +public: + class xVec2 dest; // offset 0x10, size 0x8 + class xVec2 dir; // offset 0x18, size 0x8 + float vel; // offset 0x20, size 0x4 + float yaw; // offset 0x24, size 0x4 + float yaw_vel; // offset 0x28, size 0x4 +}; +class hand_data { + // total size: 0x10C +public: + unsigned char hurt_player; // offset 0x0, size 0x1 + unsigned char hit_platforms; // offset 0x1, size 0x1 + class xModelTag head_tag[4]; // offset 0x4, size 0x80 + class xModelTag tail_tag[4]; // offset 0x84, size 0x80 + class xEnt * ent; // offset 0x104, size 0x4 + float radius; // offset 0x108, size 0x4 +}; +class xDecalEmitter { + // total size: 0x68 +public: + class config cfg; // offset 0x0, size 0x28 + class /* @class */ { + // total size: 0x1C + public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 + } texture; // offset 0x28, size 0x1C + class static_queue units; // offset 0x44, size 0x14 + class curve_node * curve; // offset 0x58, size 0x4 + unsigned int curve_size; // offset 0x5C, size 0x4 + unsigned int curve_index; // offset 0x60, size 0x4 + float ilife; // offset 0x64, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum model_enum { + MODEL_EYES = 0, + MODEL_HAND_LEFT = 1, + MODEL_HAND_RIGHT = 2, + MODEL_BODY = 3, + MAX_MODEL = 4, + MODEL_SAFE = 3, + MODEL_DAMAGE = 0, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class asset_type { + // total size: 0x0 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xLaserBoltEmitter { + // total size: 0x94 +public: + class config cfg; // offset 0x0, size 0x3C + class static_queue bolts; // offset 0x3C, size 0x14 + float ialpha; // offset 0x50, size 0x4 + class RwRaster * bolt_raster; // offset 0x54, size 0x4 + signed int start_collide; // offset 0x58, size 0x4 + class effect_data * fx[7]; // offset 0x5C, size 0x1C + unsigned int fxsize[7]; // offset 0x78, size 0x1C +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class callback { + // total size: 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class response_curve { + // total size: 0x10 +public: + unsigned int values; // offset 0x0, size 0x4 + class inode * curve; // offset 0x4, size 0x4 + unsigned int nodes; // offset 0x8, size 0x4 + unsigned int active_node; // offset 0xC, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class delay_goal { + // total size: 0x8 +public: + signed int goal; // offset 0x0, size 0x4 + float delay; // offset 0x4, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class config { + // total size: 0x3C +public: + float radius; // offset 0x0, size 0x4 + float length; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float fade_dist; // offset 0xC, size 0x4 + float kill_dist; // offset 0x10, size 0x4 + float safe_dist; // offset 0x14, size 0x4 + float hit_radius; // offset 0x18, size 0x4 + float rand_ang; // offset 0x1C, size 0x4 + float scar_life; // offset 0x20, size 0x4 + class xVec2 bolt_uv[2]; // offset 0x24, size 0x10 + signed int hit_interval; // offset 0x34, size 0x4 + float damage; // offset 0x38, size 0x4 +}; +enum say_enum { + INVALID_SAY = -1, + SAY_B101_01 = 0, + SAY_B101_02 = 1, + SAY_B101_03 = 2, + SAY_B101_04 = 3, + SAY_B101_05 = 4, + SAY_B101_06 = 5, + SAY_B101_07 = 6, + SAY_B101_08 = 7, + SAY_B101_09 = 8, + SAY_B101_10 = 9, + SAY_B101_11 = 10, + SAY_B101_12 = 11, + SAY_B101_13 = 12, + SAY_B101_14 = 13, + SAY_B101_15 = 14, + SAY_B101_16 = 15, + SAY_B201_01 = 16, + SAY_B201_02 = 17, + SAY_B201_03 = 18, + SAY_B201_04 = 19, + SAY_B201_05 = 20, + SAY_B201_06 = 21, + SAY_B201_07 = 22, + SAY_B303_INTRO_1 = 23, + SAY_B303_INTRO_2 = 24, + SAY_B303_FUSE_NEAR = 25, + SAY_B303_FUSE_HIT = 26, + SAY_B303_BRAIN_HELP_1 = 27, + SAY_B303_BRAIN_HELP_2 = 28, + SAY_B303_BRAIN_HELP_3 = 29, + SAY_HIT_PLAYER_1 = 30, + SAY_HIT_PLAYER_2 = 31, + SAY_HIT_PLAYER_3 = 32, + SAY_HIT_PLAYER_4 = 33, + SAY_HIT_PLAYER_5 = 34, + SAY_HIT_PLAYER_6 = 35, + SAY_BOWL_HIT_1 = 36, + SAY_BOWL_HIT_2 = 37, + SAY_BOWL_HIT_3 = 38, + SAY_BOWL_HIT_4 = 39, + SAY_BOWL_HIT_5 = 40, + SAY_BOWL_HELP = 41, + SAY_HIT_BOSS_1 = 42, + SAY_HIT_BOSS_2 = 43, + SAY_SANDY_SPLIT = 44, + SAY_SANDY_FLY = 45, + SAY_SB_VICTORY = 46, + SAY_SB_ROUGH_RIDE = 47, + SAY_SB_BACK = 48, + SAY_SB_HIT_FAIL_1 = 49, + SAY_SB_HIT_FAIL_2 = 50, + SAY_SB_HIT_BOSS_1 = 51, + SAY_SB_HIT_BOSS_2 = 52, + SAY_SB_HIT_BOSS_3 = 53, + SAY_SB_VULN_1 = 54, + SAY_SB_VULN_2 = 55, + SAY_SB_VULN_3 = 56, + SAY_SB_VULN_4 = 57, + SAY_SB_VULN_5 = 58, + SAY_ROBOT_TACTICS = 59, + SAY_ROBOT_HIT_FAIL = 60, + SAY_ROBOT_DIZZY = 61, + SAY_ROBOT_STUN_1 = 62, + SAY_ROBOT_STUN_2 = 63, + SAY_ROBOT_STUN_3 = 64, + SAY_ROBOT_HIT = 65, + SAY_ROBOT_VULN_1 = 66, + SAY_ROBOT_VULN_2 = 67, + SAY_SPIN = 68, + SAY_B302_INTRO = 69, + SAY_HIT_LAST = 70, + MAX_SAY = 71, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class node { + // total size: 0x4 +public: + float t; // offset 0x0, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char updated; // offset 0x0, size 0x1 + unsigned char face_player; // offset 0x1, size 0x1 + unsigned char attacking; // offset 0x2, size 0x1 + unsigned char hunt; // offset 0x3, size 0x1 + unsigned char aim_gun; // offset 0x4, size 0x1 + enum move_enum move; // offset 0x8, size 0x4 + enum follow_enum follow; // offset 0xC, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class /* @class */ { + // total size: 0x8 +public: + union { // inferred + class xParEmitter * par; // offset 0x0, size 0x4 + class xDecalEmitter * decal; // offset 0x0, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 + } callback; // offset 0x0, size 0x8 + }; +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class sound_asset { + // total size: 0x10 +public: + signed int group; // offset 0x0, size 0x4 + char * name; // offset 0x4, size 0x4 + unsigned int priority; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float min_dist; // offset 0x0, size 0x4 + float vel; // offset 0x4, size 0x4 + float accel; // offset 0x8, size 0x4 + float decel; // offset 0xC, size 0x4 + float collide_vel; // offset 0x10, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class /* @class */ { + // total size: 0x10 +public: + float begin; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float time; // offset 0x8, size 0x4 + float end_time; // offset 0xC, size 0x4 +}; +enum slug_enum { + BEGIN_SLUG = 0, + SLUG_KAH = 0, + SLUG_RAH = 1, + SLUG_TAY = 2, + MAX_SLUG = 3, +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class /* @class */ { + // total size: 0x8 +public: + void (* fp)(class bolt &, void *); // offset 0x0, size 0x4 + void * context; // offset 0x4, size 0x4 +}; +enum texture_mode { + TM_DEFAULT = 0, + TM_RANDOM = 1, + TM_CYCLE = 2, + MAX_TM = 3, + FORCE_INT_TM = -1, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x30 +public: + unsigned char is_sphere; // offset 0x0, size 0x1 + unsigned char damage_player; // offset 0x1, size 0x1 + signed int bone; // offset 0x4, size 0x4 + class xVec3 offset; // offset 0x8, size 0xC + float radius; // offset 0x14, size 0x4 + class xVec3 extent; // offset 0x18, size 0xC + float yaw; // offset 0x24, size 0x4 + float pitch; // offset 0x28, size 0x4 + float roll; // offset 0x2C, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char face_player; // offset 0x0, size 0x1 + unsigned char face_follow; // offset 0x1, size 0x1 + unsigned char dizzy; // offset 0x2, size 0x1 + enum move_enum move; // offset 0x4, size 0x4 + unsigned char vulnerable; // offset 0x8, size 0x1 + unsigned char cruise_exploding; // offset 0x9, size 0x1 + unsigned char cruise_hit_body; // offset 0xA, size 0x1 + unsigned char cruise_hit_target; // offset 0xB, size 0x1 + unsigned char nodes_taken; // offset 0xC, size 0x1 + unsigned char updated; // offset 0xD, size 0x1 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +struct /* @anon8 */ { + // total size: 0xD8 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class bolt * _buffer; // offset 0x10, size 0x4 +}; +enum move_enum { + MOVE_NONE = 0, + MOVE_HALT = 1, + MOVE_FOLLOW = 2, + MOVE_Y = 3, +}; +class /* @class */ { + // total size: 0x20 +public: + class xVec3 axis; // offset 0x0, size 0xC + float ang; // offset 0xC, size 0x4 + float end_ang; // offset 0x10, size 0x4 + float vel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 + float accel; // offset 0x1C, size 0x4 +}; +class config { + // total size: 0x28 +public: + unsigned int flags; // offset 0x0, size 0x4 + float life_time; // offset 0x4, size 0x4 + unsigned int blend_src; // offset 0x8, size 0x4 + unsigned int blend_dst; // offset 0xC, size 0x4 + class /* @class */ { + // total size: 0x18 + public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 + } texture; // offset 0x10, size 0x18 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x4 +public: + float delay_vuln; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x30 +public: + class xVec3 body; // offset 0x0, size 0xC + class xVec3 mouth; // offset 0xC, size 0xC + class xVec3 hand[2]; // offset 0x18, size 0x18 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + enum say_enum * say; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + class xVec2 uv[2]; // offset 0x0, size 0x10 + unsigned char rows; // offset 0x10, size 0x1 + unsigned char cols; // offset 0x11, size 0x1 + enum texture_mode mode; // offset 0x14, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class HiThere : public callback { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + float delay; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class platform_hook { + // total size: 0x4 +public: + char * name; // offset 0x0, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class unit_data * _buffer; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class node_data { + // total size: 0x74 +public: + class zEntDestructObj * ent; // offset 0x0, size 0x4 + float pulse; // offset 0x4, size 0x4 + class xLightKit * old_light_kit; // offset 0x8, size 0x4 + class RpAtomic * skin_model; // offset 0xC, size 0x4 + class RwMatrixTag * skin_mat; // offset 0x10, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x4C + public: + class xModelTagWithNormal tag; // offset 0x0, size 0x2C + class xModelTag uptag; // offset 0x2C, size 0x20 + } v2n1; // offset 0x14, size 0x4C + class /* @class */ { + // total size: 0x60 + public: + class xModelTag tag[3]; // offset 0x0, size 0x60 + } v3; // offset 0x14, size 0x60 + }; +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + class RwTexture * asset; // offset 0x0, size 0x4 + unsigned int units; // offset 0x4, size 0x4 + class xVec2 size; // offset 0x8, size 0x8 + class xVec2 isize; // offset 0x10, size 0x8 + signed int prev; // offset 0x18, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + float hold_time; // offset 0x0, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C440 -> 0x0034C448 +*/ +// Range: 0x34C440 -> 0x34C448 +signed int Process() { + // Blocks + /* anonymous block */ { + // Range: 0x34C440 -> 0x34C448 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C450 -> 0x0034C458 +*/ +// Range: 0x34C450 -> 0x34C458 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x34C450 -> 0x34C458 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C460 -> 0x0034C468 +*/ +// Range: 0x34C460 -> 0x34C468 +signed int Enter(class zNPCGoalBossSB2Death * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C460 -> 0x34C468 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C470 -> 0x0034C524 +*/ +// Range: 0x34C470 -> 0x34C524 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C470 -> 0x34C524 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034C530 -> 0x0034CB3C +*/ +// Range: 0x34C530 -> 0x34CB3C +signed int Process(class zNPCGoalBossSB2Karate * this /* r18 */, enum en_trantype * trantype /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34C530 -> 0x34CB3C + signed int emit_total; // r16 + signed int i; // r21 + signed int next; // r2 + unsigned char * it; // r5 + unsigned char * end; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034CB40 -> 0x0034CB78 +*/ +// Range: 0x34CB40 -> 0x34CB78 +signed int Exit(class zNPCGoalBossSB2Karate * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34CB40 -> 0x34CB78 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034CB80 -> 0x0034CBC0 +*/ +// Range: 0x34CB80 -> 0x34CBC0 +signed int Enter(class zNPCGoalBossSB2Karate * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34CB80 -> 0x34CBC0 + unsigned char * it; // r7 + unsigned char * end; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034CBC0 -> 0x0034CC74 +*/ +// Range: 0x34CBC0 -> 0x34CC74 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34CBC0 -> 0x34CC74 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034CC80 -> 0x0034CED8 +*/ +// Range: 0x34CC80 -> 0x34CED8 +unsigned char can_start(class zNPCGoalBossSB2Chop * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34CC80 -> 0x34CED8 + class platform_data * target; // r6 + class xBound & bound; // r2 + class xMat4x3 & mat; // r8 + class xVec3 offset; // r29+0x40 + class xVec3 & facing; // r2 + float facing_yaw; // r20 + float target_yaw; // r29+0x50 + float dyaw; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034CEE0 -> 0x0034D34C +*/ +// Range: 0x34CEE0 -> 0x34D34C +signed int Process(class zNPCGoalBossSB2Chop * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34CEE0 -> 0x34D34C + signed int next; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034D350 -> 0x0034D38C +*/ +// Range: 0x34D350 -> 0x34D38C +signed int Exit(class zNPCGoalBossSB2Chop * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34D350 -> 0x34D38C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034D390 -> 0x0034D49C +*/ +// Range: 0x34D390 -> 0x34D49C +signed int Enter(class zNPCGoalBossSB2Chop * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34D390 -> 0x34D49C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034D4A0 -> 0x0034D554 +*/ +// Range: 0x34D4A0 -> 0x34D554 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34D4A0 -> 0x34D554 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034D560 -> 0x0034DA88 +*/ +// Range: 0x34D560 -> 0x34DA88 +signed int Process(class zNPCGoalBossSB2Swipe * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34D560 -> 0x34DA88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034DA90 -> 0x0034DAD8 +*/ +// Range: 0x34DA90 -> 0x34DAD8 +signed int Exit(class zNPCGoalBossSB2Swipe * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34DA90 -> 0x34DAD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034DAE0 -> 0x0034DBBC +*/ +// Range: 0x34DAE0 -> 0x34DBBC +signed int Enter(class zNPCGoalBossSB2Swipe * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34DAE0 -> 0x34DBBC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034DBC0 -> 0x0034DC74 +*/ +// Range: 0x34DBC0 -> 0x34DC74 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34DBC0 -> 0x34DC74 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034DC80 -> 0x0034DEAC +*/ +// Range: 0x34DC80 -> 0x34DEAC +signed int Process(class zNPCGoalBossSB2Hunt * this /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34DC80 -> 0x34DEAC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034DEB0 -> 0x0034DFFC +*/ +// Range: 0x34DEB0 -> 0x34DFFC +signed int Exit(class zNPCGoalBossSB2Hunt * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34DEB0 -> 0x34DFFC + float t; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E000 -> 0x0034E164 +*/ +// Range: 0x34E000 -> 0x34E164 +signed int Enter(class zNPCGoalBossSB2Hunt * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E000 -> 0x34E164 + float t; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E170 -> 0x0034E224 +*/ +// Range: 0x34E170 -> 0x34E224 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E170 -> 0x34E224 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E230 -> 0x0034E2F8 +*/ +// Range: 0x34E230 -> 0x34E2F8 +signed int Process(class zNPCGoalBossSB2Hit * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E230 -> 0x34E2F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E300 -> 0x0034E350 +*/ +// Range: 0x34E300 -> 0x34E350 +signed int Exit(class zNPCGoalBossSB2Hit * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E300 -> 0x34E350 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E350 -> 0x0034E4C8 +*/ +// Range: 0x34E350 -> 0x34E4C8 +signed int Enter(class zNPCGoalBossSB2Hit * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E350 -> 0x34E4C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E4D0 -> 0x0034E584 +*/ +// Range: 0x34E4D0 -> 0x34E584 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E4D0 -> 0x34E584 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E590 -> 0x0034E6C4 +*/ +// Range: 0x34E590 -> 0x34E6C4 +signed int Process(class zNPCGoalBossSB2Dizzy * this /* r2 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E590 -> 0x34E6C4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E6D0 -> 0x0034E8A4 +*/ +// Range: 0x34E6D0 -> 0x34E8A4 +signed int Exit(class zNPCGoalBossSB2Dizzy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E6D0 -> 0x34E8A4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E8B0 -> 0x0034E908 +*/ +// Range: 0x34E8B0 -> 0x34E908 +signed int Enter(class zNPCGoalBossSB2Dizzy * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E8B0 -> 0x34E908 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E910 -> 0x0034E9C4 +*/ +// Range: 0x34E910 -> 0x34E9C4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E910 -> 0x34E9C4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034E9D0 -> 0x0034EA50 +*/ +// Range: 0x34E9D0 -> 0x34EA50 +signed int Process(class zNPCGoalBossSB2Taunt * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34E9D0 -> 0x34EA50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EA50 -> 0x0034EA58 +*/ +// Range: 0x34EA50 -> 0x34EA58 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x34EA50 -> 0x34EA58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EA60 -> 0x0034EBA8 +*/ +// Range: 0x34EA60 -> 0x34EBA8 +signed int Enter(class zNPCGoalBossSB2Taunt * this /* r19 */, float dt /* r21 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EA60 -> 0x34EBA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EBB0 -> 0x0034EC64 +*/ +// Range: 0x34EBB0 -> 0x34EC64 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EBB0 -> 0x34EC64 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EC70 -> 0x0034EE18 +*/ +// Range: 0x34EC70 -> 0x34EE18 +signed int Process(class zNPCGoalBossSB2Idle * this /* r17 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EC70 -> 0x34EE18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EE20 -> 0x0034EE28 +*/ +// Range: 0x34EE20 -> 0x34EE28 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x34EE20 -> 0x34EE28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EE30 -> 0x0034EE3C +*/ +// Range: 0x34EE30 -> 0x34EE3C +signed int Enter(class zNPCGoalBossSB2Idle * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EE30 -> 0x34EE3C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EE40 -> 0x0034EEF4 +*/ +// Range: 0x34EE40 -> 0x34EEF4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EE40 -> 0x34EEF4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EF00 -> 0x0034EF40 +*/ +// Range: 0x34EF00 -> 0x34EF40 +signed int Process(class zNPCGoalBossSB2Intro * this /* r2 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EF00 -> 0x34EF40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EF40 -> 0x0034EF60 +*/ +// Range: 0x34EF40 -> 0x34EF60 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x34EF40 -> 0x34EF60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034EF60 -> 0x0034EFF8 +*/ +// Range: 0x34EF60 -> 0x34EFF8 +signed int Enter(class zNPCGoalBossSB2Intro * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34EF60 -> 0x34EFF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034F000 -> 0x0034F0B4 +*/ +// Range: 0x34F000 -> 0x34F0B4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34F000 -> 0x34F0B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034F0C0 -> 0x0034F230 +*/ +// Range: 0x34F0C0 -> 0x34F230 +void create_glow_light(class zNPCB_SB2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34F0C0 -> 0x34F230 + class xLightKit * dlk; // r2 + unsigned int & total; // r5 + unsigned int i; // r4 + class xLightKitLight & src; // r13 + class xLightKitLight & dst; // r12 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034F230 -> 0x0034F400 +*/ +// Range: 0x34F230 -> 0x34F400 +void check_hit_fail(class zNPCB_SB2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34F230 -> 0x34F400 + unsigned char exploding; // r4 + signed int hits_size; // r29+0x5C + class xEnt * * hits; // r9 + class xEnt * * it; // r2 + class xEnt * * end; // r8 + class xEnt * ent; // r7 + class platform_data * itp; // r6 + class platform_data * endp; // r5 + class xSphere o; // r29+0x40 + class bound_data * it; // r18 + class bound_data * end; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034F400 -> 0x0034F6BC +*/ +// Range: 0x34F400 -> 0x34F6BC +void update_slugs(class zNPCB_SB2 * this /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34F400 -> 0x34F6BC + class slug_data * it; // r17 + class slug_data * end; // r16 + float scale; // r29+0x7C + float fade_time; // @ 0x0050F100 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034F6C0 -> 0x0034FAD0 +*/ +// Range: 0x34F6C0 -> 0x34FAD0 +void slug_interp(float time /* r29+0x40 */, float & scale /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34F6C0 -> 0x34FAD0 + unsigned char use_smooth; // @ 0x0050F104 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034FAD0 -> 0x0034FB58 +*/ +// Range: 0x34FAD0 -> 0x34FB58 +static void find_active_node(class response_curve * this /* r2 */, float t /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34FAD0 -> 0x34FB58 + unsigned int stride; // r7 + unsigned char * it; // r6 + class inode & next; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034FB60 -> 0x0034FCB8 +*/ +// Range: 0x34FB60 -> 0x34FCB8 +static void eval_linear(class response_curve * this /* r2 */, float t /* r29 */, float * value /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34FB60 -> 0x34FCB8 + float * end; // r3 + class inode & n1; // r6 + class inode & n2; // r7 + float dt; // r1 + float * v1; // r4 + float u; // r2 + float * v1; // r6 + float * v2; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034FCC0 -> 0x00350124 +*/ +// Range: 0x34FCC0 -> 0x350124 +void update_fire_slug(class zNPCB_SB2 * this /* r16 */, class slug_data & slug /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34FCC0 -> 0x350124 + class xVec3 offset; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00350130 -> 0x00350438 +*/ +// Range: 0x350130 -> 0x350438 +void update_aim_slug(class zNPCB_SB2 * this /* r2 */, class slug_data & slug /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x350130 -> 0x350438 + class xVec3 move_dir; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00350440 -> 0x00350570 +*/ +// Range: 0x350440 -> 0x350570 +void init_slugs(class zNPCB_SB2 * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x350440 -> 0x350570 + signed int i; // r19 + class slug_data & slug; // r18 + class xEnt * ent; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00350570 -> 0x003507B8 +*/ +// Range: 0x350570 -> 0x3507B8 +void update_bounds(class zNPCB_SB2 * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x350570 -> 0x3507B8 + class bound_data * it; // r20 + signed int i; // r19 + class xBound & bound; // r18 + signed int bone; // r2 + class xMat4x3 * bone_mat; // r17 + class xMat4x3 buffer_mat; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003507C0 -> 0x00350978 +*/ +// Range: 0x3507C0 -> 0x350978 +void reset_bounds(class zNPCB_SB2 * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3507C0 -> 0x350978 + class bound_data * it; // r20 + signed int i; // r19 + class xBound & bound; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00350980 -> 0x00350BC4 +*/ +// Range: 0x350980 -> 0x350BC4 +void update_platforms(class zNPCB_SB2 * this /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x350980 -> 0x350BC4 + class platform_data * it; // r18 + class platform_data * end; // r17 + class xMat3x3 & mat; // r16 + float ang; // r29+0x80 + class xMat3x3 rot_mat; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00350BD0 -> 0x00351068 +*/ +// Range: 0x350BD0 -> 0x351068 +void check_platform_smack(class zNPCB_SB2 * this /* r22 */, class hand_data & hand /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x350BD0 -> 0x351068 + class platform_data * it; // r21 + class platform_data * end; // r29+0xA0 + class xBound & hand_bound; // r8 + class xBound & plat_bound; // r7 + class xVec3 offset; // r29+0xD0 + float max_dist; // r2 + float min_xzdist; // r29+0xE0 + class xVec3 axis; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351070 -> 0x00351364 +*/ +// Range: 0x351070 -> 0x351364 +void move_hand(class zNPCB_SB2 * this /* r22 */, class hand_data & hand /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351070 -> 0x351364 + class xVec3 loc[8]; // r29+0x90 + class xVec3 * head_loc; // r20 + class xVec3 * tail_loc; // r19 + signed int i; // r18 + class xModelInstance & m; // r17 + class xBound & obb; // r16 + class xVec3 old_loc; // r29+0x130 + class xVec3 offset; // r29+0x120 + class xVec3 player_offset; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351370 -> 0x003515E8 +*/ +// Range: 0x351370 -> 0x3515E8 +void init_hands(class zNPCB_SB2 * this /* r29+0xD4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351370 -> 0x3515E8 + enum model_enum model_lookup[2]; // r29+0xE8 + signed int i; // r23 + signed int j; // r20 + class xVec3 t; // r29+0xD8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003515F0 -> 0x003518E0 +*/ +// Range: 0x3515F0 -> 0x3518E0 +class xSurface & create_surface() { + // Blocks + /* anonymous block */ { + // Range: 0x3515F0 -> 0x3518E0 + class xSurface * surf; // r19 + class zSurfaceProps * props; // r18 + class zSurfAssetBase * asset; // r17 + class xSurface & defsurf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003518E0 -> 0x00351A64 +*/ +// Range: 0x3518E0 -> 0x351A64 +void check_life(class zNPCB_SB2 * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3518E0 -> 0x351A64 + signed int old_life; // r16 + signed int i; // r19 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351A70 -> 0x00351BB0 +*/ +// Range: 0x351A70 -> 0x351BB0 +void setup_node_tags(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351A70 -> 0x351BB0 + signed int i; // r23 + class RpAtomic * m; // r22 + signed int j; // r21 + class xVec3 & loc; // r2 + class xVec3 & loc0; // r2 + class xVec3 loc1; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351BB0 -> 0x00351C9C +*/ +// Range: 0x351BB0 -> 0x351C9C +void rebind_nodes(class zNPCB_SB2 * this /* r17 */, class RpAtomic * skin_model /* r2 */, class RwMatrixTag * skin_mat /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351BB0 -> 0x351C9C + class RpAtomic * skin_models[4]; // r29+0x50 + signed int i; // r19 + signed int i; // r6 + class zEntDestructObj * ent; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351CA0 -> 0x00351D2C +*/ +// Range: 0x351CA0 -> 0x351D2C +void bind_nodes(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351CA0 -> 0x351D2C + signed int i; // r7 + class zEntDestructObj * ent; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351D30 -> 0x00351DE4 +*/ +// Range: 0x351D30 -> 0x351DE4 +void render_nodes(class zNPCB_SB2 * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351D30 -> 0x351DE4 + class xLightKit * old_light; // r18 + signed int i; // r17 + class xEnt * ent; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00351DF0 -> 0x00352594 +*/ +// Range: 0x351DF0 -> 0x352594 +void move_nodes(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x351DF0 -> 0x352594 + signed int i; // r22 + class xVec3 loc; // r29+0x200 + class xVec3 norm; // r29+0x1F0 + class xVec3 uploc; // r29+0x1E0 + class RpAtomic * m; // r21 + class RwMatrixTag * skin_mat; // r20 + class xVec3 rightloc; // r29+0x1D0 + class xMat4x3 mat; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003525A0 -> 0x00352740 +*/ +// Range: 0x3525A0 -> 0x352740 +void update_nodes(class zNPCB_SB2 * this /* r19 */, float dt /* r29+0x60 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3525A0 -> 0x352740 + float range; // r20 + float intensity; // r29+0x60 + signed int i; // r18 + class zEntDestructObj * ent; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00352740 -> 0x003528B4 +*/ +// Range: 0x352740 -> 0x3528B4 +void update_move(class zNPCB_SB2 * this /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x352740 -> 0x3528B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003528C0 -> 0x00352D34 +*/ +// Range: 0x3528C0 -> 0x352D34 +void update_follow(class zNPCB_SB2 * this /* r16 */, float dt /* r25 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3528C0 -> 0x352D34 + class xVec2 loc; // r29+0x80 + class xVec2 offset; // r29+0x78 + float yaw_dist; // r3 + float end_s; // r29+0x90 + float s; // r29+0x8C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00352D40 -> 0x00352F74 +*/ +// Range: 0x352D40 -> 0x352F74 +void update_halt(class zNPCB_SB2 * this /* r16 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x352D40 -> 0x352F74 + float s; // r29+0x5C + float old_yaw; // r20 + float yaw_accel; // r29+0x60 + float accel; // r21 + class xVec2 loc; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00352F80 -> 0x003533A8 +*/ +// Range: 0x352F80 -> 0x3533A8 +void update_turn(class zNPCB_SB2 * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x352F80 -> 0x3533A8 + class xVec3 & player_loc; // r2 + class xVec3 & loc; // r2 + class xVec3 & loc3; // r6 + class xVec3 & start3; // r5 + class xVec2 loc; // r29+0x40 + class xVec2 start_dir; // r29+0x38 + float start; // r21 + float end; // r29+0x50 + float diff; // r1 + float yaw; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003533B0 -> 0x00353588 +*/ +// Range: 0x3533B0 -> 0x353588 +signed int next_goal(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3533B0 -> 0x353588 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353590 -> 0x0035370C +*/ +// Range: 0x353590 -> 0x35370C +void fire_slug(class zNPCB_SB2 * this /* r2 */, enum slug_enum which /* r2 */, class platform_data & target /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353590 -> 0x35370C + class slug_data & slug; // r2 + class xVec3 offset; // r29+0x10 + float idist; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353710 -> 0x00353B04 +*/ +// Range: 0x353710 -> 0x353B04 +void emit_slug(class zNPCB_SB2 * this /* r18 */, enum slug_enum which /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353710 -> 0x353B04 + class slug_data & slug; // r17 + float launch_ang; // r20 + float accel_time; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353B10 -> 0x00353B18 +*/ +// Range: 0x353B10 -> 0x353B18 +void ThanksImDone(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353B10 -> 0x353B18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353B20 -> 0x00353B28 +*/ +// Range: 0x353B20 -> 0x353B28 +void HoldUpDude() { + // Blocks + /* anonymous block */ { + // Range: 0x353B20 -> 0x353B28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353B30 -> 0x00353B58 +*/ +// Range: 0x353B30 -> 0x353B58 +float AttackTimeLeft(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353B30 -> 0x353B58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353B60 -> 0x00353B68 +*/ +// Range: 0x353B60 -> 0x353B68 +void Render(class zNPCB_SB2 * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353B60 -> 0x353B68 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353B70 -> 0x00353CD0 +*/ +// Range: 0x353B70 -> 0x353CD0 +void NewTime(class zNPCB_SB2 * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353B70 -> 0x353CD0 + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353CD0 -> 0x00353E70 +*/ +// Range: 0x353CD0 -> 0x353E70 +void Process(class zNPCB_SB2 * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353CD0 -> 0x353E70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00353E70 -> 0x003543D4 +*/ +// Range: 0x353E70 -> 0x3543D4 +unsigned int AnimPick(class zNPCB_SB2 * this /* r17 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x353E70 -> 0x3543D4 + signed int index; // r16 + unsigned int i; // r19 + unsigned int i; // r19 + class /* @class */ { + // total size: 0x8 + public: + signed int from; // offset 0x0, size 0x4 + signed int to; // offset 0x4, size 0x4 + } idle_table[8]; // @ 0x005030C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003543E0 -> 0x00354410 +*/ +// Range: 0x3543E0 -> 0x354410 +void Destroy(class zNPCB_SB2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3543E0 -> 0x354410 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00354410 -> 0x00354618 +*/ +// Range: 0x354410 -> 0x354618 +void Reset(class zNPCB_SB2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x354410 -> 0x354618 + signed int i; // r18 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00354620 -> 0x003546C8 +*/ +// Range: 0x354620 -> 0x3546C8 +void SelfSetup(class zNPCB_SB2 * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x354620 -> 0x3546C8 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003546D0 -> 0x003549DC +*/ +// Range: 0x3546D0 -> 0x3549DC +void Setup(class zNPCB_SB2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3546D0 -> 0x3549DC + signed int i; // r21 + class xEnt * ent; // r20 + class xSphere o; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003549E0 -> 0x00354A20 +*/ +// Range: 0x3549E0 -> 0x354A20 +void ParseINI(class zNPCB_SB2 * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3549E0 -> 0x354A20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00354A20 -> 0x003583CC +*/ +// Range: 0x354A20 -> 0x3583CC +static void register_tweaks(class tweak_group * this /* r19 */, unsigned char init /* r18 */, class xModelAssetParam * ap /* r17 */, unsigned int apsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x354A20 -> 0x3583CC + class xVec3 V0; // r29+0x130 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003583D0 -> 0x003585B4 +*/ +// Range: 0x3583D0 -> 0x3585B4 +void Init(class zNPCB_SB2 * this /* r20 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3583D0 -> 0x3585B4 + class xModelInstance * m; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003585C0 -> 0x003591D8 +*/ +// Range: 0x3585C0 -> 0x3591D8 +class xAnimTable * ZNPC_AnimTable_BossSB2() { + // Blocks + /* anonymous block */ { + // Range: 0x3585C0 -> 0x3591D8 + class xAnimTable * table; // r16 + signed int anim_list[32]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003591E0 -> 0x00359E64 +*/ +// Range: 0x3591E0 -> 0x359E64 +static void parallelepiped_to_obb(class xBound & obb /* r2 */, class xVec3 * loc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3591E0 -> 0x359E64 + class xVec3 * head_loc; // r2 + class xVec3 * tail_loc; // r2 + class xVec3 head_sum; // r29+0x300 + class xVec3 tail_sum; // r29+0x2F0 + class xVec3 & center; // r22 + class xMat4x3 & mat; // r9 + class xVec3 & upper; // r8 + class xVec3 & lower; // r10 + class xVec3 * it; // r4 + class xVec3 * end; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSB2.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00359E70 -> 0x00359F7C +*/ +// Range: 0x359E70 -> 0x359F7C +static void init_sound() { + // Blocks + /* anonymous block */ { + // Range: 0x359E70 -> 0x359F7C + unsigned int i; // r10 + unsigned int & total; // r9 + signed int i; // r5 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeBossSandy.cpp b/dwarf/SB/Game/zNPCTypeBossSandy.cpp new file mode 100644 index 000000000..511cb1c3c --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeBossSandy.cpp @@ -0,0 +1,5239 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static float sSinTable[16]; // size: 0x40, address: 0x5E1E80 +static unsigned char sUseBossCam; // size: 0x1, address: 0x50F0B8 +static unsigned char sWasUsingBossCam; // size: 0x1, address: 0x50F0BC +static unsigned char sOthersHaventBeenAdded; // size: 0x1, address: 0x510114 +static unsigned char sPCWasBubbleBouncing; // size: 0x1, address: 0x510118 +static float sPCHeightDiff; // size: 0x4, address: 0x50F0C0 +static float sHeadPopOffFactor; // size: 0x4, address: 0x50F0C4 +static float sRadiusOfRing; // size: 0x4, address: 0x51011C +static float sElbowDropTimer; // size: 0x4, address: 0x510120 +static float sChaseTimer; // size: 0x4, address: 0x510124 +static signed int sNumAttacks; // size: 0x4, address: 0x510128 +static signed int sDidClothesline; // size: 0x4, address: 0x51012C +static float sElbowDropThreshold; // size: 0x4, address: 0x510130 +static class SandyLimbSpring sLeftArmSpring; // size: 0x14, address: 0x5E1EC0 +static class SandyLimbSpring sRightArmSpring; // size: 0x14, address: 0x5E1EE0 +static class SandyLimbSpring sLeftLegSpring; // size: 0x14, address: 0x5E1F00 +static class SandyLimbSpring sRightLegSpring; // size: 0x14, address: 0x5E1F20 +static class zNPCBSandy * sSandyPtr; // size: 0x4, address: 0x510134 +static class xVec3 * sCamSubTarget; // size: 0x4, address: 0x510138 +static class xVec3 sCamSubTargetFixed; // size: 0xC, address: 0x0 +static float sCurrYaw; // size: 0x4, address: 0x51013C +static float sCurrHeight; // size: 0x4, address: 0x510140 +static float sCurrRadius; // size: 0x4, address: 0x510144 +static float sCurrPitch; // size: 0x4, address: 0x510148 +static float sCurrYawOffset; // size: 0x4, address: 0x0 +static float sCurrCamInterp; // size: 0x4, address: 0x0 +static signed int sBone[13]; // size: 0x34, address: 0x4E0810 +static signed int sPreLeftHandBone; // size: 0x4, address: 0x0 +static signed int sLeftHandBones[4]; // size: 0x10, address: 0x4E0850 +static signed int sPreRightHandBone; // size: 0x4, address: 0x0 +static signed int sRightHandBones[4]; // size: 0x10, address: 0x4E0860 +static signed int sPreLeftFootBone; // size: 0x4, address: 0x0 +static signed int sLeftFootBones[2]; // size: 0x8, address: 0x50F0C8 +static signed int sPreRightFootBone; // size: 0x4, address: 0x0 +static signed int sRightFootBones[2]; // size: 0x8, address: 0x50F0D0 +static float sBoundRadius[13]; // size: 0x34, address: 0x4E0870 +static class xVec3 sBoneOffset[13]; // size: 0x9C, address: 0x4E08B0 +static char * sNFSoundLabel[30]; // size: 0x78, address: 0x4E0950 +static unsigned int sNFSoundValue[30]; // size: 0x78, address: 0x5E1F40 +static unsigned int sCurrNFSound; // size: 0x4, address: 0x51014C +static class tweak_callback newsfish_cb; // size: 0x28, address: 0x0 +static class tweak_callback shockwave_cb; // size: 0x28, address: 0x0 +static class BossDamageEffectRecord BDErecord[4]; // size: 0x420, address: 0x5E1FC0 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__28zNPCGoalBossSandyClothesline; // size: 0x34, address: 0x50C980 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int g_hash_bossanim[78]; // size: 0x138, address: 0x5DE220 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +class xGrid colls_grid; // size: 0x34, address: 0x5CEBD0 +class xGrid colls_oso_grid; // size: 0x34, address: 0x5CEC10 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +class tagiRenderArrays gRenderArr; // size: 0x5280, address: 0x533950 +class NPCSndTrax g_sndTrax_BossSandy[]; // size: 0x0, address: 0x5CFA18 +signed int clotheslineCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330480 +signed int runToRopeCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330590 +signed int getUpCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330660 +signed int sitCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330810 +signed int leapCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330950 +signed int elbowDropCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330A10 +signed int noHeadCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330B90 +signed int meleeCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330C30 +signed int chaseCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x330EB0 +signed int tauntCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x331210 +signed int idleCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x331360 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +signed int BoundEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x333580 +unsigned int HeadNotShocked(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x336990 +unsigned int HeadIsShocked(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3369B0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +unsigned int HeadNotCarried(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3369C0 +unsigned int HeadIsCarried(class xAnimTransition *, class xAnimSingle *, void *); // size: 0x0, address: 0x3369E0 +char * g_strz_bossanim[78]; // size: 0x138, address: 0x4E0580 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__26zNPCGoalBossSandyRunToRope; // size: 0x34, address: 0x50C9C0 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyGetUp; // size: 0x34, address: 0x50CA00 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__20zNPCGoalBossSandySit; // size: 0x34, address: 0x50CA40 +struct /* @anon7 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossSandyLeap; // size: 0x34, address: 0x50CA80 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__26zNPCGoalBossSandyElbowDrop; // size: 0x34, address: 0x50CAC0 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__23zNPCGoalBossSandyNoHead; // size: 0x34, address: 0x50CB00 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyMelee; // size: 0x34, address: 0x50CB40 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyChase; // size: 0x34, address: 0x50CB80 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__22zNPCGoalBossSandyTaunt; // size: 0x34, address: 0x50CBC0 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__21zNPCGoalBossSandyIdle; // size: 0x34, address: 0x50CC00 +struct /* @anon5 */ { + // total size: 0xD8 +} __vt__10zNPCBSandy; // size: 0xD8, address: 0x50CC40 +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zNPCBSandy : public zNPCBoss { + // total size: 0xE60 +public: + class xEnt * * boundList; // offset 0x2B4, size 0x4 + unsigned int * boundFlags; // offset 0x2B8, size 0x4 + float * boundEmitTimer; // offset 0x2BC, size 0x4 + unsigned int bossFlags; // offset 0x2C0, size 0x4 + class xVec3 currDir; // offset 0x2C4, size 0xC + float currVel; // offset 0x2D0, size 0x4 + signed int hitPoints; // offset 0x2D4, size 0x4 + signed int round; // offset 0x2D8, size 0x4 + class xVec3 ringCorner[8]; // offset 0x2DC, size 0x60 + class xVec3 ringEdgeCenter[8]; // offset 0x33C, size 0x60 + class xVec3 ropeNormal[8]; // offset 0x39C, size 0x60 + class xVec3 bouncePoint[8]; // offset 0x3FC, size 0x60 + class xEnt * ropeObject[8][4]; // offset 0x45C, size 0x80 + class xEnt * ropeObjectLo[8]; // offset 0x4DC, size 0x20 + class xEnt * ropeSb; // offset 0x4FC, size 0x4 + class xEnt * ropeSbDamaged; // offset 0x500, size 0x4 + class xEnt * turnbuckle[8]; // offset 0x504, size 0x20 + float edgeAlpha[8]; // offset 0x524, size 0x20 + float scoreboardAlpha; // offset 0x544, size 0x4 + signed int fromRope; // offset 0x548, size 0x4 + signed int toRope; // offset 0x54C, size 0x4 + float limbLength; // offset 0x550, size 0x4 + class RwRaster * helmetRaster; // offset 0x554, size 0x4 + class RwRaster * feetRaster; // offset 0x558, size 0x4 + class RwRaster * targetRaster; // offset 0x55C, size 0x4 + class RxObjSpace3DVertex iconVert[4]; // offset 0x560, size 0x90 + class xVec3 targetPos; // offset 0x5F0, size 0xC + class xQuat qHead; // offset 0x600, size 0x10 + class xQuat qBoulder; // offset 0x610, size 0x10 + class xVec3 pHead; // offset 0x620, size 0xC + class xVec3 pBoulder; // offset 0x62C, size 0xC + float magnetizeTime; // offset 0x638, size 0x4 + class xVec3 shockPos; // offset 0x63C, size 0xC + class xParEmitterCustomSettings dustEddieSetting; // offset 0x648, size 0x16C + class zParEmitter * dustEddieEmitter; // offset 0x7B4, size 0x4 + class zParEmitter * shockwaveEmitter; // offset 0x7B8, size 0x4 + class xEnt * hangingScoreboard; // offset 0x7BC, size 0x4 + class xEnt * bustedScoreboard; // offset 0x7C0, size 0x4 + class xEnt * crashedScoreboard; // offset 0x7C4, size 0x4 + class xEntBoulder * headBoulder; // offset 0x7C8, size 0x4 + class zShrapnelAsset * scoreboardShrap; // offset 0x7CC, size 0x4 + class zShrapnelAsset * sboardSecondShrap; // offset 0x7D0, size 0x4 + class zShrapnelAsset * sboardThirdShrap; // offset 0x7D4, size 0x4 + class zShrapnelAsset * lightRigShrap; // offset 0x7D8, size 0x4 + class xEnt * lightRig[4]; // offset 0x7DC, size 0x10 + class zCutsceneMgr * round1Csn; // offset 0x7EC, size 0x4 + class zCutsceneMgr * round2Csn; // offset 0x7F0, size 0x4 + class zCutsceneMgr * round3Csn; // offset 0x7F4, size 0x4 + float csnTimer; // offset 0x7F8, size 0x4 + class _tagLightningAdd sparks[6]; // offset 0x7FC, size 0x180 + class zLightning * wireLight[2]; // offset 0x97C, size 0x8 + class xVec3 endPoints[4][2]; // offset 0x984, size 0x60 + class xMat4x3 sparkTransform[2][2]; // offset 0x9F0, size 0x100 + float timeToNextBolt[2]; // offset 0xAF0, size 0x8 + float maxLightningWait[2]; // offset 0xAF8, size 0x8 + unsigned int springSndID; // offset 0xB00, size 0x4 + unsigned int ambientSndID; // offset 0xB04, size 0x4 + float jawTime; // offset 0xB08, size 0x4 + float jawLevel; // offset 0xB0C, size 0x4 + float jawThreshold; // offset 0xB10, size 0x4 + void * jawData; // offset 0xB14, size 0x4 + signed int isBeat; // offset 0xB18, size 0x4 + class xVec3 laserPoint[16]; // offset 0xB1C, size 0xC0 + class xFXRibbon laserShow; // offset 0xBDC, size 0x140 + class curve_node curveNode[2]; // offset 0xD1C, size 0x18 + float curveNodeAlpha; // offset 0xD34, size 0x4 + float curveNodeR; // offset 0xD38, size 0x4 + float curveNodeG; // offset 0xD3C, size 0x4 + float curveNodeB; // offset 0xD40, size 0x4 + class zNPCNewsFish * newsfish; // offset 0xD44, size 0x4 + unsigned int nfFlags; // offset 0xD48, size 0x4 + float shockRadius; // offset 0xD4C, size 0x4 + float shockwaveGrowthRate; // offset 0xD50, size 0x4 + float shockwaveMaxRadius; // offset 0xD54, size 0x4 + float edropTurnMinTime; // offset 0xD58, size 0x4 + float edropShockwaveTime; // offset 0xD5C, size 0x4 + signed int firstTimeR1Csn; // offset 0xD60, size 0x4 + signed int firstUpdate; // offset 0xD64, size 0x4 + class zEntPickup * underwear[3]; // offset 0xD68, size 0xC + class xBinaryCamera bossCam; // offset 0xD80, size 0x70 + class xBinaryCamera specialBossCam; // offset 0xDF0, size 0x70 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class zNPCVillager : public zNPCCommon { + // total size: 0x2B0 +public: + class HiThere hithere; // offset 0x2A0, size 0x8 + class ztaskbox * converse; // offset 0x2A8, size 0x4 + signed int current_talk_anim; // offset 0x2AC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class zNPCGoalBossSandySit : public zNPCGoalCommon { + // total size: 0x58 +public: + float timeInGoal; // offset 0x4C, size 0x4 + float totalTime; // offset 0x50, size 0x4 + unsigned int sitFlags; // offset 0x54, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class block_data { + // total size: 0x8 +public: + unsigned char prev; // offset 0x0, size 0x1 + unsigned char next; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zNPCGoalBossSandyIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zNPCNewsFish : public zNPCVillager { + // total size: 0x530 +public: + class say_data said[71]; // offset 0x2B0, size 0x238 + unsigned char was_reset; // offset 0x4E8, size 0x1 + unsigned int soundHandle; // offset 0x4EC, size 0x4 + unsigned int currSoundID; // offset 0x4F0, size 0x4 + unsigned int nextSoundID; // offset 0x4F4, size 0x4 + float jawTime; // offset 0x4F8, size 0x4 + void * jawData; // offset 0x4FC, size 0x4 + unsigned int newsfishFlags; // offset 0x500, size 0x4 + class xVec2 onScreenCoords; // offset 0x504, size 0x8 + class xVec2 offScreenCoords; // offset 0x50C, size 0x8 + class xVec2 screenCoords; // offset 0x514, size 0x8 + float screenSize; // offset 0x51C, size 0x4 + float screenRot; // offset 0x520, size 0x4 + float appearSpeed; // offset 0x524, size 0x4 + float disappearSpeed; // offset 0x528, size 0x4 + float screenLerp; // offset 0x52C, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class SandyLimbSpring { + // total size: 0x14 +public: + float node1; // offset 0x0, size 0x4 + float vel1; // offset 0x4, size 0x4 + float node2; // offset 0x8, size 0x4 + float vel2; // offset 0xC, size 0x4 + class xBound * bound; // offset 0x10, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class asset_type { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +class zNPCGoalBossSandyChase : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class config { + // total size: 0x10 +public: + float life_time; // offset 0x0, size 0x4 + unsigned int blend_src; // offset 0x4, size 0x4 + unsigned int blend_dst; // offset 0x8, size 0x4 + float pivot; // offset 0xC, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class zNPCGoalBossSandyNoHead : public zNPCGoalCommon { + // total size: 0x58 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float secsSincePatWasCarryingHead; // offset 0x54, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class callback { + // total size: 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class zNPCGoalBossSandyTaunt : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zNPCGoalBossSandyClothesline : public zNPCGoalCommon { + // total size: 0x68 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + unsigned int playedAnimEarly; // offset 0x54, size 0x4 + float totalHoverTime; // offset 0x58, size 0x4 + class xVec3 bounceStartPoint; // offset 0x5C, size 0xC +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zNPCGoalBossSandyMelee : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xFXRibbon { + // total size: 0x140 +public: + class config cfg; // offset 0x0, size 0x10 + unsigned char activated; // offset 0x10, size 0x1 + class RwRaster * raster; // offset 0x14, size 0x4 + class tier_queue joints; // offset 0x18, size 0x110 + class curve_node * curve; // offset 0x128, size 0x4 + unsigned int curve_size; // offset 0x12C, size 0x4 + unsigned int curve_index; // offset 0x130, size 0x4 + float ilife; // offset 0x134, size 0x4 + unsigned int mtime; // offset 0x138, size 0x4 + unsigned int mlife; // offset 0x13C, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class tier_queue_allocator { + // total size: 0x1C +public: + class block_data * blocks; // offset 0x0, size 0x4 + unsigned int _unit_size; // offset 0x4, size 0x4 + unsigned int _block_size; // offset 0x8, size 0x4 + unsigned int _block_size_shift; // offset 0xC, size 0x4 + unsigned int _max_blocks; // offset 0x10, size 0x4 + unsigned int _max_blocks_shift; // offset 0x14, size 0x4 + unsigned char head; // offset 0x18, size 0x1 +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zNPCGoalBossSandyLeap : public zNPCGoalCommon { + // total size: 0x64 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int stage; // offset 0x50, size 0x4 + float startX; // offset 0x54, size 0x4 + float startZ; // offset 0x58, size 0x4 + float endX; // offset 0x5C, size 0x4 + float endZ; // offset 0x60, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zNPCGoalBossSandyRunToRope : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RyzMemData { + // total size: 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class zEntPickup : public zEnt { + // total size: 0x268 +public: + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + unsigned int state; // offset 0x16C, size 0x4 + class zAssetPickup * p; // offset 0x170, size 0x4 + void * anim; // offset 0x174, size 0x4 + float animTime; // offset 0x178, size 0x4 + float timer; // offset 0x17C, size 0x4 + float shake_timer; // offset 0x180, size 0x4 + class xVec3 shake_pos; // offset 0x184, size 0xC + signed int snackGateInfoDisplayed; // offset 0x190, size 0x4 + float fx_timer; // offset 0x194, size 0x4 + class xPar * fx_par; // offset 0x198, size 0x4 + class zParEmitter * fx_emit; // offset 0x19C, size 0x4 + float fx_scale; // offset 0x1A0, size 0x4 + class xVec3 grab_pos; // offset 0x1A4, size 0xC + unsigned int flyflags; // offset 0x1B0, size 0x4 + signed int flg_opts; // offset 0x1B4, size 0x4 + class xVec3 vel; // offset 0x1B8, size 0xC + class xVec3 droppos; // offset 0x1C4, size 0xC + class xBase * followTarget; // offset 0x1D0, size 0x4 + class xVec3 followOffset; // offset 0x1D4, size 0xC + class xBase * dropParent; // offset 0x1E0, size 0x4 + class xEnt * useThisEntPos; // offset 0x1E4, size 0x4 + class xEntDrive drv; // offset 0x1E8, size 0x7C + unsigned short pickupFlags; // offset 0x264, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xCurveAsset { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class tier_queue { + // total size: 0x110 +public: + unsigned int first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int wrap_mask; // offset 0x8, size 0x4 + class tier_queue_allocator * alloc; // offset 0xC, size 0x4 + unsigned char blocks[256]; // offset 0x10, size 0x100 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zNPCGoalBossSandyElbowDrop : public zNPCGoalCommon { + // total size: 0x54 +public: + float timeInGoal; // offset 0x4C, size 0x4 + unsigned int elbowFlags; // offset 0x50, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class zNPCGoalBossSandyGetUp : public zNPCGoalCommon { + // total size: 0x50 +public: + float timeInGoal; // offset 0x4C, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class zAssetPickup { + // total size: 0x0 +}; +class HiThere : public callback { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0xD8 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0x34 +}; +class rxReq { + // total size: 0x0 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xGrid { + // total size: 0x34 +public: + unsigned char ingrid_id; // offset 0x0, size 0x1 + unsigned char pad[3]; // offset 0x1, size 0x3 + unsigned short nx; // offset 0x4, size 0x2 + unsigned short nz; // offset 0x6, size 0x2 + float minx; // offset 0x8, size 0x4 + float minz; // offset 0xC, size 0x4 + float maxx; // offset 0x10, size 0x4 + float maxz; // offset 0x14, size 0x4 + float csizex; // offset 0x18, size 0x4 + float csizez; // offset 0x1C, size 0x4 + float inv_csizex; // offset 0x20, size 0x4 + float inv_csizez; // offset 0x24, size 0x4 + float maxr; // offset 0x28, size 0x4 + class xGridBound * * cells; // offset 0x2C, size 0x4 + class xGridBound * other; // offset 0x30, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class anim_coll_data { + // total size: 0x0 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class BossDamageEffectRecord { + // total size: 0x108 +public: + float save_F32[64]; // offset 0x0, size 0x100 + float BDEtimer; // offset 0x100, size 0x4 + class xModelInstance * BDEminst; // offset 0x104, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class say_data { + // total size: 0x8 +public: + signed int total; // offset 0x0, size 0x4 + signed int prev_total; // offset 0x4, size 0x4 +}; +class zNPCBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class tagiRenderArrays { + // total size: 0x5280 +public: + unsigned short m_index[960]; // offset 0x0, size 0x780 + class RxObjSpace3DVertex m_vertex[480]; // offset 0x780, size 0x4380 + float m_vertexTZ[480]; // offset 0x4B00, size 0x780 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032C250 -> 0x0032CD60 +*/ +// Range: 0x32C250 -> 0x32CD60 +signed int Process(class zNPCGoalBossSandyClothesline * this /* r18 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */, void * updCtxt /* r22 */, class xScene * xscn /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32C250 -> 0x32CD60 + class zNPCBSandy * sandy; // r16 + unsigned int testBits; // r19 + class xVec3 newAt; // r29+0xA8 + float anim; // r29+0xBC + signed int i; // r21 + class xEnt * rope; // r20 + float anim; // r29+0xB8 + signed int i; // r21 + class xEnt * rope; // r20 + float factor; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032CD60 -> 0x0032CF30 +*/ +// Range: 0x32CD60 -> 0x32CF30 +signed int Enter(class zNPCGoalBossSandyClothesline * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32CD60 -> 0x32CF30 + class zNPCBSandy * sandy; // r16 + float anim; // r29+0x8C + signed int i; // r21 + class xEnt * rope; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032CF30 -> 0x0032CF3C +*/ +// Range: 0x32CF30 -> 0x32CF3C +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x32CF30 -> 0x32CF3C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032CF40 -> 0x0032D160 +*/ +// Range: 0x32CF40 -> 0x32D160 +signed int Process(class zNPCGoalBossSandyRunToRope * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32CF40 -> 0x32D160 + class zNPCBSandy * sandy; // r16 + class xVec3 newAt; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032D160 -> 0x0032D420 +*/ +// Range: 0x32D160 -> 0x32D420 +signed int Enter(class zNPCGoalBossSandyRunToRope * this /* r19 */, float dt /* r24 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32D160 -> 0x32D420 + class zNPCBSandy * sandy; // r17 + signed int fromRope2; // r16 + class xVec3 pcToSandy; // r29+0x70 + float currDot; // r1 + float smallestDot; // r23 + float secondSmallest; // r22 + float smallestDotDist; // r21 + float secondSmallestDotDist; // r20 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032D420 -> 0x0032D430 +*/ +// Range: 0x32D420 -> 0x32D430 +signed int Process(class zNPCGoalBossSandyGetUp * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32D420 -> 0x32D430 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032D430 -> 0x0032D54C +*/ +// Range: 0x32D430 -> 0x32D54C +signed int Enter(class zNPCGoalBossSandyGetUp * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32D430 -> 0x32D54C + class zNPCBSandy * sandy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032D550 -> 0x0032D5A8 +*/ +// Range: 0x32D550 -> 0x32D5A8 +signed int Exit(class zNPCGoalBossSandySit * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32D550 -> 0x32D5A8 + class zNPCBSandy * sandy; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032D5B0 -> 0x0032DED0 +*/ +// Range: 0x32D5B0 -> 0x32DED0 +signed int Process(class zNPCGoalBossSandySit * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r21 */, void * updCtxt /* r17 */, class xScene * xscn /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32D5B0 -> 0x32DED0 + class zNPCBSandy * sandy; // r16 + float popHeight; // r29+0xA0 + signed int numRots; // r3 + float bVelMag; // r29+0xA0 + class xVec3 * pos; // r21 + signed int underScoreboard; // r20 + class xVec3 downward; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032DED0 -> 0x0032DFF0 +*/ +// Range: 0x32DED0 -> 0x32DFF0 +signed int Enter(class zNPCGoalBossSandySit * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32DED0 -> 0x32DFF0 + class zNPCBSandy * sandy; // r17 + unsigned int numHints; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032DFF0 -> 0x0032DFFC +*/ +// Range: 0x32DFF0 -> 0x32DFFC +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x32DFF0 -> 0x32DFFC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032E000 -> 0x0032E4CC +*/ +// Range: 0x32E000 -> 0x32E4CC +signed int Process(class zNPCGoalBossSandyLeap * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32E000 -> 0x32E4CC + class zNPCBSandy * sandy; // r18 + signed int shouldDoDamage; // r17 + signed int newAnimIndex; // r16 + float timeRemain; // r29+0xA0 + float invDur; // r4 + class zJumpParam jparm; // r29+0x90 + signed int i; // r3 + unsigned int animID; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032E4D0 -> 0x0032E6B4 +*/ +// Range: 0x32E4D0 -> 0x32E6B4 +signed int Enter(class zNPCGoalBossSandyLeap * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32E4D0 -> 0x32E6B4 + class zNPCBSandy * sandy; // r2 + float rad2; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032E6C0 -> 0x0032E6D4 +*/ +// Range: 0x32E6C0 -> 0x32E6D4 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x32E6C0 -> 0x32E6D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032E6E0 -> 0x0032EA0C +*/ +// Range: 0x32E6E0 -> 0x32EA0C +signed int Process(class zNPCGoalBossSandyElbowDrop * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32E6E0 -> 0x32EA0C + class zNPCBSandy * sandy; // r16 + signed int i; // r3 + class xVec3 newAt; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032EA10 -> 0x0032EB88 +*/ +// Range: 0x32EA10 -> 0x32EB88 +signed int Enter(class zNPCGoalBossSandyElbowDrop * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32EA10 -> 0x32EB88 + class zNPCBSandy * sandy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032EB90 -> 0x0032F7C4 +*/ +// Range: 0x32EB90 -> 0x32F7C4 +signed int Process(class zNPCGoalBossSandyNoHead * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r21 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32EB90 -> 0x32F7C4 + class zNPCBSandy * sandy; // r16 + unsigned int numHints; // r2 + class xVec3 newAt; // r29+0xD0 + float lerpFactor; // r20 + class xMat4x3 boneMat; // r29+0x90 + class xQuat q; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032F7D0 -> 0x0032F830 +*/ +// Range: 0x32F7D0 -> 0x32F830 +signed int Enter(class zNPCGoalBossSandyNoHead * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32F7D0 -> 0x32F830 + class zNPCBSandy * sandy; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032F830 -> 0x0032FAA8 +*/ +// Range: 0x32F830 -> 0x32FAA8 +signed int Process(class zNPCGoalBossSandyMelee * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32F830 -> 0x32FAA8 + class zNPCBSandy * sandy; // r16 + class xVec3 newAt; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032FAB0 -> 0x0032FB18 +*/ +// Range: 0x32FAB0 -> 0x32FB18 +signed int Exit(class zNPCGoalBossSandyMelee * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32FAB0 -> 0x32FB18 + class zNPCBSandy * sandy; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032FB20 -> 0x0032FC40 +*/ +// Range: 0x32FB20 -> 0x32FC40 +signed int Enter(class zNPCGoalBossSandyMelee * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32FB20 -> 0x32FC40 + class zNPCBSandy * sandy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032FC40 -> 0x0032FC84 +*/ +// Range: 0x32FC40 -> 0x32FC84 +signed int Exit(class zNPCGoalBossSandyChase * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32FC40 -> 0x32FC84 + class zNPCBSandy * sandy; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032FC90 -> 0x0032FEA8 +*/ +// Range: 0x32FC90 -> 0x32FEA8 +signed int Process(class zNPCGoalBossSandyChase * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32FC90 -> 0x32FEA8 + class zNPCBSandy * sandy; // r16 + class xVec3 newAt; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032FEB0 -> 0x0032FEEC +*/ +// Range: 0x32FEB0 -> 0x32FEEC +signed int Enter(class zNPCGoalBossSandyChase * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32FEB0 -> 0x32FEEC + class zNPCBSandy * sandy; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0032FEF0 -> 0x003300CC +*/ +// Range: 0x32FEF0 -> 0x3300CC +signed int Process(class zNPCGoalBossSandyTaunt * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x32FEF0 -> 0x3300CC + class zNPCBSandy * sandy; // r16 + class xVec3 newAt; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003300D0 -> 0x0033018C +*/ +// Range: 0x3300D0 -> 0x33018C +signed int Enter(class zNPCGoalBossSandyTaunt * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3300D0 -> 0x33018C + class zNPCBSandy * sandy; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330190 -> 0x003301D4 +*/ +// Range: 0x330190 -> 0x3301D4 +signed int Exit(class zNPCGoalBossSandyIdle * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330190 -> 0x3301D4 + class zNPCBSandy * sandy; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003301E0 -> 0x00330430 +*/ +// Range: 0x3301E0 -> 0x330430 +signed int Process(class zNPCGoalBossSandyIdle * this /* r21 */, enum en_trantype * trantype /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3301E0 -> 0x330430 + class zNPCBSandy * sandy; // r17 + class xVec3 newAt; // r29+0x90 + float lerp; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330430 -> 0x0033047C +*/ +// Range: 0x330430 -> 0x33047C +signed int Enter(class zNPCGoalBossSandyIdle * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330430 -> 0x33047C + class zNPCBSandy * sandy; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330480 -> 0x00330588 +*/ +// Range: 0x330480 -> 0x330588 +static signed int clotheslineCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330480 -> 0x330588 + class zNPCGoalBossSandyClothesline * cl; // r2 + class zNPCBSandy * sandy; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330590 -> 0x00330658 +*/ +// Range: 0x330590 -> 0x330658 +static signed int runToRopeCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330590 -> 0x330658 + class zNPCBSandy * sandy; // r8 + signed int nextgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330660 -> 0x0033080C +*/ +// Range: 0x330660 -> 0x33080C +static signed int getUpCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330660 -> 0x33080C + class zNPCBSandy * sandy; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330810 -> 0x00330944 +*/ +// Range: 0x330810 -> 0x330944 +static signed int sitCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330810 -> 0x330944 + class zNPCGoalBossSandySit * sit; // r2 + class zNPCBSandy * sandy; // r17 + signed int nextgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330950 -> 0x00330A08 +*/ +// Range: 0x330950 -> 0x330A08 +static signed int leapCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330950 -> 0x330A08 + class zNPCGoalBossSandyLeap * leap; // r2 + class zNPCBSandy * sandy; // r18 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330A10 -> 0x00330B90 +*/ +// Range: 0x330A10 -> 0x330B90 +static signed int elbowDropCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330A10 -> 0x330B90 + class zNPCGoalBossSandyElbowDrop * edrop; // r2 + class zNPCBSandy * sandy; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330B90 -> 0x00330C24 +*/ +// Range: 0x330B90 -> 0x330C24 +static signed int noHeadCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330B90 -> 0x330C24 + class zNPCGoalBossSandyNoHead * noHead; // r2 + class zNPCBSandy * sandy; // r4 + signed int nextgoal; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330C30 -> 0x00330EB0 +*/ +// Range: 0x330C30 -> 0x330EB0 +static signed int meleeCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330C30 -> 0x330EB0 + class zNPCGoalBossSandyMelee * melee; // r16 + class zNPCBSandy * sandy; // r18 + signed int nextgoal; // r17 + unsigned int numWarnings; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00330EB0 -> 0x00331210 +*/ +// Range: 0x330EB0 -> 0x331210 +static signed int chaseCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x330EB0 -> 0x331210 + class zNPCGoalBossSandyChase * chase; // r18 + class zNPCBSandy * sandy; // r17 + signed int nextgoal; // r16 + class xVec3 pcFuturePos; // r29+0x60 + float futureDist; // r29+0x70 + float pcDistToOrigin; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00331210 -> 0x0033135C +*/ +// Range: 0x331210 -> 0x33135C +static signed int tauntCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x331210 -> 0x33135C + class zNPCGoalBossSandyTaunt * taunt; // r2 + class zNPCBSandy * sandy; // r4 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00331360 -> 0x00331448 +*/ +// Range: 0x331360 -> 0x331448 +static signed int idleCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x331360 -> 0x331448 + class zNPCGoalBossSandyIdle * idle; // r2 + class zNPCBSandy * sandy; // r5 + signed int nextgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00331450 -> 0x00331F68 +*/ +// Range: 0x331450 -> 0x331F68 +void NewTime(class zNPCBSandy * this /* r17 */, class xScene * xscn /* r23 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x331450 -> 0x331F68 + signed int csn; // r16 + signed int i; // r6 + float lenRight; // r1 + float lenLeft; // r29+0xB0 + float length; // r3 + class xCollis * coll; // r20 + class xCollis * cend; // r19 + class xVec3 knockback; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00331F70 -> 0x00331FBC +*/ +// Range: 0x331F70 -> 0x331FBC +void zNPCBSandy_GameIsPaused() { + // Blocks + /* anonymous block */ { + // Range: 0x331F70 -> 0x331FBC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00331FC0 -> 0x003320FC +*/ +// Range: 0x331FC0 -> 0x3320FC +void zNPCBSandy_AddBoundEntsToGrid() { + // Blocks + /* anonymous block */ { + // Range: 0x331FC0 -> 0x3320FC + signed int i; // r18 + signed int isLimb; // r19 + class xEnt * ent; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00332100 -> 0x00332120 +*/ +// Range: 0x332100 -> 0x332120 +void Damage(class zNPCBSandy * this /* r2 */, enum en_NPC_DAMAGE_TYPE damtype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x332100 -> 0x332120 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00332120 -> 0x00332328 +*/ +// Range: 0x332120 -> 0x332328 +void hiddenByCutscene(class zNPCBSandy * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x332120 -> 0x332328 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00332330 -> 0x00333578 +*/ +// Range: 0x332330 -> 0x333578 +void Process(class zNPCBSandy * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x332330 -> 0x333578 + signed int csn; // r18 + signed int i; // r8 + signed int j; // r8 + signed int loResEdge; // r8 + class xEnt * rope; // r7 + signed int numdata; // r2 + float intensity; // r29+0xD0 + signed int wasBeat; // r3 + float clr[3]; // r29+0xC0 + signed int picker; // r3 + float minAlpha; // r29+0xD0 + signed int whichPoint; // r3 + class xVec3 newPoint; // r29+0xB0 + class xVec3 newTan; // r29+0xA0 + float urnd; // r3 + float dist2; // r6 + class xVec3 knockback; // r29+0x90 + class xVec3 pnt1; // r29+0x80 + class xVec3 pnt2; // r29+0x70 + class xVec3 offset; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00333580 -> 0x00333600 +*/ +// Range: 0x333580 -> 0x333600 +static signed int BoundEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x333580 -> 0x333600 + class xEnt * ent; // r2 + unsigned int i; // r3 + class zNPCBSandy * sandy; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00333600 -> 0x0033380C +*/ +// Range: 0x333600 -> 0x33380C +static void MakeOBBFor(signed int index1 /* r2 */, signed int index2 /* r17 */, class xEnt * ent /* r21 */, class xMat4x3 * matArray /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x333600 -> 0x33380C + class xVec3 pnt1; // r29+0xA0 + class xVec3 pnt2; // r29+0x90 + class xVec3 cross; // r29+0x80 + float len; // r29+0xB0 + float ang; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00333810 -> 0x003339BC +*/ +// Range: 0x333810 -> 0x3339BC +static void GetBonePos(class xVec3 * result /* r17 */, class xMat4x3 * matArray /* r3 */, signed int index /* r2 */, class xVec3 * offset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x333810 -> 0x3339BC + class xMat4x3 tmpMat; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003339C0 -> 0x00333B88 +*/ +// Range: 0x3339C0 -> 0x333B88 +static void UpdateSandyBossCam(class zNPCBSandy * sandy /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3339C0 -> 0x333B88 + signed int needToCallStart; // r17 + class xVec3 tempTarget; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00333B90 -> 0x00333FF8 +*/ +// Range: 0x333B90 -> 0x333FF8 +void UpdateFX(class zNPCBSandy * this /* r21 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x333B90 -> 0x333FF8 + signed int scoreboard; // r29+0xB0 + signed int i; // r20 + unsigned int whichBolt; // r19 + float whatAng; // r29+0x110 + class xMat3x3 rot; // r29+0xC0 + class xVec3 start; // r29+0x100 + class xVec3 end; // r29+0xF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00334000 -> 0x00334428 +*/ +// Range: 0x334000 -> 0x334428 +void InitFX(class zNPCBSandy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x334000 -> 0x334428 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00334430 -> 0x003345AC +*/ +// Range: 0x334430 -> 0x3345AC +void CalcMagnetizeInfo(class zNPCBSandy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x334430 -> 0x3345AC + class xMat4x3 boneMat; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003345B0 -> 0x00334910 +*/ +// Range: 0x3345B0 -> 0x334910 +void Render(class zNPCBSandy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3345B0 -> 0x334910 + class xMat4x3 mat; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00334910 -> 0x00334A84 +*/ +// Range: 0x334910 -> 0x334A84 +static void zNPCBSandy_BossDamageEffect_Update(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x334910 -> 0x334A84 + signed int j; // r17 + float a; // r3 + float angle; // r22 + float gb; // r21 + class xModelInstance * minst; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00334A90 -> 0x00334C40 +*/ +// Range: 0x334A90 -> 0x334C40 +static void zNPCBSandy_BossDamageEffect(class xModelInstance * minst /* r2 */, unsigned int turnOff /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x334A90 -> 0x334C40 + signed int i; // r9 + signed int j; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00334C40 -> 0x00335090 +*/ +// Range: 0x334C40 -> 0x335090 +static void SpringRender(class SandyLimbSpring * spring /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x334C40 -> 0x335090 + float end1; // r24 + float end2; // r23 + float curr; // r9 + float percent; // r8 + float len; // r22 + float radius; // r21 + float minStep; // r20 + float step; // r29+0x90 + float node1Dist; // r5 + float node2Dist; // r29+0x90 + class RxObjSpace3DVertex * verts; // r20 + unsigned int numVerts; // r19 + signed int done; // r18 + signed int currSin; // r17 + signed int currCos; // r16 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00335090 -> 0x00335258 +*/ +// Range: 0x335090 -> 0x335258 +unsigned int AnimPick(class zNPCBSandy * this /* r2 */, signed int gid /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x335090 -> 0x335258 + signed int index; // r6 + unsigned int animID; // r2 + class zNPCGoalBossSandyClothesline * cl; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00335260 -> 0x003352A0 +*/ +// Range: 0x335260 -> 0x3352A0 +void ParseINI(class zNPCBSandy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x335260 -> 0x3352A0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003352A0 -> 0x00335B20 +*/ +// Range: 0x3352A0 -> 0x335B20 +void Reset(class zNPCBSandy * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3352A0 -> 0x335B20 + signed int i; // r5 + signed int j; // r3 + class RwTexture * tempTex; // r2 + char objName[32]; // r29+0x90 + unsigned int size; // r29+0xBC + class xMarkerAsset * marker; // r2 + class xAnimState * state; // r19 + class xModelInstance * currModel; // r4 + class xVec3 endPnt; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00335B20 -> 0x00335D5C +*/ +// Range: 0x335B20 -> 0x335D5C +void SelfSetup(class zNPCBSandy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x335B20 -> 0x335D5C + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00335D60 -> 0x00335F00 +*/ +// Range: 0x335D60 -> 0x335F00 +void Setup(class zNPCBSandy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x335D60 -> 0x335F00 + signed int i; // r19 + char objName[32]; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00335F00 -> 0x003365F4 +*/ +// Range: 0x335F00 -> 0x3365F4 +void Init(class zNPCBSandy * this /* r20 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x335F00 -> 0x3365F4 + signed int i; // r19 + class xEnt * ent; // r18 + char objName[32]; // r29+0x80 + class xMarkerAsset * laserMarker; // r2 + unsigned int colorPicker; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00336600 -> 0x00336758 +*/ +// Range: 0x336600 -> 0x336758 +class xAnimTable * ZNPC_AnimTable_BossSandyScoreboard() { + // Blocks + /* anonymous block */ { + // Range: 0x336600 -> 0x336758 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00336760 -> 0x00336990 +*/ +// Range: 0x336760 -> 0x336990 +class xAnimTable * ZNPC_AnimTable_BossSandyHead() { + // Blocks + /* anonymous block */ { + // Range: 0x336760 -> 0x336990 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00336990 -> 0x003369AC +*/ +// Range: 0x336990 -> 0x3369AC +static unsigned int HeadNotShocked() { + // Blocks + /* anonymous block */ { + // Range: 0x336990 -> 0x3369AC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003369B0 -> 0x003369C0 +*/ +// Range: 0x3369B0 -> 0x3369C0 +static unsigned int HeadIsShocked() { + // Blocks + /* anonymous block */ { + // Range: 0x3369B0 -> 0x3369C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003369C0 -> 0x003369DC +*/ +// Range: 0x3369C0 -> 0x3369DC +static unsigned int HeadNotCarried() { + // Blocks + /* anonymous block */ { + // Range: 0x3369C0 -> 0x3369DC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003369E0 -> 0x003369FC +*/ +// Range: 0x3369E0 -> 0x3369FC +static unsigned int HeadIsCarried() { + // Blocks + /* anonymous block */ { + // Range: 0x3369E0 -> 0x3369FC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeBossSandy.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00336A00 -> 0x0033713C +*/ +// Range: 0x336A00 -> 0x33713C +class xAnimTable * ZNPC_AnimTable_BossSandy() { + // Blocks + /* anonymous block */ { + // Range: 0x336A00 -> 0x33713C + class xAnimTable * table; // r16 + signed int ourAnims[25]; // r29+0x40 + class xAnimTransition * cur; // r3 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeCommon.cpp b/dwarf/SB/Game/zNPCTypeCommon.cpp new file mode 100644 index 000000000..6e9c06f99 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeCommon.cpp @@ -0,0 +1,5653 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_lassanim[3]; // size: 0xC, address: 0x5CC160 +char * g_strz_lassanim[3]; // size: 0xC, address: 0x4DECE0 +char * g_strz_lassevents[6]; // size: 0x18, address: 0x0 +char * g_strz_lassstages[4]; // size: 0x10, address: 0x0 +static char * g_strz_params[67]; // size: 0x10C, address: 0x4DECF0 +static enum en_npcparm mdlVertToParm[20]; // size: 0x50, address: 0x4DEE00 +static class NPCConfig * g_ncfghead; // size: 0x4, address: 0x50FE88 +static class zNPCSettings * g_dflt_npcsettings; // size: 0x4, address: 0x50FE8C +static signed int g_skipDescent; // size: 0x4, address: 0x50FE90 +static float g_tmr_talkless; // size: 0x4, address: 0x50EF70 +static signed int g_flg_wonder; // size: 0x4, address: 0x50FE98 +static signed int g_isConversation; // size: 0x4, address: 0x50FE9C +static class xBase * g_ownerConversation; // size: 0x4, address: 0x50FEA0 +struct /* @anon1 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +class NPCSndTrax g_sndTrax_General[]; // size: 0x0, address: 0x5CF998 +struct /* @anon0 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class NPCWidget { + // total size: 0xC +public: + enum en_NPC_UI_WIDGETS idxID; // offset 0x0, size 0x4 + class xBase * base_widge; // offset 0x4, size 0x4 + class zNPCCommon * npc_ownerlock; // offset 0x8, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum en_LASSO_EVENT { + LASS_EVNT_BEGIN = 0, + LASS_EVNT_ENDED = 1, + LASS_EVNT_GRABSTART = 2, + LASS_EVNT_GRABEND = 3, + LASS_EVNT_YANK = 4, + LASS_EVNT_ABORT = 5, + LASS_EVNT_NOMORE = 6, + LASS_EVNT_FORCEINT = 2147483647, +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class NPCSndProp { + // total size: 0xC +public: + enum en_NPC_SOUND sndtype; // offset 0x0, size 0x4 + signed int flg_snd; // offset 0x4, size 0x4 + float tym_delayNext; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xParSys { + // total size: 0x0 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class NPCGlyph { + // total size: 0x64 +public: + enum en_npcglyph typ_glyph; // offset 0x0, size 0x4 + signed int flg_glyph; // offset 0x4, size 0x4 + class xModelInstance * mdl_glyph; // offset 0x8, size 0x4 + class xVec3 pos_glyph; // offset 0xC, size 0xC + class xVec3 vel_glyph; // offset 0x18, size 0xC + class xMat3x3 rot_glyph; // offset 0x24, size 0x30 + class xVec3 scl_glyph; // offset 0x54, size 0xC + float tmr_glyph; // offset 0x60, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class zAnimFxSound { + // total size: 0x18 +public: + unsigned int ID; // offset 0x0, size 0x4 + float vol; // offset 0x4, size 0x4 + float pitch; // offset 0x8, size 0x4 + unsigned int priority; // offset 0xC, size 0x4 + unsigned int flags; // offset 0x10, size 0x4 + float radius; // offset 0x14, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xParGroup { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xPSYNote { + // total size: 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xSFX : public xBase { + // total size: 0x1C +public: + class xSFXAsset * asset; // offset 0x10, size 0x4 + unsigned int sndID; // offset 0x14, size 0x4 + float cachedOuterDistSquared; // offset 0x18, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum en_lassanim { + LASS_ANIM_UNKNOWN = 0, + LASS_ANIM_GRAB = 1, + LASS_ANIM_HOLD = 2, + LASS_ANIM_NOMORE = 3, + LASS_ANIM_FORCEINT = 2147483647, +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_ZBASETYPE { + eBaseTypeUnknown = 0, + eBaseTypeTrigger = 1, + eBaseTypeVillain = 2, + eBaseTypePlayer = 3, + eBaseTypePickup = 4, + eBaseTypeEnv = 5, + eBaseTypePlatform = 6, + eBaseTypeCamera = 7, + eBaseTypeDoor = 8, + eBaseTypeSavePoint = 9, + eBaseTypeItem = 10, + eBaseTypeStatic = 11, + eBaseTypeDynamic = 12, + eBaseTypeMovePoint = 13, + eBaseTypeTimer = 14, + eBaseTypeBubble = 15, + eBaseTypePortal = 16, + eBaseTypeGroup = 17, + eBaseTypePendulum = 18, + eBaseTypeSFX = 19, + eBaseTypeFFX = 20, + eBaseTypeVFX = 21, + eBaseTypeCounter = 22, + eBaseTypeHangable = 23, + eBaseTypeButton = 24, + eBaseTypeProjectile = 25, + eBaseTypeSurface = 26, + eBaseTypeDestructObj = 27, + eBaseTypeGust = 28, + eBaseTypeVolume = 29, + eBaseTypeDispatcher = 30, + eBaseTypeCond = 31, + eBaseTypeUI = 32, + eBaseTypeUIFont = 33, + eBaseTypeProjectileType = 34, + eBaseTypeLobMaster = 35, + eBaseTypeFog = 36, + eBaseTypeLight = 37, + eBaseTypeParticleEmitter = 38, + eBaseTypeParticleSystem = 39, + eBaseTypeCutsceneMgr = 40, + eBaseTypeEGenerator = 41, + eBaseTypeScript = 42, + eBaseTypeNPC = 43, + eBaseTypeHud = 44, + eBaseTypeNPCProps = 45, + eBaseTypeParticleEmitterProps = 46, + eBaseTypeBoulder = 47, + eBaseTypeCruiseBubble = 48, + eBaseTypeTeleportBox = 49, + eBaseTypeBusStop = 50, + eBaseTypeTextBox = 51, + eBaseTypeTalkBox = 52, + eBaseTypeTaskBox = 53, + eBaseTypeBoulderGenerator = 54, + eBaseTypeNPCSettings = 55, + eBaseTypeDiscoFloor = 56, + eBaseTypeTaxi = 57, + eBaseTypeHUD_model = 58, + eBaseTypeHUD_font_meter = 59, + eBaseTypeHUD_unit_meter = 60, + eBaseTypeBungeeHook = 61, + eBaseTypeCameraFly = 62, + eBaseTypeTrackPhysics = 63, + eBaseTypeZipLine = 64, + eBaseTypeArena = 65, + eBaseTypeDuplicator = 66, + eBaseTypeLaserBeam = 67, + eBaseTypeTurret = 68, + eBaseTypeCameraTweak = 69, + eBaseTypeSlideProps = 70, + eBaseTypeHUD_text = 71, + eBaseTypeCount = 72, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum en_NPC_UI_WIDGETS { + NPC_WIDGE_TALK = 0, + NPC_WIDGE_NOMORE = 1, + NPC_WIDGE_FORCE = 2, +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum en_mdlvert { + NPC_MDLVERT_ATTACKBASE = 0, + NPC_MDLVERT_ATTACK = 1, + NPC_MDLVERT_ATTACK1 = 2, + NPC_MDLVERT_ATTACK2 = 3, + NPC_MDLVERT_ATTACK3 = 4, + NPC_MDLVERT_ATTACK4 = 5, + NPC_MDLVERT_LOSEYEBALL = 6, + NPC_MDLVERT_DMGSMOKE_A = 7, + NPC_MDLVERT_DMGSMOKE_B = 8, + NPC_MDLVERT_DMGSMOKE_C = 9, + NPC_MDLVERT_DMGFLAME_A = 10, + NPC_MDLVERT_DMGFLAME_B = 11, + NPC_MDLVERT_DMGFLAME_C = 12, + NPC_MDLVERT_PROPEL = 13, + NPC_MDLVERT_EXHAUST = 14, + NPC_MDLVERT_GEN01 = 15, + NPC_MDLVERT_GEN02 = 16, + NPC_MDLVERT_GEN03 = 17, + NPC_MDLVERT_GEN04 = 18, + NPC_MDLVERT_GEN05 = 19, + NPC_MDLVERT_NOMORE = 20, + NPC_MDLVERT_FORCEINT = 2147483647, +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +struct /* @anon0 */ { + // total size: 0x54 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_npcparm { + NPC_PARM_NONE = 0, + NPC_PARM_MOVERATE = 1, + NPC_PARM_TURNRATE = 2, + NPC_PARM_ACCEL = 3, + NPC_PARM_DRIFT = 4, + NPC_PARM_MASS = 5, + NPC_PARM_TOSSGRAV = 6, + NPC_PARM_TOSSELASTIC = 7, + NPC_PARM_BND_ISBOX = 8, + NPC_PARM_BND_CENTER = 9, + NPC_PARM_BND_EXTENT = 10, + NPC_PARM_HITPOINTS = 11, + NPC_PARM_MODELSCALE = 12, + NPC_PARM_DETECT_RAD = 13, + NPC_PARM_DETECT_HYT = 14, + NPC_PARM_DETECT_OFF = 15, + NPC_PARM_ATTACK_RAD = 16, + NPC_PARM_ATTACK_FOV = 17, + NPC_PARM_SND_RAD = 18, + NPC_PARM_TIMEFIDGET = 19, + NPC_PARM_TIMEATTACK = 20, + NPC_PARM_TIMESTUN = 21, + NPC_PARM_TIMEALERT = 22, + NPC_PARM_VTX_ATTACKBASE = 23, + NPC_PARM_VTX_ATTACK = 24, + NPC_PARM_VTX_ATTACK1 = 25, + NPC_PARM_VTX_ATTACK2 = 26, + NPC_PARM_VTX_ATTACK3 = 27, + NPC_PARM_VTX_ATTACK4 = 28, + NPC_PARM_VTX_EYEBALL = 29, + NPC_PARM_VTX_DMGSMOKEA = 30, + NPC_PARM_VTX_DMGSMOKEB = 31, + NPC_PARM_VTX_DMGSMOKEC = 32, + NPC_PARM_VTX_DMGFLAMEA = 33, + NPC_PARM_VTX_DMGFLAMEB = 34, + NPC_PARM_VTX_DMGFLAMEC = 35, + NPC_PARM_VTX_PROPEL = 36, + NPC_PARM_VTX_EXHAUST = 37, + NPC_PARM_VTX_GEN01 = 38, + NPC_PARM_VTX_GEN02 = 39, + NPC_PARM_VTX_GEN03 = 40, + NPC_PARM_VTX_GEN04 = 41, + NPC_PARM_VTX_GEN05 = 42, + NPC_PARM_ATK_SIZE01 = 43, + NPC_PARM_ATK_FRAMES01 = 44, + NPC_PARM_ATK_FRAMES01A = 45, + NPC_PARM_ATK_FRAMES01B = 46, + NPC_PARM_ATK_FRAMES02 = 47, + NPC_PARM_ATK_FRAMES02A = 48, + NPC_PARM_ATK_FRAMES02B = 49, + NPC_PARM_ATK_FRAMES03 = 50, + NPC_PARM_ATK_FRAMES03A = 51, + NPC_PARM_ATK_FRAMES03B = 52, + NPC_PARM_ESTEEM_A = 53, + NPC_PARM_ESTEEM_B = 54, + NPC_PARM_ESTEEM_C = 55, + NPC_PARM_ESTEEM_D = 56, + NPC_PARM_ESTEEM_E = 57, + NPC_PARM_SHADOW_CASTDIST = 58, + NPC_PARM_SHADOW_RADCACHE = 59, + NPC_PARM_SHADOW_RADRASTER = 60, + NPC_PARAM_TEST_COUNT = 61, + NPC_PARM_ENDTAG_INI = 62, + NPC_PARM_FIRSTMVPT = 63, + NPC_PARM_ENDTAG_PROPS = 64, + NPC_PARM_BOGUSSHARE = 65, + NPC_PARM_ENDTAG_SHARE = 66, + NPC_PARM_NOMORE = 67, + NPC_PARM_FORCEINT = 2147483647, +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class anim_coll_data { + // total size: 0x0 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum en_npcglyph { + NPC_GLYPH_UNKNOWN = 0, + NPC_GLYPH_SHINYONE = 1, + NPC_GLYPH_SHINYFIVE = 2, + NPC_GLYPH_SHINYTEN = 3, + NPC_GLYPH_SHINYFIFTY = 4, + NPC_GLYPH_SHINYHUNDRED = 5, + NPC_GLYPH_TALK = 6, + NPC_GLYPH_TALKOTHER = 7, + NPC_GLYPH_FRIEND = 8, + NPC_GLYPH_DAZED = 9, + NPC_GLYPH_NOMORE = 10, + NPC_GLYPH_FORCE = 2147483647, +}; +struct /* @anon1 */ { + // total size: 0xCC +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +enum en_xEventTags { + eEventUnknown = 0, + eEventEnable = 1, + eEventDisable = 2, + eEventVisible = 3, + eEventInvisible = 4, + eEventEnterPlayer = 5, + eEventExitPlayer = 6, + eEventTouchPlayer = 7, + eEventControlOff = 8, + eEventControlOn = 9, + eEventReset = 10, + eEventIncrement = 11, + eEventDecrement = 12, + eEventOpen = 13, + eEventClose = 14, + eEventToggle = 15, + eEventTeleportPlayer = 16, + eEventOutOfBounds = 17, + eEventRun = 18, + eEventStop = 19, + eEventExpired = 20, + eEventMove = 21, + eEventDestroy = 22, + eEventPause = 23, + eEventPlay = 24, + eEventPlayOne = 25, + eEventPlayMaybe = 26, + eEventRoomStart = 27, + eEventInvalidate = 28, + eEventTilt = 29, + eEventUntilt = 30, + eEventArrive = 31, + eEventMount = 32, + eEventDismount = 33, + eEventBreak = 34, + eEventPickup = 35, + eEventDeath = 36, + eEventKill = 37, + eEventOn = 38, + eEventOff = 39, + eEventNPCPatrolOn = 40, + eEventNPCPatrolOff = 41, + eEventNPCWanderOn = 42, + eEventNPCWanderOff = 43, + eEventNPCDetectOn = 44, + eEventNPCDetectOff = 45, + eEventNPCChaseOn = 46, + eEventNPCChaseOff = 47, + eEventNPCGoToSleep = 48, + eEventNPCWakeUp = 49, + eEventNPCRespawn = 50, + eEventPlayerDeath = 51, + eEventGiveChance = 52, + eEventGiveShinyObjects = 53, + eEventGiveHealth = 54, + eEventPress = 55, + eEventUnpress = 56, + eEventArriveHalfway = 57, + eEventHit = 58, + eEventButtonPressAction = 59, + eEventEvaluate = 60, + eEventTrue = 61, + eEventFalse = 62, + eEventPadPressX = 63, + eEventPadPressSquare = 64, + eEventPadPressO = 65, + eEventPadPressTriangle = 66, + eEventPadPressL1 = 67, + eEventPadPressL2 = 68, + eEventPadPressR1 = 69, + eEventPadPressR2 = 70, + eEventPadPressStart = 71, + eEventPadPressSelect = 72, + eEventPadPressUp = 73, + eEventPadPressDown = 74, + eEventPadPressRight = 75, + eEventPadPressLeft = 76, + eEventFontBackdropOn = 77, + eEventFontBackdropOff = 78, + eEventUISelect = 79, + eEventUIUnselect = 80, + eEventUIFocusOn = 81, + eEventUIFocusOff = 82, + eEventCollisionOn = 83, + eEventCollisionOff = 84, + eEventCollision_Visible_On = 85, + eEventCollision_Visible_Off = 86, + eEventSceneBegin = 87, + eEventSceneEnd = 88, + eEventRoomBegin = 89, + eEventRoomEnd = 90, + eEventLobMasterShoot = 91, + eEventLobMasterReset = 92, + eEventFallToDeath = 93, + eEventUIFocusOn_Select = 94, + eEventUIFocusOff_Unselect = 95, + eEventDispatcher_PadCfg_PresetA = 96, + eEventDispatcher_PadCfg_PresetB = 97, + eEventDispatcher_PadCfg_PresetC = 98, + eEventDispatcher_PadCfg_PresetD = 99, + eEventDispatcher_PadVibrateOn = 100, + eEventDispatcher_PadVibrateOff = 101, + eEventDispatcher_SoundMono = 102, + eEventDispatcher_SoundStereo = 103, + eEventDispatcher_SoundMasterIncrease = 104, + eEventDispatcher_SoundMasterDecrease = 105, + eEventDispatcher_SoundMusicIncrease = 106, + eEventDispatcher_SoundMusicDecrease = 107, + eEventDispatcher_SoundSFXIncrease = 108, + eEventDispatcher_SoundSFXDecrease = 109, + eEventDispatcher_IntroState_Sony = 110, + eEventDispatcher_IntroState_Publisher = 111, + eEventDispatcher_IntroState_Developer = 112, + eEventDispatcher_IntroState_License = 113, + eEventDispatcher_IntroState_Count = 114, + eEventDispatcher_TitleState_Start = 115, + eEventDispatcher_TitleState_Attract = 116, + eEventDispatcher_TitleState_Count = 117, + eEventDispatcher_LoadState_SelectMemCard = 118, + eEventDispatcher_LoadState_SelectSlot = 119, + eEventDispatcher_LoadState_Loading = 120, + eEventDispatcher_LoadState_Count = 121, + eEventDispatcher_OptionsState_Options = 122, + eEventDispatcher_OptionsState_Count = 123, + eEventDispatcher_SaveState_SelectMemCard = 124, + eEventDispatcher_SaveState_SelectSlot = 125, + eEventDispatcher_SaveState_Saving = 126, + eEventDispatcher_SaveState_Count = 127, + eEventDispatcher_PauseState_Pause = 128, + eEventDispatcher_PauseState_Options = 129, + eEventDispatcher_PauseState_Count = 130, + eEventDispatcher_GameState_FirstTime = 131, + eEventDispatcher_GameState_Play = 132, + eEventDispatcher_GameState_LoseChance = 133, + eEventDispatcher_GameState_GameOver = 134, + eEventDispatcher_GameState_SceneSwitch = 135, + eEventDispatcher_GameState_Dead = 136, + eEventDispatcher_SetIntroState_Sony = 137, + eEventDispatcher_SetIntroState_Publisher = 138, + eEventDispatcher_SetIntroState_Developer = 139, + eEventDispatcher_SetIntroState_License = 140, + eEventDispatcher_SetIntroState_Count = 141, + eEventDispatcher_SetTitleState_Start = 142, + eEventDispatcher_SetTitleState_Attract = 143, + eEventDispatcher_SetTitleState_Count = 144, + eEventDispatcher_SetLoadState_SelectMemCard = 145, + eEventDispatcher_SetLoadState_SelectSlot = 146, + eEventDispatcher_SetLoadState_Loading = 147, + eEventDispatcher_SetLoadState_Count = 148, + eEventDispatcher_SetOptionsState_Options = 149, + eEventDispatcher_SetOptionsState_Count = 150, + eEventDispatcher_SetSaveState_SelectMemCard = 151, + eEventDispatcher_SetSaveState_SelectSlot = 152, + eEventDispatcher_SetSaveState_Saving = 153, + eEventDispatcher_SetSaveState_Count = 154, + eEventDispatcher_SetPauseState_Pause = 155, + eEventDispatcher_SetPauseState_Options = 156, + eEventDispatcher_SetPauseState_Count = 157, + eEventDispatcher_SetGameState_FirstTime = 158, + eEventDispatcher_SetGameState_Play = 159, + eEventDispatcher_SetGameState_LoseChance = 160, + eEventDispatcher_SetGameState_GameOver = 161, + eEventDispatcher_SetGameState_SceneSwitch = 162, + eEventDispatcher_SetGameState_Dead = 163, + eEventDigup = 164, + eEventDispatcher_GameState_Exit = 165, + eEventDispatcher_SetGameState_Exit = 166, + eEventLobMasterShootFromWidget = 167, + eEventDispatcher_SLBack = 168, + eEventDispatcher_SLCancel = 169, + eEventDispatcher_SLRetry = 170, + eEventDispatcher_SLSelectCard = 171, + eEventDispatcher_SLSelectSlot = 172, + eEventDispatcher_SLOkay = 173, + eEventVilHurtBoss = 174, + eEventAttack = 175, + eEventAttackOn = 176, + eEventAttackOff = 177, + eEventDrop = 178, + eEventVilReport_StartingIdle = 179, + eEventVilReport_StartingSleep = 180, + eEventVilReport_StartingGuard = 181, + eEventVilReport_StartingPatrol = 182, + eEventVilReport_StartingDazed = 183, + eEventVilReport_StartingLook = 184, + eEventVilReport_StartingListen = 185, + eEventVilReport_StartingInvestigate = 186, + eEventVilReport_StartingChase = 187, + eEventVilReport_StartingAttack = 188, + eEventVilReport_StartingRetreat = 189, + eEventPreload = 190, + eEventDone = 191, + eEventArcto = 192, + eEventDigupReaction = 193, + eEventDispatcher_StoreCheckPoint = 194, + eEventAnimPlay = 195, + eEventAnimPlayLoop = 196, + eEventAnimStop = 197, + eEventAnimPause = 198, + eEventAnimResume = 199, + eEventAnimTogglePause = 200, + eEventAnimPlayRandom = 201, + eEventAnimPlayMaybe = 202, + eEventSetSpeed = 203, + eEventAccelerate = 204, + eEventMoveToTarget = 205, + eEventSwingerFollow = 206, + eEventShaggyMount = 207, + eEventShaggyWitchDrop = 208, + eEventShaggySwap = 209, + eEventShaggyState = 210, + eEventShaggyAction = 211, + eEventEnterEntity = 212, + eEventExitEntity = 213, + eEventEnterEntityFLAG = 214, + eEventExitEntityFLAG = 215, + eEventDrivenby = 216, + eEventFollowTarget = 217, + eEventFaceTarget = 218, + eEventWatchTarget = 219, + eEventShaggyCollideOnly = 220, + eEventShaggy1_ThrowTarget = 221, + eEventShaggy8_CallEnable = 222, + eEventShaggy8_CallDisable = 223, + eEventShaggy8_SetMagnet = 224, + eEventShaggy8_ClearMagnet = 225, + eEventStartMoving = 226, + eEventStopMoving = 227, + eEventSwoosh = 228, + eEventShaggySetDown = 229, + eEventShaggyGrabEnable = 230, + eEventShaggyGrabDisable = 231, + eEventShaggyGrabbed = 232, + eEventShaggyThrown = 233, + eEventVilDoAction = 234, + eEventGangDoBossAction = 235, + eEventVilFakeChaseOn = 236, + eEventVilFakeChaseOff = 237, + eEventBossMMPushButton = 238, + eEventVilReport_DecayComplete = 239, + eEventVilGuardWidget = 240, + eEventTextureAnimateOn = 241, + eEventTextureAnimateOff = 242, + eEventTextureAnimateToggle = 243, + eEventColorEffectOn = 244, + eEventColorEffectOff = 245, + eEventColorEffectToggle = 246, + eEventSetTextureAnimGroup = 247, + eEventSetTextureAnimSpeed = 248, + eEventTextureAnimateStep = 249, + eEventEmit = 250, + eEventEmitted = 251, + eEventTranslucentOn = 252, + eEventTranslucentOff = 253, + eEventTranslucentToggle = 254, + eEventVilGangTalkOn = 255, + eEventVilGangTalkOff = 256, + eEventGivePowerUp = 257, + eEventUnlockR001 = 258, + eEventUnlockS001 = 259, + eEventUnlockE001 = 260, + eEventUnlockF001 = 261, + eEventDisableGroupContents = 262, + eEventShaggyPhysHack = 263, + eEventOccludeOn = 264, + eEventOccludeOff = 265, + eEventWaveSetLinear = 266, + eEventWaveSetRipple = 267, + eEventSituationLaugh = 268, + eEventSituationBossBattleGreenGhost = 269, + eEventSituationBossBattleRedBeard = 270, + eEventSituationBossBattleMasterMind = 271, + eEventSituationBossBattleBlacknight = 272, + eEventSituationPlayerScare = 273, + eEventSituationPlayerSafe = 274, + eEventSituationPlayerDanger = 275, + eEventSituationPlayerChaseBegin = 276, + eEventSituationPlayerChaseEnd = 277, + eEventSituationPlayerSeeShaggy = 278, + eEventSituationPlayerSeeFood = 279, + eEventSituationPlayerSeeToken = 280, + eEventSituationPlayerSeeScoobySnack = 281, + eEventSituationPlayerSeePowerup = 282, + eEventSituationPlayerSeeMonster = 283, + eEventSituationPlayerSuccess = 284, + eEventSituationPlayerFailure = 285, + eEventDispatcher_ShowHud = 286, + eEventDispatcher_HideHud = 287, + eEventDispatcher_FadeOut = 288, + eEventSetRain = 289, + eEventSetSnow = 290, + eEventShaggyMowerStopMode = 291, + eEventScriptReset = 292, + eEventWaitForInput = 293, + eEventPlayMovie = 294, + eEventDefeatedMM = 295, + eEventDispatcher_SetGameState_GameStats = 296, + eEventPlayMusic = 297, + eEventForward = 298, + eEventReverse = 299, + eEventPlayerRumbleTest = 300, + eEventPlayerRumbleLight = 301, + eEventPlayerRumbleMedium = 302, + eEventPlayerRumbleHeavy = 303, + eEventDispatcherScreenAdjustON = 304, + eEventDispatcherScreenAdjustOFF = 305, + eEventSetSkyDome = 306, + eEventConnectToChild = 307, + eEventDuploWaveBegin = 308, + eEventDuploWaveComplete = 309, + eEventDuploNPCBorn = 310, + eEventDuploNPCKilled = 311, + eEventDuploExpiredMaxNPC = 312, + eEventDuploPause = 313, + eEventDuploResume = 314, + eEventSetGoo = 315, + eEventNPCScript_ScriptBegin = 316, + eEventNPCScript_ScriptEnd = 317, + eEventNPCScript_ScriptReady = 318, + eEventNPCScript_Halt = 319, + eEventNPCScript_SetPos = 320, + eEventNPCScript_SetDir = 321, + eEventNPCScript_LookNormal = 322, + eEventNPCScript_LookAlert = 323, + eEventNPCScript_FaceWidget = 324, + eEventNPCScript_FaceWidgetDone = 325, + eEventNPCScript_GotoWidget = 326, + eEventNPCScript_GotoWidgetDone = 327, + eEventNPCScript_AttackWidget = 328, + eEventNPCScript_AttackWidgetDone = 329, + eEventNPCScript_FollowWidget = 330, + eEventNPCScript_PlayAnim = 331, + eEventNPCScript_PlayAnimDone = 332, + eEventNPCScript_LeadPlayer = 333, + eEventSetText = 334, + eEventStartConversation = 335, + eEventEndConversation = 336, + eEventSwitch = 337, + eEventAddText = 338, + eEventClearText = 339, + eEventOpenTBox = 340, + eEventCloseTBox = 341, + eEventTalkBox_OnSignal0 = 342, + eEventTalkBox_OnSignal1 = 343, + eEventTalkBox_OnSignal2 = 344, + eEventTalkBox_OnSignal3 = 345, + eEventTalkBox_OnSignal4 = 346, + eEventTalkBox_OnSignal5 = 347, + eEventTalkBox_OnSignal6 = 348, + eEventTalkBox_OnSignal7 = 349, + eEventTalkBox_OnSignal8 = 350, + eEventTalkBox_OnSignal9 = 351, + eEventTalkBox_StopWait = 352, + eEventTalkBox_OnStart = 353, + eEventTalkBox_OnStop = 354, + eEventHit_Melee = 355, + eEventHit_BubbleBounce = 356, + eEventHit_BubbleBash = 357, + eEventHit_BubbleBowl = 358, + eEventHit_PatrickSlam = 359, + eEventHit_Throw = 360, + eEventHit_PaddleLeft = 361, + eEventHit_PaddleRight = 362, + eEventTaskBox_Initiate = 363, + eEventTaskBox_SetSuccess = 364, + eEventTaskBox_SetFailure = 365, + eEventTaskBox_OnAccept = 366, + eEventTaskBox_OnDecline = 367, + eEventTaskBox_OnComplete = 368, + eEventGenerateBoulder = 369, + eEventLaunchBoulderAtWidget = 370, + eEventLaunchBoulderAtPoint = 371, + eEventLaunchBoulderAtPlayer = 372, + eEventDuploSuperDuperDone = 373, + eEventDuploDuperIsDoner = 374, + eEventBusStopSwitchChr = 375, + eEventGroupUpdateTogether = 376, + eEventSetUpdateDistance = 377, + eEventTranslLocalX = 378, + eEventTranslLocalY = 379, + eEventTranslLocalZ = 380, + eEventTranslWorldX = 381, + eEventTranslWorldY = 382, + eEventTranslWorldZ = 383, + eEventRotLocalX = 384, + eEventRotLocalY = 385, + eEventRotLocalZ = 386, + eEventRotWorldX = 387, + eEventRotWorldY = 388, + eEventRotWorldZ = 389, + eEventTranslLocalXDone = 390, + eEventTranslLocalYDone = 391, + eEventTranslLocalZDone = 392, + eEventTranslWorldXDone = 393, + eEventTranslWorldYDone = 394, + eEventTranslWorldZDone = 395, + eEventRotLocalXDone = 396, + eEventRotLocalYDone = 397, + eEventRotLocalZDone = 398, + eEventRotWorldXDone = 399, + eEventRotWorldYDone = 400, + eEventRotWorldZDone = 401, + eEventCount1 = 402, + eEventCount2 = 403, + eEventCount3 = 404, + eEventCount4 = 405, + eEventCount5 = 406, + eEventCount6 = 407, + eEventCount7 = 408, + eEventCount8 = 409, + eEventCount9 = 410, + eEventCount10 = 411, + eEventCount11 = 412, + eEventCount12 = 413, + eEventCount13 = 414, + eEventCount14 = 415, + eEventCount15 = 416, + eEventCount16 = 417, + eEventCount17 = 418, + eEventCount18 = 419, + eEventCount19 = 420, + eEventCount20 = 421, + eEventSetState = 422, + eEventEnterSpongeBob = 423, + eEventEnterPatrick = 424, + eEventEnterSandy = 425, + eEventExitSpongeBob = 426, + eEventExitPatrick = 427, + eEventExitSandy = 428, + eEventNPCSpecial_PlatformSnap = 429, + eEventNPCSpecial_PlatformFall = 430, + eEventGooSetWarb = 431, + eEventGooSetFreezeDuration = 432, + eEventGooMelt = 433, + eEventSetStateRange = 434, + eEventSetStateDelay = 435, + eEventSetTransitionDelay = 436, + eEventNPCFightOn = 437, + eEventNPCFightOff = 438, + eEventNPCSplineOKOn = 439, + eEventNPCSplineOKOff = 440, + eEventNPCKillQuietly = 441, + eEventHitHead = 442, + eEventHitUpperBody = 443, + eEventHitLeftArm = 444, + eEventHitRightArm = 445, + eEventHitLeftLeg = 446, + eEventHitRightLeg = 447, + eEventHitLowerBody = 448, + eEventGiveCurrLevelSocks = 449, + eEventGiveCurrLevelPickup = 450, + eEventSetCurrLevelSocks = 451, + eEventSetCurrLevelPickup = 452, + eEventTalkBox_OnYes = 453, + eEventTalkBox_OnNo = 454, + eEventHit_Cruise = 455, + eEventDuploKillKids = 456, + eEventTalkBox_OnSignal10 = 457, + eEventTalkBox_OnSignal11 = 458, + eEventTalkBox_OnSignal12 = 459, + eEventTalkBox_OnSignal13 = 460, + eEventTalkBox_OnSignal14 = 461, + eEventTalkBox_OnSignal15 = 462, + eEventTalkBox_OnSignal16 = 463, + eEventTalkBox_OnSignal17 = 464, + eEventTalkBox_OnSignal18 = 465, + eEventTalkBox_OnSignal19 = 466, + eEventSpongeballOn = 467, + eEventSpongeballOff = 468, + eEventLaunchShrapnel = 469, + eEventNPCHPIncremented = 470, + eEventNPCHPDecremented = 471, + eEventNPCSetActiveOn = 472, + eEventNPCSetActiveOff = 473, + eEventPlrSwitchCharacter = 474, + eEventLevelBegin = 475, + eEventSceneReset = 476, + eEventSceneEnter = 477, + eEventSituationDestroyedTiki = 478, + eEventSituationDestroyedRobot = 479, + eEventSituationSeeWoodTiki = 480, + eEventSituationSeeLoveyTiki = 481, + eEventSituationSeeShhhTiki = 482, + eEventSituationSeeThunderTiki = 483, + eEventSituationSeeStoneTiki = 484, + eEventSituationSeeFodder = 485, + eEventSituationSeeHammer = 486, + eEventSituationSeeTarTar = 487, + eEventSituationSeeGLove = 488, + eEventSituationSeeMonsoon = 489, + eEventSituationSeeSleepyTime = 490, + eEventSituationSeeArf = 491, + eEventSituationSeeTubelets = 492, + eEventSituationSeeSlick = 493, + eEventSituationSeeKingJellyfish = 494, + eEventSituationSeePrawn = 495, + eEventSituationSeeDutchman = 496, + eEventSituationSeeSandyBoss = 497, + eEventSituationSeePatrickBoss = 498, + eEventSituationSeeSpongeBobBoss = 499, + eEventSituationSeeRobotPlankton = 500, + eEventUIChangeTexture = 501, + eEventNPCCheerForMe = 502, + eEventFastVisible = 503, + eEventFastInvisible = 504, + eEventZipLineMount = 505, + eEventZipLineDismount = 506, + eEventTarget = 507, + eEventFire = 508, + eEventCameraFXShake = 509, + eEventBulletTime = 510, + eEventThrown = 511, + eEventUpdateAnimMatrices = 512, + eEventEnterCruise = 513, + eEventExitCruise = 514, + eEventCruiseFired = 515, + eEventCruiseDied = 516, + eEventCruiseAddLife = 517, + eEventCruiseSetLife = 518, + eEventCruiseResetLife = 519, + eEventCameraCollideOff = 520, + eEventCameraCollideOn = 521, + eEventOnSliding = 522, + eEventOffSliding = 523, + eEventTimerSet = 524, + eEventTimerAdd = 525, + eEventNPCForceConverseStart = 526, + eEventMakeASplash = 527, + eEventCreditsStart = 528, + eEventCreditsStop = 529, + eEventCreditsEnded = 530, + eEventBubbleWipe = 531, + eEventSetLightKit = 532, + eEventSetOpacity = 533, + eEventTakeSocks = 534, + eEventDispatcherAssert = 535, + eEventBorn = 536, + eEventPlatPause = 537, + eEventPlatUnpause = 538, + eEventStoreOptions = 539, + eEventRestoreOptions = 540, + eEventCount = 541, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +enum en_npcvibe { + NPC_VIBE_SOFT = 0, + NPC_VIBE_NORM = 1, + NPC_VIBE_HARD = 2, + NPC_VIBE_BUILD_A = 3, + NPC_VIBE_BUILD_B = 4, + NPC_VIBE_BUILD_C = 5, + NPC_VIBE_NOMORE = 6, + NPC_VIBE_FORCE = 2147483647, +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF560 -> 0x002CF5C8 +*/ +// Range: 0x2CF560 -> 0x2CF5C8 +void zNPCCommon_EjectPhlemOnPawz() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF560 -> 0x2CF5C8 + class NPCWidget * talk_font; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF5D0 -> 0x002CF7D4 +*/ +// Range: 0x2CF5D0 -> 0x2CF7D4 +void NPCC_BuildStandardAnimTran(class xAnimTable * table /* r18 */, char * * namelist /* r17 */, signed int * ourAnims /* r16 */, signed int idx_dflt /* r22 */, float blend /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CF5D0 -> 0x2CF7D4 + class xAnimTransition * def; // r21 + char * * names; // r2 + signed int i; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF7E0 -> 0x002CF8E8 +*/ +// Range: 0x2CF7E0 -> 0x2CF8E8 +class xAnimTable * ZNPC_AnimTable_LassoGuide() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF7E0 -> 0x2CF8E8 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF8F0 -> 0x002CF970 +*/ +// Range: 0x2CF8F0 -> 0x2CF970 +class xAnimTable * ZNPC_AnimTable_Common() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF8F0 -> 0x2CF970 + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF970 -> 0x002CFAE8 +*/ +// Range: 0x2CF970 -> 0x2CFAE8 +void AddScripting(class zNPCCommon * this /* r2 */, class xPsyche * psy /* r21 */, signed int (* eval_script)(class xGoal *, void *, enum en_trantype *, float, void *) /* r20 */, signed int (* eval_playanim)(class xGoal *, void *, enum en_trantype *, float, void *) /* r19 */, signed int (* eval_attack)(class xGoal *, void *, enum en_trantype *, float, void *) /* r18 */, signed int (* eval_move)(class xGoal *, void *, enum en_trantype *, float, void *) /* r17 */, signed int (* eval_follow)(class xGoal *, void *, enum en_trantype *, float, void *) /* r16 */, signed int (* eval_lead)(class xGoal *, void *, enum en_trantype *, float, void *) /* r22 */, signed int (* eval_wait)(class xGoal *, void *, enum en_trantype *, float, void *) /* r29+0x80 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CF970 -> 0x2CFAE8 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFAF0 -> 0x002CFC14 +*/ +// Range: 0x2CFAF0 -> 0x2CFC14 +void AddBaseline(class xPsyche * psy /* r19 */, signed int (* eval_idle)(class xGoal *, void *, enum en_trantype *, float, void *) /* r21 */, signed int (* eval_patrol)(class xGoal *, void *, enum en_trantype *, float, void *) /* r18 */, signed int (* eval_wander)(class xGoal *, void *, enum en_trantype *, float, void *) /* r20 */, signed int (* eval_waiting)(class xGoal *, void *, enum en_trantype *, float, void *) /* r17 */, signed int (* eval_fidget)(class xGoal *, void *, enum en_trantype *, float, void *) /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFAF0 -> 0x2CFC14 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFC20 -> 0x002CFCA8 +*/ +// Range: 0x2CFC20 -> 0x2CFCA8 +void LassoNotify(class zNPCCommon * this /* r2 */, enum en_LASSO_EVENT event /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFC20 -> 0x2CFCA8 + class zNPCLassoInfo * lass; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFCB0 -> 0x002CFCD0 +*/ +// Range: 0x2CFCB0 -> 0x2CFCD0 +class zNPCLassoInfo * GimmeLassInfo(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFCB0 -> 0x2CFCD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFCD0 -> 0x002CFD5C +*/ +// Range: 0x2CFCD0 -> 0x2CFD5C +void LassoSyncAnims(class zNPCCommon * this /* r2 */, enum en_lassanim lassanim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFCD0 -> 0x2CFD5C + class xAnimState * lass_ast; // r7 + class xModelInstance * lass_mdl; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFD60 -> 0x002CFEF8 +*/ +// Range: 0x2CFD60 -> 0x2CFEF8 +signed int LassoGetAnims(class zNPCCommon * this /* r2 */, class xModelInstance * modgrab /* r20 */, class xModelInstance * modhold /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFD60 -> 0x2CFEF8 + class xAnimState * ast; // r5 + class xAnimState * ast_grab; // r18 + class xAnimState * ast_hold; // r17 + class zNPCLassoInfo * lass; // r16 + class xAnimPlay * play; // r21 + class xAnimTable * tab; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFF00 -> 0x002CFF94 +*/ +// Range: 0x2CFF00 -> 0x2CFF94 +signed int LassoUseGuides(class zNPCCommon * this /* r2 */, signed int idx_grabmdl /* r2 */, signed int idx_holdmdl /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFF00 -> 0x2CFF94 + class xModelInstance * minst; // r10 + class xModelInstance * mod_grab; // r9 + class xModelInstance * mod_hold; // r8 + class zNPCLassoInfo * lass; // r7 + signed int midx; // r3 + signed int haveAnims; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CFFA0 -> 0x002D0090 +*/ +// Range: 0x2CFFA0 -> 0x2D0090 +signed int LassoSetup(class zNPCCommon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CFFA0 -> 0x2D0090 + class zNPCLassoInfo * lass; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0090 -> 0x002D0188 +*/ +// Range: 0x2D0090 -> 0x2D0188 +signed int SndQueUpdate(class zNPCCommon * this /* r20 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0090 -> 0x2D0188 + class NPCSndQueue * que; // r19 + class NPCSndProp * sprop; // r2 + signed int i; // r18 + signed int cnt; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0190 -> 0x002D01F4 +*/ +// Range: 0x2D0190 -> 0x2D01F4 +void SndKillSounds(class zNPCCommon * this /* r2 */, signed int flg_chan /* r2 */, signed int all /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0190 -> 0x2D01F4 + signed int owner; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0200 -> 0x002D0228 +*/ +// Range: 0x2D0200 -> 0x2D0228 +signed int SndChanIsBusy(class zNPCCommon * this /* r2 */, signed int flg_chan /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0200 -> 0x2D0228 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0230 -> 0x002D0284 +*/ +// Range: 0x2D0230 -> 0x2D0284 +signed int SndIsAnyPlaying(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0230 -> 0x2D0284 + signed int yep; // r2 + signed int owner; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0290 -> 0x002D0590 +*/ +// Range: 0x2D0290 -> 0x2D0590 +unsigned int SndStart(class zNPCCommon * this /* r21 */, unsigned int aid_toplay /* r20 */, class NPCSndProp * sprop /* r19 */, float radius /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0290 -> 0x2D0590 + float pvary; // r21 + unsigned int priority; // r18 + unsigned int owner; // r2 + unsigned int xsid; // r17 + float vol; // r20 + signed int flg_snd; // r16 + unsigned int xsndflags; // r2 + float pitchChoices[7]; // @ 0x004FE0E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0590 -> 0x002D0628 +*/ +// Range: 0x2D0590 -> 0x2D0628 +signed int SndPlayRandom(class zNPCCommon * this /* r19 */, enum en_NPC_SOUND sndtype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0590 -> 0x2D0628 + unsigned int xsid; // r18 + class NPCConfig * cfg; // r17 + class NPCSndProp * sprop; // r16 + unsigned int aidToPlay; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0630 -> 0x002D06D0 +*/ +// Range: 0x2D0630 -> 0x2D06D0 +signed int SndPlayFromSFX(class zNPCCommon * this /* r18 */, class xSFX * sfx /* r17 */, unsigned int * sid_played /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0630 -> 0x2D06D0 + unsigned int aidToPlay; // r2 + unsigned int xsid; // r2 + class NPCSndProp * sprop; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D06D0 -> 0x002D07B4 +*/ +// Range: 0x2D06D0 -> 0x2D07B4 +signed int SndPlayFromAFX(class zNPCCommon * this /* r18 */, class zAnimFxSound * afxsnd /* r17 */, unsigned int * sid_played /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D06D0 -> 0x2D07B4 + enum en_NPC_SOUND sndtype; // r20 + float radius; // r20 + unsigned int aidToPlay; // r2 + unsigned int xsid; // r2 + class NPCSndProp * sprop; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D07C0 -> 0x002D08B8 +*/ +// Range: 0x2D07C0 -> 0x2D08B8 +signed int SomethingWonderful(class zNPCCommon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D07C0 -> 0x2D08B8 + signed int flg_wonder; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D08C0 -> 0x002D08F0 +*/ +// Range: 0x2D08C0 -> 0x2D08F0 +void WonderOfTalking(class zNPCCommon * this /* r2 */, signed int inprogress /* r2 */, class xBase * owner /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D08C0 -> 0x2D08F0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D08F0 -> 0x002D08F8 +*/ +// Range: 0x2D08F0 -> 0x2D08F8 +signed int NPCC_NPCIsConversing() { + // Blocks + /* anonymous block */ { + // Range: 0x2D08F0 -> 0x2D08F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0900 -> 0x002D0938 +*/ +// Range: 0x2D0900 -> 0x2D0938 +class xVec3 * MatPosSet(class zNPCCommon * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0900 -> 0x2D0938 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0940 -> 0x002D0A74 +*/ +// Range: 0x2D0940 -> 0x2D0A74 +void Vibrate(enum en_npcvibe vibe /* r2 */, float duration /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0940 -> 0x2D0A74 + enum _tagRumbleType typ_rum; // r16 + float tym_rum; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0A80 -> 0x002D0B54 +*/ +// Range: 0x2D0A80 -> 0x2D0B54 +void Vibrate(class zNPCCommon * this /* r2 */, float ds2_cur /* r29+0x10 */, float ds2_max /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0A80 -> 0x2D0B54 + float rat; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0B60 -> 0x002D0C34 +*/ +// Range: 0x2D0B60 -> 0x2D0C34 +void zNPCSettings_MakeDummy() { + // Blocks + /* anonymous block */ { + // Range: 0x2D0B60 -> 0x2D0C34 + class zNPCSettings dum; // @ 0x005CC260 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0C40 -> 0x002D0C54 +*/ +// Range: 0x2D0C40 -> 0x2D0C54 +float AnimTimeCurrent(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0C40 -> 0x2D0C54 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0C60 -> 0x002D0CC8 +*/ +// Range: 0x2D0C60 -> 0x2D0CC8 +float AnimTimeRemain(class zNPCCommon * this /* r2 */, class xAnimState * ast /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0C60 -> 0x2D0CC8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0CD0 -> 0x002D0D40 +*/ +// Range: 0x2D0CD0 -> 0x2D0D40 +float AnimDuration(class zNPCCommon * this /* r2 */, class xAnimState * ast /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0CD0 -> 0x2D0D40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0D40 -> 0x002D0DA0 +*/ +// Range: 0x2D0D40 -> 0x2D0DA0 +unsigned int AnimCurStateID(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0D40 -> 0x2D0DA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0DA0 -> 0x002D0DE8 +*/ +// Range: 0x2D0DA0 -> 0x2D0DE8 +class xAnimState * AnimCurState(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0DA0 -> 0x2D0DE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0DF0 -> 0x002D0E38 +*/ +// Range: 0x2D0DF0 -> 0x2D0E38 +class xAnimSingle * AnimCurSingle(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0DF0 -> 0x2D0E38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0E40 -> 0x002D0E50 +*/ +// Range: 0x2D0E40 -> 0x2D0E50 +class xAnimState * AnimFindState(class zNPCCommon * this /* r2 */, unsigned int animID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0E40 -> 0x2D0E50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0E50 -> 0x002D0EA4 +*/ +// Range: 0x2D0E50 -> 0x2D0EA4 +void AnimSetState(class zNPCCommon * this /* r16 */, unsigned int animID /* r2 */, float time /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0E50 -> 0x2D0EA4 + class xAnimState * state; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0EB0 -> 0x002D0FB8 +*/ +// Range: 0x2D0EB0 -> 0x2D0FB8 +signed int AnimStart(class zNPCCommon * this /* r8 */, unsigned int animID /* r2 */, signed int forceRestart /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0EB0 -> 0x2D0FB8 + class xAnimTransition * da_tran; // r16 + signed int dumptable; // @ 0x0050FE94 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0FC0 -> 0x002D0FF0 +*/ +// Range: 0x2D0FC0 -> 0x2D0FF0 +void ModelScaleSet(class zNPCCommon * this /* r2 */, float x /* r29 */, float y /* r29 */, float z /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0FC0 -> 0x2D0FF0 + class xModelInstance * minst; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D0FF0 -> 0x002D1040 +*/ +// Range: 0x2D0FF0 -> 0x2D1040 +class xModelInstance * ModelAtomicFind(class zNPCCommon * this /* r2 */, signed int index /* r2 */, signed int idx_prev /* r2 */, class xModelInstance * mdl_prev /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D0FF0 -> 0x2D1040 + class xModelInstance * da_atomic; // r2 + class xModelInstance * minst; // r2 + signed int midx; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D1040 -> 0x002D10A4 +*/ +// Range: 0x2D1040 -> 0x2D10A4 +class xModelInstance * ModelAtomicShow(class zNPCCommon * this /* r2 */, signed int index /* r2 */, class xModelInstance * mdl /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D1040 -> 0x2D10A4 + class xModelInstance * minst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D10B0 -> 0x002D1104 +*/ +// Range: 0x2D10B0 -> 0x2D1104 +class xModelInstance * ModelAtomicHide(class zNPCCommon * this /* r2 */, signed int index /* r2 */, class xModelInstance * mdl /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D10B0 -> 0x2D1104 + class xModelInstance * minst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D1110 -> 0x002D1354 +*/ +// Range: 0x2D1110 -> 0x2D1354 +signed int HaveLOSToPos(class zNPCCommon * this /* r21 */, class xVec3 * pos /* r20 */, float dist /* r20 */, class xScene * xscn /* r19 */, class xBase * tgt /* r18 */, class xCollis * colCallers /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D1110 -> 0x2D1354 + signed int result; // r2 + class xRay3 ray; // r29+0x90 + class xVec3 mypos; // r29+0xC0 + class xCollis * colrec; // r17 + class xCollis localCollis; // @ 0x004DEE50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D1360 -> 0x002D14F8 +*/ +// Range: 0x2D1360 -> 0x2D14F8 +signed int MvptCycle(class zNPCCommon * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D1360 -> 0x2D14F8 + class zMovePoint * nav_tmp; // r29+0x2C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D1500 -> 0x002D156C +*/ +// Range: 0x2D1500 -> 0x2D156C +void MvptReset(class zNPCCommon * this /* r16 */, class zMovePoint * nav_goto /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D1500 -> 0x2D156C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D1570 -> 0x002D15A0 +*/ +// Range: 0x2D1570 -> 0x2D15A0 +class zMovePoint * FirstAssigned(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D1570 -> 0x2D15A0 + class zMovePoint * nav_first; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D15A0 -> 0x002D17F0 +*/ +// Range: 0x2D15A0 -> 0x2D17F0 +signed int GetParmDefault(enum en_npcparm pid /* r2 */, void * val /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D15A0 -> 0x2D17F0 + signed int result; // r2 + signed int * ivp; // r2 + float * fvp; // r2 + float * fvlist; // r2 + class xVec3 * vec; // r2 + class zMovePoint * * mvpt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D17F0 -> 0x002D19CC +*/ +// Range: 0x2D17F0 -> 0x2D19CC +void GetParm(class zNPCCommon * this /* r19 */, enum en_npcparm pid /* r18 */, void * val /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D17F0 -> 0x2D19CC + char * * names; // r16 + class xModelAssetParam * pmdata; // r21 + unsigned int pmsize; // r20 + class xVec3 vec_tmp; // r29+0x70 + float fv; // r29+0x80 + signed int iv; // r2 + class zMovePoint * mvpt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D19D0 -> 0x002D19E0 +*/ +// Range: 0x2D19D0 -> 0x2D19E0 +void GetParm(class zNPCCommon * this /* r2 */, enum en_npcparm pid /* r2 */, class zMovePoint * * val /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D19D0 -> 0x2D19E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D19E0 -> 0x002D1DE4 +*/ +// Range: 0x2D19E0 -> 0x2D1DE4 +void ISeePlayer(class zNPCCommon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D19E0 -> 0x2D1DE4 + enum en_xEventTags ven; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D1DF0 -> 0x002D2050 +*/ +// Range: 0x2D1DF0 -> 0x2D2050 +void GiveReward(class zNPCCommon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D1DF0 -> 0x2D2050 + signed int i; // r8 + unsigned int s; // r2 + class NPCConfig * cfg; // r16 + unsigned int shinies[5]; // r29+0x40 + signed int esteem; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D2050 -> 0x002D2178 +*/ +// Range: 0x2D2050 -> 0x2D2178 +signed int IsAttackFrame(class zNPCCommon * this /* r2 */, float tym_anim /* r29 */, signed int series /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D2050 -> 0x2D2178 + signed int result; // r2 + class NPCConfig * cfg; // r6 + float tym; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D2180 -> 0x002D21DC +*/ +// Range: 0x2D2180 -> 0x2D21DC +signed int GetVertPos(class zNPCCommon * this /* r2 */, enum en_mdlvert vid /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D2180 -> 0x2D21DC + class NPCConfig * cfg; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D21E0 -> 0x002D23DC +*/ +// Range: 0x2D21E0 -> 0x2D23DC +void TagVerts(class zNPCCommon * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D21E0 -> 0x2D23DC + class NPCConfig * cfg; // r20 + signed int i; // r19 + class xVec3 tmp_pos; // r29+0xB0 + float vertinfo[4]; // r29+0xA0 + class xModelInstance * mdl; // r3 + signed int idx_atmoic; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D23E0 -> 0x002D241C +*/ +// Range: 0x2D23E0 -> 0x2D241C +void SelfDestroy(class zNPCCommon * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D23E0 -> 0x2D241C + class xBehaveMgr * bmgr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D2420 -> 0x002D2718 +*/ +// Range: 0x2D2420 -> 0x2D2718 +void CollideReview(class zNPCCommon * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D2420 -> 0x2D2718 + class xEntCollis * npccol; // r19 + class xCollis * colrec; // r17 + signed int i; // r6 + signed int hitthings; // r18 + class xEnt * flent; // r16 + class xBase * base; // r2 + signed int cf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D2720 -> 0x002D27AC +*/ +// Range: 0x2D2720 -> 0x2D27AC +void ParseProps(class zNPCCommon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D2720 -> 0x2D27AC + signed int i; // r16 + enum en_npcparm pid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D27B0 -> 0x002D2E58 +*/ +// Range: 0x2D27B0 -> 0x2D2E58 +void ParseINI(class zNPCCommon * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D27B0 -> 0x2D2E58 + class NPCConfig * cfg; // r17 + signed int i; // r16 + enum en_npcparm pid; // r2 + float fv; // r29+0x4C + float fv; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D2E60 -> 0x002D2F18 +*/ +// Range: 0x2D2E60 -> 0x2D2F18 +void ParseLinks(class zNPCCommon * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D2E60 -> 0x2D2F18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D2F20 -> 0x002D3074 +*/ +// Range: 0x2D2F20 -> 0x2D3074 +float TurnToFace(class zNPCCommon * this /* r16 */, float dt /* r29+0x30 */, class xVec3 * dir_want /* r2 */, float useTurnRate /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D2F20 -> 0x2D3074 + float ang_caller; // r23 + float ang_wouldbe; // r3 + float rot_lim; // r22 + float ang_true; // r21 + float ang_past; // r20 + float ang_diff; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D3080 -> 0x002D31F4 +*/ +// Range: 0x2D3080 -> 0x2D31F4 +float ThrottleApply(class zNPCCommon * this /* r2 */, float dt /* r29+0x40 */, class xVec3 * dir /* r2 */, signed int force3D /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D3080 -> 0x2D31F4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D3200 -> 0x002D3288 +*/ +// Range: 0x2D3200 -> 0x2D3288 +float ThrottleAccel(class zNPCCommon * this /* r2 */, float dt /* r29 */, signed int speedup /* r2 */, float pct_max /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D3200 -> 0x2D3288 + class NPCConfig * cfg; // r2 + float acc; // r1 + float spd_top; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D3290 -> 0x002D3398 +*/ +// Range: 0x2D3290 -> 0x2D3398 +float ThrottleAdjust(class zNPCCommon * this /* r2 */, float dt /* r29 */, float spd_want /* r29 */, float accel /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D3290 -> 0x2D3398 + class NPCConfig * cfg; // r3 + float acc; // r2 + signed int speedup; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D33A0 -> 0x002D3460 +*/ +// Range: 0x2D33A0 -> 0x2D3460 +void VelStop(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D33A0 -> 0x2D3460 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D3460 -> 0x002D36A0 +*/ +// Range: 0x2D3460 -> 0x2D36A0 +void ConvertHitEvent(class zNPCCommon * this /* r17 */, class xBase * from /* r16 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D3460 -> 0x2D36A0 + class xVec3 pos_cruiser; // r29+0x30 + class xVec3 * vec_hit; // r2 + float mag; // r2 + enum en_NPC_DAMAGE_TYPE what; // r2 + unsigned int mvinf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D36A0 -> 0x002D4290 +*/ +// Range: 0x2D36A0 -> 0x2D4290 +signed int SysEvent(class zNPCCommon * this /* r21 */, class xBase * from /* r20 */, class xBase * to /* r19 */, unsigned int toEvent /* r18 */, float * toParam /* r17 */, class xBase * toParamWidget /* r16 */, signed int * handled /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D36A0 -> 0x2D4290 + signed int doOtherEvents; // r23 + class zNPCCommon * npc; // r2 + class xVec3 pos; // r29+0xB0 + class xVec3 dir; // r29+0xA0 + class xPsyche * psy; // r2 + class NPCSysEvent * se; // r4 + class FloatAndVoid dist; // r29+0xBC + class zShrapnelAsset * shrap; // r2 + class xVec3 currVel; // r29+0x90 + class NPCSysEvent * se; // r4 + class NPCSysEvent * se; // r4 + class NPCSysEvent * se; // r4 + class NPCSysEvent * se; // r4 + class NPCSysEvent * se; // r4 + class NPCMsg npcmsg; // @ 0x005CC210 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4290 -> 0x002D4318 +*/ +// Range: 0x2D4290 -> 0x2D4318 +void NewTime(class zNPCCommon * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4290 -> 0x2D4318 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4320 -> 0x002D43F8 +*/ +// Range: 0x2D4320 -> 0x2D43F8 +float BoundAsRadius(class zNPCCommon * this /* r2 */, signed int useCfg /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4320 -> 0x2D43F8 + float rad; // r29+0x10 + class NPCConfig * cfg; // r4 + class xVec3 dim; // r29 + class xBBox * box; // r2 + class xVec3 * le; // r2 + class xVec3 * ue; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4400 -> 0x002D46A8 +*/ +// Range: 0x2D4400 -> 0x2D46A8 +void BUpdate(class zNPCCommon * this /* r16 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4400 -> 0x2D46A8 + class NPCConfig * cfg; // r12 + class xBBox * box; // r2 + class xVec3 half; // r29+0xB0 + class xSphere * sph; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D46B0 -> 0x002D4704 +*/ +// Range: 0x2D46B0 -> 0x2D4704 +void Process(class zNPCCommon * this /* r2 */, class xScene * xscn /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D46B0 -> 0x2D4704 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4710 -> 0x002D47D0 +*/ +// Range: 0x2D4710 -> 0x2D47D0 +void Move(class zNPCCommon * this /* r16 */, class xScene * xscn /* r2 */, float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4710 -> 0x2D47D0 + signed int backit; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D47D0 -> 0x002D4ABC +*/ +// Range: 0x2D47D0 -> 0x2D4ABC +signed int NPCMessage(class zNPCCommon * this /* r18 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D47D0 -> 0x2D4ABC + signed int handled; // r17 + class xPsyche * psy; // r16 + class zMovePoint * mvpt; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4AC0 -> 0x002D4BDC +*/ +// Range: 0x2D4AC0 -> 0x2D4BDC +signed int Respawn(class zNPCCommon * this /* r19 */, class xVec3 * pos /* r18 */, class zMovePoint * mvptFirst /* r17 */, class zMovePoint * mvptSpawnRef /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4AC0 -> 0x2D4BDC + class NPCMsg msg; // @ 0x005CC1C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4BE0 -> 0x002D4F08 +*/ +// Range: 0x2D4BE0 -> 0x2D4F08 +void Damage(class zNPCCommon * this /* r20 */, enum en_NPC_DAMAGE_TYPE damtype /* r19 */, class xBase * who /* r18 */, class xVec3 * vec_hit /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4BE0 -> 0x2D4F08 + class NPCDamageInfo * dmg; // r16 + class NPCMsg msg; // @ 0x005CC170 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4F10 -> 0x002D4F20 +*/ +// Range: 0x2D4F10 -> 0x2D4F20 +void Destroy(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4F10 -> 0x2D4F20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D4F20 -> 0x002D5104 +*/ +// Range: 0x2D4F20 -> 0x2D5104 +void Reset(class zNPCCommon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D4F20 -> 0x2D5104 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5150 -> 0x002D5590 +*/ +// Range: 0x2D5150 -> 0x2D5590 +void Setup(class zNPCCommon * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5150 -> 0x2D5590 + signed int wason; // r17 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5590 -> 0x002D5A34 +*/ +// Range: 0x2D5590 -> 0x2D5A34 +void InitBounds(class zNPCCommon * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5590 -> 0x2D5A34 + class NPCConfig * cfg; // r18 + class xVec3 half; // r29+0x50 + class xSphere * sph; // r17 + class xBBox * box; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5A40 -> 0x002D5BD8 +*/ +// Range: 0x2D5A40 -> 0x2D5BD8 +void Init(class zNPCCommon * this /* r16 */, class xEntAsset * entass /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5A40 -> 0x2D5BD8 + class xLinkAsset * npclinx; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5BE0 -> 0x002D5C50 +*/ +// Range: 0x2D5BE0 -> 0x2D5C50 +void zNPCCommon_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5BE0 -> 0x2D5C50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5C50 -> 0x002D5C58 +*/ +// Range: 0x2D5C50 -> 0x2D5C58 +void zNPCCommon_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5C50 -> 0x2D5C58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5C60 -> 0x002D5C8C +*/ +// Range: 0x2D5C60 -> 0x2D5C8C +void zNPCCommon_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5C60 -> 0x2D5C8C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5C90 -> 0x002D5C98 +*/ +// Range: 0x2D5C90 -> 0x2D5C98 +void zNPCCommon_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5C90 -> 0x2D5C98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5CA0 -> 0x002D5CE0 +*/ +// Range: 0x2D5CA0 -> 0x2D5CE0 +void zNPCCommon_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5CA0 -> 0x2D5CE0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5CE0 -> 0x002D5D0C +*/ +// Range: 0x2D5CE0 -> 0x2D5D0C +void ZNPC_Common_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5CE0 -> 0x2D5D0C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5D10 -> 0x002D5D90 +*/ +// Range: 0x2D5D10 -> 0x2D5D90 +void ZNPC_Common_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5D10 -> 0x2D5D90 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5D90 -> 0x002D5DB4 +*/ +// Range: 0x2D5D90 -> 0x2D5DB4 +void ZNPC_Destroy_Common(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5D90 -> 0x2D5DB4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5DC0 -> 0x002D5E50 +*/ +// Range: 0x2D5DC0 -> 0x2D5E50 +class xFactoryInst * ZNPC_Create_Common(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5DC0 -> 0x2D5E50 + class zNPCCommon * com; // r2 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeCommon.h b/dwarf/SB/Game/zNPCTypeCommon.h new file mode 100644 index 000000000..c9ba9d636 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeCommon.h @@ -0,0 +1,252 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00146E70 -> 0x00146E78 +*/ +// Range: 0x146E70 -> 0x146E78 +signed int IsHealthy() { + // Blocks + /* anonymous block */ { + // Range: 0x146E70 -> 0x146E78 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001567E0 -> 0x001567F0 +*/ +// Range: 0x1567E0 -> 0x1567F0 +signed int CanRope(class zNPCCommon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1567E0 -> 0x1567F0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156870 -> 0x00156878 +*/ +// Range: 0x156870 -> 0x156878 +signed int SetCarryState() { + // Blocks + /* anonymous block */ { + // Range: 0x156870 -> 0x156878 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002B1380 -> 0x002B1388 +*/ +// Range: 0x2B1380 -> 0x2B1388 +void DuploNotice() { + // Blocks + /* anonymous block */ { + // Range: 0x2B1380 -> 0x2B1388 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002C98B0 -> 0x002C98B8 +*/ +// Range: 0x2C98B0 -> 0x2C98B8 +unsigned int AnimPick() { + // Blocks + /* anonymous block */ { + // Range: 0x2C98B0 -> 0x2C98B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CB310 -> 0x002CB318 +*/ +// Range: 0x2CB310 -> 0x2CB318 +signed int IsAlive() { + // Blocks + /* anonymous block */ { + // Range: 0x2CB310 -> 0x2CB318 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CB530 -> 0x002CB538 +*/ +// Range: 0x2CB530 -> 0x2CB538 +void Stun() { + // Blocks + /* anonymous block */ { + // Range: 0x2CB530 -> 0x2CB538 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCA20 -> 0x002CCA28 +*/ +// Range: 0x2CCA20 -> 0x2CCA28 +void RenderExtraPostParticles() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCA20 -> 0x2CCA28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CCB40 -> 0x002CCB48 +*/ +// Range: 0x2CCB40 -> 0x2CCB48 +void RenderExtra() { + // Blocks + /* anonymous block */ { + // Range: 0x2CCB40 -> 0x2CCB48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD3E0 -> 0x002CD3E8 +*/ +// Range: 0x2CD3E0 -> 0x2CD3E8 +void DuploOwner(class zNPCCommon * this /* r2 */, class zNPCCommon * duper /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2CD3E0 -> 0x2CD3E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD3F0 -> 0x002CD3F8 +*/ +// Range: 0x2CD3F0 -> 0x2CD3F8 +void SpeakBegin() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD3F0 -> 0x2CD3F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD400 -> 0x002CD408 +*/ +// Range: 0x2CD400 -> 0x2CD408 +void SpeakEnd() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD400 -> 0x2CD408 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD410 -> 0x002CD418 +*/ +// Range: 0x2CD410 -> 0x2CD418 +void SpeakStart() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD410 -> 0x2CD418 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD420 -> 0x002CD428 +*/ +// Range: 0x2CD420 -> 0x2CD428 +void SpeakStop() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD420 -> 0x2CD428 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD430 -> 0x002CD444 +*/ +// Range: 0x2CD430 -> 0x2CD444 +float GenShadCacheRad() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD430 -> 0x2CD444 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD450 -> 0x002CD458 +*/ +// Range: 0x2CD450 -> 0x2CD458 +class xEntDrive * PRIV_GetDriverData() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD450 -> 0x2CD458 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CD460 -> 0x002CD468 +*/ +// Range: 0x2CD460 -> 0x2CD468 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2CD460 -> 0x2CD468 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeCommon.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002CF550 -> 0x002CF558 +*/ +// Range: 0x2CF550 -> 0x2CF558 +void SelfSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x2CF550 -> 0x2CF558 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeDuplotron.cpp b/dwarf/SB/Game/zNPCTypeDuplotron.cpp new file mode 100644 index 000000000..5c571bc74 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeDuplotron.cpp @@ -0,0 +1,3814 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_dupoanim[5]; // size: 0x14, address: 0x5CF440 +char * g_strz_dupoanim[5]; // size: 0x14, address: 0x4DFB60 +static class zParEmitter * g_pemit_smoky; // size: 0x4, address: 0x510008 +static class zParEmitter * g_pemit_steam; // size: 0x4, address: 0x51000C +static class zParEmitter * g_pemit_overheat; // size: 0x4, address: 0x510010 +static class xParEmitterCustomSettings g_parf_smoky; // size: 0x16C, address: 0x5CF460 +static class xParEmitterCustomSettings g_parf_steam; // size: 0x16C, address: 0x5CF5D0 +static class xParEmitterCustomSettings g_parf_overheat; // size: 0x16C, address: 0x5CF740 +class RwRaster * rast_blinky; // size: 0x4, address: 0x510014 +struct /* @anon1 */ { + // total size: 0xCC +} __vt__13zNPCDuplotron; // size: 0xCC, address: 0x50BFD0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class NPCSndTrax g_sndTrax_Duplotron[]; // size: 0x0, address: 0x4E0090 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon0 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon2 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class zNPCDuplotron : public zNPCCommon { + // total size: 0x2B0 +public: + float tmr_smokeCycle; // offset 0x2A0, size 0x4 + class zNPCSpawner * spawner; // offset 0x2A4, size 0x4 + float tmr_blink; // offset 0x2A8, size 0x4 + signed int idx_blink; // offset 0x2AC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xParGroup { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class SMNPCStatus { + // total size: 0xC +public: + class zNPCCommon * npc; // offset 0x0, size 0x4 + enum en_SM_NPC_STATUS status; // offset 0x4, size 0x4 + class zMovePoint * sp_prefer; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class SMSPStatus { + // total size: 0xC +public: + class zMovePoint * sp; // offset 0x0, size 0x4 + signed int flg_stat; // offset 0x4, size 0x4 + class zNPCCommon * npc_prefer; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum en_NPC_GOAL_SPOT { + NPC_GSPOT_START = 32, + NPC_GSPOT_RESUME = 33, + NPC_GSPOT_FINISH = 34, + NPC_GSPOT_STARTALT = 35, + NPC_GSPOT_ALTA = 36, + NPC_GSPOT_ALTB = 37, + NPC_GSPOT_PATROLPAUSE = 38, + NPC_GSPOT_NOMORE = 39, + NPC_GSPOT_FORCEINT = 2147483647, +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zNPCSpawner : public RyzMemData { + // total size: 0x1C4 +public: + signed int flg_spawner; // offset 0x0, size 0x4 + class zNPCCommon * npc_owner; // offset 0x4, size 0x4 + float tym_delay; // offset 0x8, size 0x4 + signed int max_spawn; // offset 0xC, size 0x4 + enum en_SM_WAVE_MODE wavemode; // offset 0x10, size 0x4 + enum en_SM_WAVE_STAT wavestat; // offset 0x14, size 0x4 + float tmr_wave; // offset 0x18, size 0x4 + signed int cnt_spawn; // offset 0x1C, size 0x4 + class SMSPStatus sppool[16]; // offset 0x20, size 0xC0 + class SMNPCStatus npcpool[16]; // offset 0xE0, size 0xC0 + class st_XORDEREDARRAY pendlist; // offset 0x1A0, size 0x10 + class st_XORDEREDARRAY actvlist; // offset 0x1B0, size 0x10 + signed int cnt_cleanup; // offset 0x1C0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +enum en_SM_NOTICES { + SM_NOTE_NPCDIED = 0, + SM_NOTE_NPCSTANDBY = 1, + SM_NOTE_NPCALIVE = 2, + SM_NOTE_DUPPAUSE = 3, + SM_NOTE_DUPRESUME = 4, + SM_NOTE_DUPSETDELAY = 5, + SM_NOTE_DUPDEAD = 6, + SM_NOTE_KILLKIDS = 7, + SM_NOTE_NOMORE = 8, + SM_NOTE_FORCE = 2147483647, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xCurveAsset { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +struct /* @anon0 */ { + // total size: 0xCC +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum en_SM_WAVE_MODE { + SM_WAVE_CONTINUOUS = 0, + SM_WAVE_DISCREET = 1, + SM_WAVE_NOMORE = 2, + SM_WAVE_FORCE = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0xCC +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +struct /* @anon2 */ { + // total size: 0x54 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum en_SM_WAVE_STAT { + SM_STAT_BEGIN = 0, + SM_STAT_INPROG = 1, + SM_STAT_ABORT = 2, + SM_STAT_MARKTIME = 3, + SM_STAT_DONE = 4, + SM_STAT_NOMORE = 5, + SM_STAT_FORCE = 2147483647, +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class anim_coll_data { + // total size: 0x0 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum en_SM_NPC_STATUS { + SM_NPC_DEAD = 0, + SM_NPC_READY = 1, + SM_NPC_PENDING = 2, + SM_NPC_SPAWNED = 3, + SM_NPC_ACTIVE = 4, + SM_NPC_NOMORE = 5, + SM_NPC_FORCE = 2147483647, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E360 -> 0x0030E57C +*/ +// Range: 0x30E360 -> 0x30E57C +void VFXCycleLights(class zNPCDuplotron * this /* r19 */, float dt /* r29+0x50 */, signed int fastpace /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30E360 -> 0x30E57C + signed int amPaused; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E580 -> 0x0030E834 +*/ +// Range: 0x30E580 -> 0x30E834 +void VFXOverheat(class zNPCDuplotron * this /* r22 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30E580 -> 0x30E834 + signed int rc; // r2 + class xVec3 pos_emit; // r29+0xA0 + class xVec3 dir_emit; // r29+0x90 + signed int idx_steam[2]; // @ 0x0050F078 + signed int idx_smoke[4]; // @ 0x004DFBA0 + signed int skip; // @ 0x0050F080 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E840 -> 0x0030EBA4 +*/ +// Range: 0x30E840 -> 0x30EBA4 +void VFXSmokeStack(class zNPCDuplotron * this /* r18 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30E840 -> 0x30EBA4 + float ds2_cam; // r29+0x60 + signed int npar; // r17 + class xVec3 pos_emit; // r29+0x50 + signed int i; // r16 + class xVec3 vec_emitOffset; // @ 0x005000A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030EBB0 -> 0x0030ECBC +*/ +// Range: 0x30EBB0 -> 0x30ECBC +void DUPO_InitEffects() { + // Blocks + /* anonymous block */ { + // Range: 0x30EBB0 -> 0x30ECBC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030ECC0 -> 0x0030EE0C +*/ +// Range: 0x30ECC0 -> 0x30EE0C +signed int DupoHandleMail(class zNPCDuplotron * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30ECC0 -> 0x30EE0C + signed int handled; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030EE10 -> 0x0030EEEC +*/ +// Range: 0x30EE10 -> 0x30EEEC +signed int NPCMessage(class zNPCDuplotron * this /* r19 */, class NPCMsg * mail /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30EE10 -> 0x30EEEC + class zNPCGoalCommon * curgoal; // r17 + class zNPCGoalCommon * recgoal; // r2 + class xPsyche * psy; // r16 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030EEF0 -> 0x0030EF1C +*/ +// Range: 0x30EEF0 -> 0x30EF1C +signed int IsAlive(class zNPCDuplotron * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30EEF0 -> 0x30EF1C + signed int gid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030EF20 -> 0x0030EF4C +*/ +// Range: 0x30EF20 -> 0x30EF4C +void DuploNotice(class zNPCDuplotron * this /* r2 */, enum en_SM_NOTICES note /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30EF20 -> 0x30EF4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030EF50 -> 0x0030F068 +*/ +// Range: 0x30EF50 -> 0x30F068 +unsigned int AnimPick(signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30EF50 -> 0x30F068 + signed int idx; // r3 + unsigned int da_anim; // r2 + class xVec3 vec; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F070 -> 0x0030F104 +*/ +// Range: 0x30F070 -> 0x30F104 +void SelfSetup(class zNPCDuplotron * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F070 -> 0x30F104 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F110 -> 0x0030F180 +*/ +// Range: 0x30F110 -> 0x30F180 +void Process(class zNPCDuplotron * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F110 -> 0x30F180 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F180 -> 0x0030F2BC +*/ +// Range: 0x30F180 -> 0x30F2BC +void ParseChild(class zNPCDuplotron * this /* r19 */, class xBase * child /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F180 -> 0x30F2BC + signed int i; // r18 + signed int cnt; // r17 + class xGroup * grp; // r16 + class xBase * grpitem; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F2C0 -> 0x0030F2C8 +*/ +// Range: 0x30F2C0 -> 0x30F2C8 +void BUpdate(class zNPCDuplotron * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F2C0 -> 0x30F2C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F2D0 -> 0x0030F394 +*/ +// Range: 0x30F2D0 -> 0x30F394 +void ParseLinks(class zNPCDuplotron * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F2D0 -> 0x30F394 + signed int i; // r17 + class xLinkAsset * link; // r19 + class xBase * mychild; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F3A0 -> 0x0030F3F8 +*/ +// Range: 0x30F3A0 -> 0x30F3F8 +void Reset(class zNPCDuplotron * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F3A0 -> 0x30F3F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F400 -> 0x0030F408 +*/ +// Range: 0x30F400 -> 0x30F408 +void ParseINI(class zNPCDuplotron * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F400 -> 0x30F408 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F410 -> 0x0030F4D8 +*/ +// Range: 0x30F410 -> 0x30F4D8 +void Setup(class zNPCDuplotron * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F410 -> 0x30F4D8 + enum en_SM_WAVE_MODE wm; // r2 + class RwTexture * tmp_txtr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F4E0 -> 0x0030F544 +*/ +// Range: 0x30F4E0 -> 0x30F544 +void Init(class zNPCDuplotron * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F4E0 -> 0x30F544 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F550 -> 0x0030F6E8 +*/ +// Range: 0x30F550 -> 0x30F6E8 +class xAnimTable * ZNPC_AnimTable_Duplotron() { + // Blocks + /* anonymous block */ { + // Range: 0x30F550 -> 0x30F6E8 + class xAnimTable * table; // r16 + signed int ourAnims[5]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F6F0 -> 0x0030F714 +*/ +// Range: 0x30F6F0 -> 0x30F714 +void ZNPC_Destroy_Duplotron(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F6F0 -> 0x30F714 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F720 -> 0x0030F800 +*/ +// Range: 0x30F720 -> 0x30F800 +class xFactoryInst * ZNPC_Create_Duplotron(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x30F720 -> 0x30F800 + class zNPCDuplotron * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F800 -> 0x0030F808 +*/ +// Range: 0x30F800 -> 0x30F808 +void zNPCDuplotron_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x30F800 -> 0x30F808 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F810 -> 0x0030F818 +*/ +// Range: 0x30F810 -> 0x30F818 +void zNPCDuplotron_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x30F810 -> 0x30F818 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F820 -> 0x0030F828 +*/ +// Range: 0x30F820 -> 0x30F828 +void zNPCDuplotron_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x30F820 -> 0x30F828 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F830 -> 0x0030F838 +*/ +// Range: 0x30F830 -> 0x30F838 +void ZNPC_Duplotron_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x30F830 -> 0x30F838 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030F840 -> 0x0030F8A0 +*/ +// Range: 0x30F840 -> 0x30F8A0 +void ZNPC_Duplotron_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x30F840 -> 0x30F8A0 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeDuplotron.h b/dwarf/SB/Game/zNPCTypeDuplotron.h new file mode 100644 index 000000000..991b821de --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeDuplotron.h @@ -0,0 +1,84 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E300 -> 0x0030E308 +*/ +// Range: 0x30E300 -> 0x30E308 +void Move() { + // Blocks + /* anonymous block */ { + // Range: 0x30E300 -> 0x30E308 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E310 -> 0x0030E318 +*/ +// Range: 0x30E310 -> 0x30E318 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x30E310 -> 0x30E318 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E320 -> 0x0030E328 +*/ +// Range: 0x30E320 -> 0x30E328 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x30E320 -> 0x30E328 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E330 -> 0x0030E338 +*/ +// Range: 0x30E330 -> 0x30E338 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x30E330 -> 0x30E338 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E340 -> 0x0030E348 +*/ +// Range: 0x30E340 -> 0x30E348 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x30E340 -> 0x30E348 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDuplotron.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030E350 -> 0x0030E358 +*/ +// Range: 0x30E350 -> 0x30E358 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x30E350 -> 0x30E358 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeDutchman.cpp b/dwarf/SB/Game/zNPCTypeDutchman.cpp new file mode 100644 index 000000000..5e7bceac5 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeDutchman.cpp @@ -0,0 +1,5634 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class tweak_group tweak; // size: 0x388, address: 0x5E55E0 +static class xBinaryCamera boss_cam; // size: 0x70, address: 0x4E4200 +static class delay_goal sequence[3][16]; // size: 0x180, address: 0x505C40 +static class zParEmitter * plasma_emitter; // size: 0x4, address: 0x51022C +static class xParEmitterCustomSettings plasma_emitter_settings; // size: 0x16C, address: 0x5E5970 +static class zParEmitter * spark_emitter; // size: 0x4, address: 0x510230 +static class xParEmitterCustomSettings spark_emitter_settings; // size: 0x16C, address: 0x5E5AE0 +static class zParEmitter * light_emitter; // size: 0x4, address: 0x510234 +static class xParEmitterCustomSettings light_emitter_settings; // size: 0x16C, address: 0x5E5C50 +static class zParEmitter * eyeglow_emitter[2]; // size: 0x8, address: 0x510238 +static class zParEmitter * death_emitter; // size: 0x4, address: 0x510240 +static class zParEmitter * dissolve_emitter; // size: 0x4, address: 0x510244 +static class zParEmitter * fadeout_emitter; // size: 0x4, address: 0x510248 +static class zParEmitter * fadein_emitter; // size: 0x4, address: 0x51024C +static class zParEmitter * flame_emitter[3]; // size: 0xC, address: 0x5E5DC0 +static class xParEmitterCustomSettings flame_emitter_settings; // size: 0x16C, address: 0x5E5DD0 +static class zParEmitter * snot_emitter; // size: 0x4, address: 0x510250 +static class xParEmitterCustomSettings snot_emitter_settings; // size: 0x16C, address: 0x5E5F40 +static class zParEmitter * slime_emitter; // size: 0x4, address: 0x510254 +static class xParEmitterCustomSettings slime_emitter_settings; // size: 0x16C, address: 0x5E60B0 +static class zParEmitter * hand_trail_emitter; // size: 0x4, address: 0x510258 +static class zParEmitter * blob_emitter; // size: 0x4, address: 0x51025C +static class curve_node burn_ribbon_curve[7]; // size: 0x54, address: 0x505DC0 +static class xFXRibbon eye_scorch[2]; // size: 0x280, address: 0x5E6220 +static class sound_asset sound_assets[6]; // size: 0x48, address: 0x505E20 +static class sound_data_type sound_data[6]; // size: 0x30, address: 0x5E64A0 +class xEnt * dutchman_reticle_ent; // size: 0x4, address: 0x510260 +class xVec3 dutchman_reticle_center; // size: 0xC, address: 0x5E64D0 +float dutchman_reticle_radius; // size: 0x4, address: 0x510264 +static signed int dutchman_count; // size: 0x4, address: 0x510268 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__21zNPCGoalDutchmanDeath; // size: 0x34, address: 0x50DF60 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +struct /* @anon14 */ { + // total size: 0x34 +} __vt__14zNPCGoalCommon; // size: 0x34, address: 0x50A340 +struct /* @anon0 */ { + // total size: 0x2C +} __vt__5xGoal; // size: 0x2C, address: 0x50BE00 +unsigned int g_hash_subbanim[23]; // size: 0x5C, address: 0x5DE4D0 +struct /* @anon4 */ { + // total size: 0x34 +} __vt__22zNPCGoalDutchmanDamage; // size: 0x34, address: 0x50DFE0 +struct /* @anon11 */ { + // total size: 0x34 +} __vt__22zNPCGoalDutchmanCaught; // size: 0x34, address: 0x50E020 +struct /* @anon17 */ { + // total size: 0x34 +} __vt__25zNPCGoalDutchmanPostFlame; // size: 0x34, address: 0x50E060 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__21zNPCGoalDutchmanFlame; // size: 0x34, address: 0x50E0A0 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__20zNPCGoalDutchmanBeam; // size: 0x34, address: 0x50E0E0 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__24zNPCGoalDutchmanReappear; // size: 0x34, address: 0x50E120 +struct /* @anon16 */ { + // total size: 0x34 +} __vt__24zNPCGoalDutchmanTeleport; // size: 0x34, address: 0x50E160 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__25zNPCGoalDutchmanDisappear; // size: 0x34, address: 0x50E1A0 +struct /* @anon13 */ { + // total size: 0x34 +} __vt__20zNPCGoalDutchmanIdle; // size: 0x34, address: 0x50E1E0 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__24zNPCGoalDutchmanInitiate; // size: 0x34, address: 0x50E220 +struct /* @anon12 */ { + // total size: 0x34 +} __vt__19zNPCGoalDutchmanNil; // size: 0x34, address: 0x50DFA0 +class xVec3 m_UnitAxisX; // size: 0xC, address: 0x4F9970 +class xVec3 m_UnitAxisY; // size: 0xC, address: 0x4F9980 +class NPCSndTrax g_sndTrax_Dutchman[]; // size: 0x0, address: 0x5CFA08 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +struct /* @anon10 */ { + // total size: 0xCC +} __vt__12zNPCDutchman; // size: 0xCC, address: 0x50E260 +struct /* @anon7 */ { + // total size: 0xCC +} __vt__11zNPCSubBoss; // size: 0xCC, address: 0x50C5F0 +struct /* @anon1 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon15 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +char * g_strz_subbanim[23]; // size: 0x5C, address: 0x4E06C0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +class move_info { + // total size: 0x30 +public: + class xVec3 dest; // offset 0x0, size 0xC + class xVec3 vel; // offset 0xC, size 0xC + class xVec3 accel; // offset 0x18, size 0xC + class xVec3 max_vel; // offset 0x24, size 0xC +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class wave_data * _buffer; // offset 0x10, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class zNPCGoalDutchmanDeath : public zNPCGoalCommon { + // total size: 0x60 +public: + enum substate_enum substate; // offset 0x4C, size 0x4 + float emit_frac; // offset 0x50, size 0x4 + float min_y; // offset 0x54, size 0x4 + float max_y; // offset 0x58, size 0x4 + class zNPCDutchman & owner; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class tweak_group { + // total size: 0x388 +public: + float orbit_radius; // offset 0x0, size 0x4 + class xVec3 accel; // offset 0x4, size 0xC + class xVec3 max_vel; // offset 0x10, size 0xC + float turn_accel; // offset 0x1C, size 0x4 + float turn_max_vel; // offset 0x20, size 0x4 + float ground_y; // offset 0x24, size 0x4 + float ground_radius; // offset 0x28, size 0x4 + float alpha; // offset 0x2C, size 0x4 + float speed_mult[3]; // offset 0x30, size 0xC + float reticle_y; // offset 0x3C, size 0x4 + float reticle_radius; // offset 0x40, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + float alpha; // offset 0x0, size 0x4 + float scale; // offset 0x4, size 0x4 + float yoffset; // offset 0x8, size 0x4 + float vel_u; // offset 0xC, size 0x4 + float vel_v; // offset 0x10, size 0x4 + } halo; // offset 0x44, size 0x14 + class /* @class */ { + // total size: 0xC + public: + float turn_vel; // offset 0x0, size 0x4 + float turn_accel; // offset 0x4, size 0x4 + float up_vel; // offset 0x8, size 0x4 + } initiate; // offset 0x58, size 0xC + class beam_type beam; // offset 0x64, size 0x44 + class /* @class */ { + // total size: 0x28 + public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float turn_accel; // offset 0x18, size 0x4 + float turn_max_vel; // offset 0x1C, size 0x4 + float fade_time; // offset 0x20, size 0x4 + float trail_width; // offset 0x24, size 0x4 + } teleport; // offset 0xA8, size 0x28 + class /* @class */ { + // total size: 0x58 + public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float start_delay; // offset 0x8, size 0x4 + float wave_rate; // offset 0xC, size 0x4 + float unit_dist; // offset 0x10, size 0x4 + float start_dist; // offset 0x14, size 0x4 + float lead_dist; // offset 0x18, size 0x4 + float emit_rate[3]; // offset 0x1C, size 0xC + float emit_width[3]; // offset 0x28, size 0xC + float snot_dist; // offset 0x34, size 0x4 + float snot_vel; // offset 0x38, size 0x4 + float snot_height; // offset 0x3C, size 0x4 + float splash_width; // offset 0x40, size 0x4 + float decay; // offset 0x44, size 0x4 + float blob_pitch; // offset 0x48, size 0x4 + float spray_width; // offset 0x4C, size 0x4 + float warm_up_time; // offset 0x50, size 0x4 + float sneeze_mult; // offset 0x54, size 0x4 + } flame; // offset 0xD0, size 0x58 + class /* @class */ { + // total size: 0x4 + public: + signed int dummy; // offset 0x0, size 0x4 + } fly; // offset 0x128, size 0x4 + class /* @class */ { + // total size: 0x1C + public: + float min_dist_enable; // offset 0x0, size 0x4 + float min_dist_disable; // offset 0x4, size 0x4 + float max_angle_enable; // offset 0x8, size 0x4 + float max_angle_disable; // offset 0xC, size 0x4 + float safety_dist; // offset 0x10, size 0x4 + float decel; // offset 0x14, size 0x4 + float escape_delay; // offset 0x18, size 0x4 + } lasso; // offset 0x12C, size 0x1C + class /* @class */ { + // total size: 0x2C + public: + float beam_radius; // offset 0x0, size 0x4 + float beam_blast_radius; // offset 0x4, size 0x4 + class xVec3 flame_size; // offset 0x8, size 0xC + class xVec3 snot_size; // offset 0x14, size 0xC + float hand_radius; // offset 0x20, size 0x4 + float slime_width; // offset 0x24, size 0x4 + float slime_time; // offset 0x28, size 0x4 + } damage; // offset 0x148, size 0x2C + class /* @class */ { + // total size: 0x10 + public: + float delay; // offset 0x0, size 0x4 + float duration; // offset 0x4, size 0x4 + float rate_mult; // offset 0x8, size 0x4 + float yoffset; // offset 0xC, size 0x4 + } wipe; // offset 0x174, size 0x10 + class /* @class */ { + // total size: 0x20 + public: + float wind_duration; // offset 0x0, size 0x4 + float wink_duration; // offset 0x4, size 0x4 + float start_y; // offset 0x8, size 0x4 + float end_y; // offset 0xC, size 0x4 + float wind_min; // offset 0x10, size 0x4 + float wind_kill_dist; // offset 0x14, size 0x4 + float wind_mag_up; // offset 0x18, size 0x4 + float wind_mag_right; // offset 0x1C, size 0x4 + } death; // offset 0x184, size 0x20 + class sound_property sound[6]; // offset 0x1A4, size 0x78 + void * context; // offset 0x21C, size 0x4 + class tweak_callback cb_orbit_radius; // offset 0x220, size 0x28 + class tweak_callback cb_ground; // offset 0x248, size 0x28 + class tweak_callback cb_damage; // offset 0x270, size 0x28 + class tweak_callback cb_flame_rate; // offset 0x298, size 0x28 + class tweak_callback cb_alpha; // offset 0x2C0, size 0x28 + class tweak_callback cb_reticle; // offset 0x2E8, size 0x28 + class tweak_callback cb_halo_uv; // offset 0x310, size 0x28 + class tweak_callback cb_blob_pitch; // offset 0x338, size 0x28 + class tweak_callback cb_sound; // offset 0x360, size 0x28 +}; +class static_queue { + // total size: 0x14 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int _max_size; // offset 0x8, size 0x4 + unsigned int _max_size_mask; // offset 0xC, size 0x4 + class slime_slice * _buffer; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zNPCDutchman : public zNPCSubBoss { + // total size: 0x64C +public: + class /* @class */ { + // total size: 0x10 + public: + unsigned char face_player; // offset 0x0, size 0x1 + unsigned char fighting; // offset 0x1, size 0x1 + unsigned char beaming; // offset 0x2, size 0x1 + unsigned char was_beaming; // offset 0x3, size 0x1 + unsigned char hurting; // offset 0x4, size 0x1 + unsigned char flaming; // offset 0x5, size 0x1 + unsigned char eye_glow; // offset 0x6, size 0x1 + unsigned char hand_trail; // offset 0x7, size 0x1 + enum move_enum move; // offset 0x8, size 0x4 + enum fade_enum fade; // offset 0xC, size 0x4 + } flag; // offset 0x2B4, size 0x10 + signed int life; // offset 0x2C4, size 0x4 + signed int round; // offset 0x2C8, size 0x4 + signed int stage; // offset 0x2CC, size 0x4 + float delay; // offset 0x2D0, size 0x4 + float alpha; // offset 0x2D4, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + } turn; // offset 0x2D8, size 0x14 + class move_info move; // offset 0x2EC, size 0x30 + class /* @class */ { + // total size: 0x1 + public: + unsigned char moreFlags; // offset 0x0, size 0x1 + } old; // offset 0x31C, size 0x1 + class beam_info beam[2]; // offset 0x320, size 0x238 + class static_queue waves; // offset 0x558, size 0x14 + class /* @class */ { + // total size: 0x60 + public: + float size; // offset 0x0, size 0x4 + float time; // offset 0x4, size 0x4 + signed int emitted; // offset 0x8, size 0x4 + unsigned char splash_break; // offset 0xC, size 0x1 + class xVec3 splash_loc; // offset 0x10, size 0xC + unsigned char blob_break; // offset 0x1C, size 0x1 + class xVec3 blob_loc; // offset 0x20, size 0xC + float imax_dist; // offset 0x2C, size 0x4 + class xMat3x3 blob_mat; // offset 0x30, size 0x30 + } flames; // offset 0x56C, size 0x60 + class /* @class */ { + // total size: 0x18 + public: + class xVec3 loc[2]; // offset 0x0, size 0x18 + } hand_trail; // offset 0x5CC, size 0x18 + class /* @class */ { + // total size: 0x1C + public: + float time; // offset 0x0, size 0x4 + float duration; // offset 0x4, size 0x4 + float iduration; // offset 0x8, size 0x4 + class xVec3 sound_loc; // offset 0xC, size 0xC + unsigned int sound_handle; // offset 0x18, size 0x4 + } fade; // offset 0x5E4, size 0x1C + class /* @class */ { + // total size: 0x2C + public: + class static_queue slices; // offset 0x0, size 0x14 + class xVec3 origin; // offset 0x14, size 0xC + class xVec3 dir; // offset 0x20, size 0xC + } slime; // offset 0x600, size 0x2C + class /* @class */ { + // total size: 0x4 + public: + float size; // offset 0x0, size 0x4 + } eye_glow; // offset 0x62C, size 0x4 + class zNPCLassoInfo lasso_info; // offset 0x630, size 0x18 + class RwRaster * laser_raster; // offset 0x648, size 0x4 +}; +class zNPCGoalDutchmanDamage : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned char moving; // offset 0x4C, size 0x1 + class zNPCDutchman & owner; // offset 0x50, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +enum substate_enum { + SS_DISSOLVE = 0, + SS_DISPERSE = 1, + SS_WINK = 2, + SS_DONE = 3, +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class iterator { + // total size: 0x8 +public: + unsigned int _it; // offset 0x0, size 0x4 + class static_queue * _owner; // offset 0x4, size 0x4 +}; +class zNPCGoalDutchmanDisappear : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCDutchman & owner; // offset 0x4C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class /* @class */ { + // total size: 0x2C +public: + class static_queue slices; // offset 0x0, size 0x14 + class xVec3 origin; // offset 0x14, size 0xC + class xVec3 dir; // offset 0x20, size 0xC +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class zNPCGoalDutchmanPostFlame : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCDutchman & owner; // offset 0x4C, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x2C +}; +class zNPCGoalDutchmanBeam : public zNPCGoalCommon { + // total size: 0xC0 +public: + enum substate_enum substate; // offset 0x4C, size 0x4 + signed int shots; // offset 0x50, size 0x4 + class beam_data beam[2]; // offset 0x54, size 0x68 + class zNPCDutchman & owner; // offset 0xBC, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0xCC +}; +class /* @class */ { + // total size: 0x14 +public: + class xVec2 dir; // offset 0x0, size 0x8 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class iterator { + // total size: 0x8 +public: + unsigned int _it; // offset 0x0, size 0x4 + class static_queue * _owner; // offset 0x4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zNPCGoalDutchmanFlame : public zNPCGoalCommon { + // total size: 0x60 +public: + enum substate_enum substate; // offset 0x4C, size 0x4 + class xVec2 move_dir; // offset 0x50, size 0x8 + unsigned char stopped; // offset 0x58, size 0x1 + class zNPCDutchman & owner; // offset 0x5C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zNPCGoalDutchmanInitiate : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCDutchman & owner; // offset 0x4C, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x28 +public: + class xVec3 accel; // offset 0x0, size 0xC + class xVec3 max_vel; // offset 0xC, size 0xC + float turn_accel; // offset 0x18, size 0x4 + float turn_max_vel; // offset 0x1C, size 0x4 + float fade_time; // offset 0x20, size 0x4 + float trail_width; // offset 0x24, size 0x4 +}; +class zNPCSubBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class beam_config { + // total size: 0x1C +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float start_dist; // offset 0x8, size 0x4 + float end_dist; // offset 0xC, size 0x4 + float wave_freq; // offset 0x10, size 0x4 + float wave_min; // offset 0x14, size 0x4 + float wave_max; // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class zNPCGoalDutchmanTeleport : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCDutchman & owner; // offset 0x4C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +struct /* @anon4 */ { + // total size: 0x34 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class block_data { + // total size: 0x8 +public: + unsigned char prev; // offset 0x0, size 0x1 + unsigned char next; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float delay; // offset 0x0, size 0x4 + float duration; // offset 0x4, size 0x4 + float rate_mult; // offset 0x8, size 0x4 + float yoffset; // offset 0xC, size 0x4 +}; +class delay_goal { + // total size: 0x8 +public: + signed int goal; // offset 0x0, size 0x4 + float delay; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zNPCGoalDutchmanReappear : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCDutchman & owner; // offset 0x4C, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum en_LASSO_EVENT { + LASS_EVNT_BEGIN = 0, + LASS_EVNT_ENDED = 1, + LASS_EVNT_GRABSTART = 2, + LASS_EVNT_GRABEND = 3, + LASS_EVNT_YANK = 4, + LASS_EVNT_ABORT = 5, + LASS_EVNT_NOMORE = 6, + LASS_EVNT_FORCEINT = 2147483647, +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class beam_info { + // total size: 0x11C +public: + unsigned char extend; // offset 0x0, size 0x1 + class xVec3 start_loc; // offset 0x4, size 0xC + class beam_end end[16]; // offset 0x10, size 0x100 + unsigned int segments; // offset 0x110, size 0x4 + float alpha; // offset 0x114, size 0x4 + float thickness; // offset 0x118, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class curve_node { + // total size: 0xC +public: + float time; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float scale; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + float accel; // offset 0x0, size 0x4 + float max_vel; // offset 0x4, size 0x4 + float start_delay; // offset 0x8, size 0x4 + float wave_rate; // offset 0xC, size 0x4 + float unit_dist; // offset 0x10, size 0x4 + float start_dist; // offset 0x14, size 0x4 + float lead_dist; // offset 0x18, size 0x4 + float emit_rate[3]; // offset 0x1C, size 0xC + float emit_width[3]; // offset 0x28, size 0xC + float snot_dist; // offset 0x34, size 0x4 + float snot_vel; // offset 0x38, size 0x4 + float snot_height; // offset 0x3C, size 0x4 + float splash_width; // offset 0x40, size 0x4 + float decay; // offset 0x44, size 0x4 + float blob_pitch; // offset 0x48, size 0x4 + float spray_width; // offset 0x4C, size 0x4 + float warm_up_time; // offset 0x50, size 0x4 + float sneeze_mult; // offset 0x54, size 0x4 +}; +class zNPCGoalDutchmanCaught : public zNPCGoalCommon { + // total size: 0x54 +public: + unsigned char grabbed; // offset 0x4C, size 0x1 + class zNPCDutchman & owner; // offset 0x50, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class wave_data { + // total size: 0x44 +public: + unsigned char clipped; // offset 0x0, size 0x1 + class xVec3 loc; // offset 0x4, size 0xC + class xVec3 dir; // offset 0x10, size 0xC + float dist; // offset 0x1C, size 0x4 + float clip_dist; // offset 0x20, size 0x4 + float vel; // offset 0x24, size 0x4 + class xVec3 sound_loc; // offset 0x28, size 0xC + unsigned int sound_handle; // offset 0x34, size 0x4 + signed int emitted[3]; // offset 0x38, size 0xC +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +enum substate_enum { + SS_WAIT = 0, + SS_MOVE = 1, + SS_STOP = 2, + SS_DONE = 3, +}; +class /* @class */ { + // total size: 0x20 +public: + float wind_duration; // offset 0x0, size 0x4 + float wink_duration; // offset 0x4, size 0x4 + float start_y; // offset 0x8, size 0x4 + float end_y; // offset 0xC, size 0x4 + float wind_min; // offset 0x10, size 0x4 + float wind_kill_dist; // offset 0x14, size 0x4 + float wind_mag_up; // offset 0x18, size 0x4 + float wind_mag_right; // offset 0x1C, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +enum substate_enum { + SS_STOP = 0, + SS_FOCUS = 1, + SS_FIRE = 2, + SS_UNFOCUS = 3, + SS_DONE = 4, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class slime_slice { + // total size: 0x8 +public: + float age; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char moreFlags; // offset 0x0, size 0x1 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class zNPCGoalDutchmanIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + class zNPCDutchman & owner; // offset 0x4C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class config { + // total size: 0x10 +public: + float life_time; // offset 0x0, size 0x4 + unsigned int blend_src; // offset 0x4, size 0x4 + unsigned int blend_dst; // offset 0x8, size 0x4 + float pivot; // offset 0xC, size 0x4 +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x60 +public: + float size; // offset 0x0, size 0x4 + float time; // offset 0x4, size 0x4 + signed int emitted; // offset 0x8, size 0x4 + unsigned char splash_break; // offset 0xC, size 0x1 + class xVec3 splash_loc; // offset 0x10, size 0xC + unsigned char blob_break; // offset 0x1C, size 0x1 + class xVec3 blob_loc; // offset 0x20, size 0xC + float imax_dist; // offset 0x2C, size 0x4 + class xMat3x3 blob_mat; // offset 0x30, size 0x30 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xParSys { + // total size: 0x0 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RyzMemData { + // total size: 0x1 +}; +class beam_end { + // total size: 0x10 +public: + unsigned char extend; // offset 0x0, size 0x1 + class xVec3 loc; // offset 0x4, size 0xC +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0xCC +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xFXRibbon { + // total size: 0x140 +public: + class config cfg; // offset 0x0, size 0x10 + unsigned char activated; // offset 0x10, size 0x1 + class RwRaster * raster; // offset 0x14, size 0x4 + class tier_queue joints; // offset 0x18, size 0x110 + class curve_node * curve; // offset 0x128, size 0x4 + unsigned int curve_size; // offset 0x12C, size 0x4 + unsigned int curve_index; // offset 0x130, size 0x4 + float ilife; // offset 0x134, size 0x4 + unsigned int mtime; // offset 0x138, size 0x4 + unsigned int mlife; // offset 0x13C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class tier_queue_allocator { + // total size: 0x1C +public: + class block_data * blocks; // offset 0x0, size 0x4 + unsigned int _unit_size; // offset 0x4, size 0x4 + unsigned int _block_size; // offset 0x8, size 0x4 + unsigned int _block_size_shift; // offset 0xC, size 0x4 + unsigned int _max_blocks; // offset 0x10, size 0x4 + unsigned int _max_blocks_shift; // offset 0x14, size 0x4 + unsigned char head; // offset 0x18, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +enum move_enum { + MOVE_NONE = 0, + MOVE_FOLLOW = 1, + MOVE_ACCEL = 2, + MOVE_VEL = 3, + MOVE_STOP = 4, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class beam_data { + // total size: 0x34 +public: + class xVec2 origin; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float dist; // offset 0x10, size 0x4 + float vel; // offset 0x14, size 0x4 + float wave_offset; // offset 0x18, size 0x4 + unsigned int ribbon_flags; // offset 0x1C, size 0x4 + class xVec3 loc; // offset 0x20, size 0xC + unsigned int impact_sound; // offset 0x2C, size 0x4 + unsigned int glow_sound; // offset 0x30, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xPlatformAsset { + // total size: 0x0 +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + float size; // offset 0x0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class xEntBoulder { + // total size: 0x0 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0xCC +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class sound_asset { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + unsigned int priority; // offset 0x4, size 0x4 + unsigned int flags; // offset 0x8, size 0x4 +}; +struct /* @anon11 */ { + // total size: 0x34 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +enum fade_enum { + FADE_NONE = 0, + FADE_DISSOLVE = 1, + FADE_TELEPORT = 2, + FADE_COALESCE = 3, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float alpha; // offset 0x0, size 0x4 + float scale; // offset 0x4, size 0x4 + float yoffset; // offset 0x8, size 0x4 + float vel_u; // offset 0xC, size 0x4 + float vel_v; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x18 +public: + class xVec3 loc[2]; // offset 0x0, size 0x18 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class tier_queue { + // total size: 0x110 +public: + unsigned int first; // offset 0x0, size 0x4 + unsigned int _size; // offset 0x4, size 0x4 + unsigned int wrap_mask; // offset 0x8, size 0x4 + class tier_queue_allocator * alloc; // offset 0xC, size 0x4 + unsigned char blocks[256]; // offset 0x10, size 0x100 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + signed int dummy; // offset 0x0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0x34 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class sound_data_type { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned int handle; // offset 0x4, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + float time; // offset 0x0, size 0x4 + float duration; // offset 0x4, size 0x4 + float iduration; // offset 0x8, size 0x4 + class xVec3 sound_loc; // offset 0xC, size 0xC + unsigned int sound_handle; // offset 0x18, size 0x4 +}; +struct /* @anon13 */ { + // total size: 0x34 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float turn_vel; // offset 0x0, size 0x4 + float turn_accel; // offset 0x4, size 0x4 + float up_vel; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class /* @class */ { + // total size: 0x1C +public: + float min_dist_enable; // offset 0x0, size 0x4 + float min_dist_disable; // offset 0x4, size 0x4 + float max_angle_enable; // offset 0x8, size 0x4 + float max_angle_disable; // offset 0xC, size 0x4 + float safety_dist; // offset 0x10, size 0x4 + float decel; // offset 0x14, size 0x4 + float escape_delay; // offset 0x18, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +struct /* @anon14 */ { + // total size: 0x34 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char face_player; // offset 0x0, size 0x1 + unsigned char fighting; // offset 0x1, size 0x1 + unsigned char beaming; // offset 0x2, size 0x1 + unsigned char was_beaming; // offset 0x3, size 0x1 + unsigned char hurting; // offset 0x4, size 0x1 + unsigned char flaming; // offset 0x5, size 0x1 + unsigned char eye_glow; // offset 0x6, size 0x1 + unsigned char hand_trail; // offset 0x7, size 0x1 + enum move_enum move; // offset 0x8, size 0x4 + enum fade_enum fade; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class sound_property { + // total size: 0x14 +public: + float volume; // offset 0x0, size 0x4 + float range_inner; // offset 0x4, size 0x4 + float range_outer; // offset 0x8, size 0x4 + float delay; // offset 0xC, size 0x4 + float fade_time; // offset 0x10, size 0x4 +}; +struct /* @anon15 */ { + // total size: 0x54 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class beam_type : public beam_config { + // total size: 0x44 +public: + float knock_back; // offset 0x1C, size 0x4 + float thickness; // offset 0x20, size 0x4 + float focus_time; // offset 0x24, size 0x4 + float segment_width; // offset 0x28, size 0x4 + float light_rate; // offset 0x2C, size 0x4 + float glow_dist; // offset 0x30, size 0x4 + signed int shots[3]; // offset 0x34, size 0xC + float fade_dist; // offset 0x40, size 0x4 +}; +struct /* @anon16 */ { + // total size: 0x34 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +struct /* @anon17 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x2C +public: + float beam_radius; // offset 0x0, size 0x4 + float beam_blast_radius; // offset 0x4, size 0x4 + class xVec3 flame_size; // offset 0x8, size 0xC + class xVec3 snot_size; // offset 0x14, size 0xC + float hand_radius; // offset 0x20, size 0x4 + float slime_width; // offset 0x24, size 0x4 + float slime_time; // offset 0x28, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C720 -> 0x0039C828 +*/ +// Range: 0x39C720 -> 0x39C828 +signed int Process(class zNPCGoalDutchmanDeath * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C720 -> 0x39C828 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C830 -> 0x0039C854 +*/ +// Range: 0x39C830 -> 0x39C854 +signed int Exit(class zNPCGoalDutchmanDeath * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C830 -> 0x39C854 + class xVec3 & up; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C860 -> 0x0039C86C +*/ +// Range: 0x39C860 -> 0x39C86C +signed int Enter(class zNPCGoalDutchmanDeath * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C860 -> 0x39C86C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C870 -> 0x0039C924 +*/ +// Range: 0x39C870 -> 0x39C924 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C870 -> 0x39C924 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C930 -> 0x0039CA98 +*/ +// Range: 0x39C930 -> 0x39CA98 +signed int Process(class zNPCGoalDutchmanDamage * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C930 -> 0x39CA98 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039CAA0 -> 0x0039CAA8 +*/ +// Range: 0x39CAA0 -> 0x39CAA8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x39CAA0 -> 0x39CAA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039CAB0 -> 0x0039CC20 +*/ +// Range: 0x39CAB0 -> 0x39CC20 +signed int Enter(class zNPCGoalDutchmanDamage * this /* r16 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39CAB0 -> 0x39CC20 + class xVec2 off; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039CC20 -> 0x0039CCD4 +*/ +// Range: 0x39CC20 -> 0x39CCD4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39CC20 -> 0x39CCD4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039CCE0 -> 0x0039CEA0 +*/ +// Range: 0x39CCE0 -> 0x39CEA0 +signed int Process(class zNPCGoalDutchmanCaught * this /* r17 */, enum en_trantype * trantype /* r16 */, float dt /* r20 */, void * updCtxt /* r19 */, class xScene * xscn /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39CCE0 -> 0x39CEA0 + class xAnimState * anim; // r2 + class xVec3 & player_loc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039CEA0 -> 0x0039CEA8 +*/ +// Range: 0x39CEA0 -> 0x39CEA8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x39CEA0 -> 0x39CEA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039CEB0 -> 0x0039D020 +*/ +// Range: 0x39CEB0 -> 0x39D020 +signed int Enter(class zNPCGoalDutchmanCaught * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39CEB0 -> 0x39D020 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D020 -> 0x0039D0D4 +*/ +// Range: 0x39D020 -> 0x39D0D4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D020 -> 0x39D0D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D0E0 -> 0x0039D3A4 +*/ +// Range: 0x39D0E0 -> 0x39D3A4 +signed int Process(class zNPCGoalDutchmanPostFlame * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D0E0 -> 0x39D3A4 + class xAnimState * anim; // r2 + class xVec3 emit_loc; // r29+0x90 + class xParEmitterPropsAsset & prop; // r16 + float old_rate[2]; // r29+0x88 + unsigned int lookup[2]; // @ 0x00505E70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D3B0 -> 0x0039D3C0 +*/ +// Range: 0x39D3B0 -> 0x39D3C0 +signed int Exit(class zNPCGoalDutchmanPostFlame * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D3B0 -> 0x39D3C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D3C0 -> 0x0039D450 +*/ +// Range: 0x39D3C0 -> 0x39D450 +signed int Enter(class zNPCGoalDutchmanPostFlame * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D3C0 -> 0x39D450 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D450 -> 0x0039D504 +*/ +// Range: 0x39D450 -> 0x39D504 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D450 -> 0x39D504 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D510 -> 0x0039D9A4 +*/ +// Range: 0x39D510 -> 0x39D9A4 +void refresh_vulnerability(class zNPCGoalDutchmanFlame * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D510 -> 0x39D9A4 + class xVec3 & loc; // r8 + float orbit_dist2; // r2 + float max_orbit_dist; // r29+0xA0 + class xVec3 & player_loc; // r2 + class xVec3 player_offset; // r29+0x90 + float player_dist2; // r1 + float min_dist2; // r29+0xA0 + float ang; // r1 + float min_dist2; // r29+0xA0 + float ang; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039D9B0 -> 0x0039DBAC +*/ +// Range: 0x39D9B0 -> 0x39DBAC +void update_stop(class zNPCGoalDutchmanFlame * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39D9B0 -> 0x39DBAC + unsigned char anim_done; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039DBB0 -> 0x0039DECC +*/ +// Range: 0x39DBB0 -> 0x39DECC +void update_move(class zNPCGoalDutchmanFlame * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39DBB0 -> 0x39DECC + class xVec3 splash_loc; // r29+0x90 + class xVec2 orbit_offset; // r29+0x88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039DED0 -> 0x0039E454 +*/ +// Range: 0x39DED0 -> 0x39E454 +void update_wait(class zNPCGoalDutchmanFlame * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39DED0 -> 0x39E454 + class xVec3 & orbit; // r14 + class xVec3 & dest; // r13 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039E460 -> 0x0039E5A0 +*/ +// Range: 0x39E460 -> 0x39E5A0 +signed int Process(class zNPCGoalDutchmanFlame * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39E460 -> 0x39E5A0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039E5A0 -> 0x0039E5D0 +*/ +// Range: 0x39E5A0 -> 0x39E5D0 +signed int Exit(class zNPCGoalDutchmanFlame * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39E5A0 -> 0x39E5D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039E5D0 -> 0x0039E724 +*/ +// Range: 0x39E5D0 -> 0x39E724 +signed int Enter(class zNPCGoalDutchmanFlame * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39E5D0 -> 0x39E724 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039E730 -> 0x0039E7E4 +*/ +// Range: 0x39E730 -> 0x39E7E4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39E730 -> 0x39E7E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039E7F0 -> 0x0039E928 +*/ +// Range: 0x39E7F0 -> 0x39E928 +void predict_target(class zNPCGoalDutchmanBeam * this /* r2 */, class xVec3 & target /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39E7F0 -> 0x39E928 + class xVec3 & player_loc; // r7 + class xVec3 offset; // r29+0x30 + float minmag; // r4 + float t; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039E930 -> 0x0039EA7C +*/ +// Range: 0x39E930 -> 0x39EA7C +void add_effects(class zNPCGoalDutchmanBeam * this /* r2 */, signed int which /* r2 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39E930 -> 0x39EA7C + class xVec3 offset; // r29+0x20 + float max_dist; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039EA80 -> 0x0039EC6C +*/ +// Range: 0x39EA80 -> 0x39EC6C +void add_blast_effects(class zNPCGoalDutchmanBeam * this /* r2 */, signed int which /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39EA80 -> 0x39EC6C + class beam_end & end; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039EC70 -> 0x0039ECE0 +*/ +// Range: 0x39EC70 -> 0x39ECE0 +void refresh_beam(class zNPCGoalDutchmanBeam * this /* r16 */, signed int which /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39EC70 -> 0x39ECE0 + class xVec2 loc; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039ECE0 -> 0x0039EF6C +*/ +// Range: 0x39ECE0 -> 0x39EF6C +void update_beam(class zNPCGoalDutchmanBeam * this /* r18 */, float dt /* r20 */, class beam_data & beam /* r17 */, signed int which /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39ECE0 -> 0x39EF6C + class beam_config & cfg; // r20 + float dist; // r29+0x8C + float vel; // r29+0x88 + float diff; // r2 + float ddt; // r29+0x90 + signed int iterations; // r19 + float d; // r29+0x90 + float ddist; // r21 + signed int i; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039EF70 -> 0x0039F128 +*/ +// Range: 0x39EF70 -> 0x39F128 +void calc_beam_loc(class xVec2 & loc /* r17 */, float dist /* r20 */, class beam_data & data /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39EF70 -> 0x39F128 + class beam_config & cfg; // r3 + float frac; // r4 + float wave_mag; // r21 + float wave_offset; // r2 + class xVec2 dir_tan; // r29+0x78 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039F130 -> 0x0039F280 +*/ +// Range: 0x39F130 -> 0x39F280 +void update_unfocus(class zNPCGoalDutchmanBeam * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39F130 -> 0x39F280 + float frac; // r1 + float frac2; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039F280 -> 0x0039F418 +*/ +// Range: 0x39F280 -> 0x39F418 +void update_fire(class zNPCGoalDutchmanBeam * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39F280 -> 0x39F418 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039F420 -> 0x0039F770 +*/ +// Range: 0x39F420 -> 0x39F770 +void update_focus(class zNPCGoalDutchmanBeam * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39F420 -> 0x39F770 + class xVec3 target; // r29+0x50 + float frac; // r29+0x60 + float frac2; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039F770 -> 0x0039FC3C +*/ +// Range: 0x39F770 -> 0x39FC3C +void update_stop(class zNPCGoalDutchmanBeam * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39F770 -> 0x39FC3C + signed int i; // r8 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039FC40 -> 0x0039FDA0 +*/ +// Range: 0x39FC40 -> 0x39FDA0 +signed int Process(class zNPCGoalDutchmanBeam * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39FC40 -> 0x39FDA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039FDA0 -> 0x0039FDA8 +*/ +// Range: 0x39FDA0 -> 0x39FDA8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x39FDA0 -> 0x39FDA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039FDB0 -> 0x0039FEF0 +*/ +// Range: 0x39FDB0 -> 0x39FEF0 +signed int Enter(class zNPCGoalDutchmanBeam * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39FDB0 -> 0x39FEF0 + class xVec3 player_loc; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039FEF0 -> 0x0039FFA4 +*/ +// Range: 0x39FEF0 -> 0x39FFA4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39FEF0 -> 0x39FFA4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039FFB0 -> 0x003A00C8 +*/ +// Range: 0x39FFB0 -> 0x3A00C8 +signed int Process(class zNPCGoalDutchmanReappear * this /* r16 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39FFB0 -> 0x3A00C8 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A00D0 -> 0x003A020C +*/ +// Range: 0x3A00D0 -> 0x3A020C +signed int Exit(class zNPCGoalDutchmanReappear * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A00D0 -> 0x3A020C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0210 -> 0x003A027C +*/ +// Range: 0x3A0210 -> 0x3A027C +signed int Enter(class zNPCGoalDutchmanReappear * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0210 -> 0x3A027C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0280 -> 0x003A0334 +*/ +// Range: 0x3A0280 -> 0x3A0334 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0280 -> 0x3A0334 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0340 -> 0x003A0434 +*/ +// Range: 0x3A0340 -> 0x3A0434 +signed int Process(class zNPCGoalDutchmanTeleport * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x30 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0340 -> 0x3A0434 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0440 -> 0x003A0448 +*/ +// Range: 0x3A0440 -> 0x3A0448 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x3A0440 -> 0x3A0448 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0450 -> 0x003A063C +*/ +// Range: 0x3A0450 -> 0x3A063C +signed int Enter(class zNPCGoalDutchmanTeleport * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0450 -> 0x3A063C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0640 -> 0x003A06F4 +*/ +// Range: 0x3A0640 -> 0x3A06F4 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0640 -> 0x3A06F4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0700 -> 0x003A074C +*/ +// Range: 0x3A0700 -> 0x3A074C +signed int Process(class zNPCGoalDutchmanDisappear * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0700 -> 0x3A074C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0750 -> 0x003A0758 +*/ +// Range: 0x3A0750 -> 0x3A0758 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x3A0750 -> 0x3A0758 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0760 -> 0x003A07C0 +*/ +// Range: 0x3A0760 -> 0x3A07C0 +signed int Enter(class zNPCGoalDutchmanDisappear * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0760 -> 0x3A07C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A07C0 -> 0x003A0874 +*/ +// Range: 0x3A07C0 -> 0x3A0874 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A07C0 -> 0x3A0874 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0880 -> 0x003A094C +*/ +// Range: 0x3A0880 -> 0x3A094C +signed int Process(class zNPCGoalDutchmanIdle * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0880 -> 0x3A094C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0950 -> 0x003A0958 +*/ +// Range: 0x3A0950 -> 0x3A0958 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x3A0950 -> 0x3A0958 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0960 -> 0x003A0970 +*/ +// Range: 0x3A0960 -> 0x3A0970 +signed int Enter(class zNPCGoalDutchmanIdle * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0960 -> 0x3A0970 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0970 -> 0x003A0A24 +*/ +// Range: 0x3A0970 -> 0x3A0A24 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0970 -> 0x3A0A24 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0A30 -> 0x003A0BE4 +*/ +// Range: 0x3A0A30 -> 0x3A0BE4 +signed int Process(class zNPCGoalDutchmanInitiate * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x40 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0A30 -> 0x3A0BE4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0BF0 -> 0x003A0C08 +*/ +// Range: 0x3A0BF0 -> 0x3A0C08 +signed int Exit(class zNPCGoalDutchmanInitiate * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0BF0 -> 0x3A0C08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0C10 -> 0x003A0DD8 +*/ +// Range: 0x3A0C10 -> 0x3A0DD8 +signed int Enter(class zNPCGoalDutchmanInitiate * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0C10 -> 0x3A0DD8 + class xVec3 & end_loc; // r8 + class xVec3 & loc; // r2 + class xVec3 & floc; // r2 + class xVec2 offset; // r29+0x48 + float scale; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0DE0 -> 0x003A0E94 +*/ +// Range: 0x3A0DE0 -> 0x3A0E94 +class xFactoryInst * create(signed int who /* r17 */, class RyzMemGrow * grow /* r5 */, void * info /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0DE0 -> 0x3A0E94 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0EA0 -> 0x003A0F40 +*/ +// Range: 0x3A0EA0 -> 0x3A0F40 +class xFactoryInst * create(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0EA0 -> 0x3A0F40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0F40 -> 0x003A0F64 +*/ +// Range: 0x3A0F40 -> 0x3A0F64 +void render_halo(class zNPCDutchman * this /* r4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0F40 -> 0x3A0F64 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A0F70 -> 0x003A141C +*/ +// Range: 0x3A0F70 -> 0x3A141C +static class RxObjSpace3DVertex * render_beam(class RxObjSpace3DVertex * vert /* r21 */, class beam_info & beam /* r20 */, unsigned int which /* r2 */, unsigned char alpha /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A0F70 -> 0x3A141C + class xVec3 & start_loc; // r18 + class xVec3 & end_loc; // r17 + class xVec3 start_screen_loc; // r29+0x160 + class xVec3 end_screen_loc; // r29+0x150 + class xVec3 screen_dir; // r29+0x140 + class xVec3 screen_right; // r29+0x130 + class xVec3 right; // r29+0x120 + class xVec3 half_right; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A1420 -> 0x003A151C +*/ +// Range: 0x3A1420 -> 0x3A151C +static class xVec3 world_to_screen(class xVec3 & loc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A1420 -> 0x3A151C + class xMat4x3 & view_mat; // r2 + float iz; // r29+0x40 + class xVec3 screen_loc; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A1520 -> 0x003A1844 +*/ +// Range: 0x3A1520 -> 0x3A1844 +static void set_beam_verts(class RxObjSpace3DVertex * vert /* r2 */, class xVec3 & loc0 /* r2 */, class xVec3 & loc1 /* r2 */, unsigned char a0 /* r2 */, unsigned char a1 /* r2 */, class xVec3 & half_right /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A1520 -> 0x3A1844 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A1850 -> 0x003A1A5C +*/ +// Range: 0x3A1850 -> 0x3A1A5C +class xVec3 random_orbit(class zNPCDutchman * this /* r2 */, class xVec3 & loc /* r2 */, float min_ang /* r21 */, float max_ang /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A1850 -> 0x3A1A5C + class xVec3 offset; // r29+0x60 + float ang; // r22 + float imag; // r1 + float r; // r20 + float rand_ang; // r20 + class xVec3 dest; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A1A60 -> 0x003A2440 +*/ +// Range: 0x3A1A60 -> 0x3A2440 +unsigned char check_player_damage(class zNPCDutchman * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A1A60 -> 0x3A2440 + class xSphere & o; // r20 + signed int which; // r19 + class beam_info & beam; // r18 + unsigned int i; // r23 + class iterator it; // r29+0x278 + float frac; // r29+0x280 + class xMat4x3 mat; // r29+0x130 + signed int i; // r11 + class xMat4x3 mat; // r29+0xF0 + class xMat4x3 mat; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A2440 -> 0x003A2B7C +*/ +// Range: 0x3A2440 -> 0x3A2B7C +void update_flames(class zNPCDutchman * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A2440 -> 0x3A2B7C + class iterator it; // r29+0x178 + class iterator itp; // r29+0x170 + class xVec3 nose_loc; // r29+0x160 + class xVec3 ground_loc; // r29+0x150 + class xVec2 orbit_offset; // r29+0x148 + signed int emit; // r4 + class xVec3 tan; // r29+0x138 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A2B80 -> 0x003A3118 +*/ +// Range: 0x3A2B80 -> 0x3A3118 +void add_spray(class zNPCDutchman * this /* r18 */, class xVec3 & loc /* r2 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A2B80 -> 0x3A3118 + class xVec3 emit_loc; // r29+0x100 + float frac; // r1 + class xParEmitterPropsAsset & prop; // r17 + float old_rate[2]; // r29+0xF8 + class xParEmitterAsset & ea; // r17 + float velmag; // r22 + class xVec3 extra_vel; // r29+0xE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A3120 -> 0x003A33CC +*/ +// Range: 0x3A3120 -> 0x3A33CC +void add_slime(class zNPCDutchman * this /* r17 */, class xVec3 & loc /* r16 */, float dt /* r29+0x80 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A3120 -> 0x3A33CC + float max_dist; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A33D0 -> 0x003A3560 +*/ +// Range: 0x3A33D0 -> 0x3A3560 +void update_slime(class zNPCDutchman * this /* r2 */, float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A33D0 -> 0x3A3560 + class iterator it; // r29+0x38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A3560 -> 0x003A3920 +*/ +// Range: 0x3A3560 -> 0x3A3920 +void update_fade(class zNPCDutchman * this /* r16 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A3560 -> 0x3A3920 + float frac; // r3 + float frac; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A3920 -> 0x003A3C00 +*/ +// Range: 0x3A3920 -> 0x3A3C00 +void coalesce(class zNPCDutchman * this /* r16 */, float delay /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A3920 -> 0x3A3C00 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A3C00 -> 0x003A3F64 +*/ +// Range: 0x3A3C00 -> 0x3A3F64 +void dissolve(class zNPCDutchman * this /* r16 */, float delay /* r29+0x90 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A3C00 -> 0x3A3F64 + float volume; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A3F70 -> 0x003A4204 +*/ +// Range: 0x3A3F70 -> 0x3A4204 +void update_eye_glow(class zNPCDutchman * this /* r17 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A3F70 -> 0x3A4204 + class xVec3 offset; // r29+0x100 + signed int i; // r16 + class xParEmitterAsset & ea; // r21 + class xParEmitterPropsAsset & prop; // r20 + float old_size_birth[2]; // r29+0xF8 + float old_size_death[2]; // r29+0xF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A4210 -> 0x003A43E8 +*/ +// Range: 0x3A4210 -> 0x3A43E8 +void init_wave(class wave_data & wave /* r16 */, class xVec3 & loc /* r2 */, class xVec3 & dir /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A4210 -> 0x3A43E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A43F0 -> 0x003A49D4 +*/ +// Range: 0x3A43F0 -> 0x3A49D4 +void update_wave(class zNPCDutchman * this /* r16 */, class wave_data & wave /* r21 */, float dt /* r29+0x170 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A43F0 -> 0x3A49D4 + float old_dist; // r24 + float dist; // r23 + float frac; // r22 + class xVec3 tan; // r29+0x160 + float diff; // r21 + signed int i; // r20 + class xParEmitterPropsAsset & prop; // r19 + float old_life[2]; // r29+0x158 + float old_size_birth[2]; // r29+0x150 + float old_size_death[2]; // r29+0x148 + signed int emit; // r22 + float dist0; // r20 + float dist1; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A49E0 -> 0x003A4C00 +*/ +// Range: 0x3A49E0 -> 0x3A4C00 +static unsigned char clip_outside_circle(float & out /* r2 */, class xVec2 & origin /* r2 */, class xVec2 & dir /* r2 */, float d1 /* r29+0x60 */, float d2 /* r29+0x60 */, class xVec2 & center /* r2 */, float r /* r29+0x60 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A49E0 -> 0x3A4C00 + float r2; // r1 + float len; // r29+0x60 + class xVec2 offset; // r29+0x58 + class xVec2 g; // r29+0x50 + class xVec2 h; // r29+0x48 + float a; // r4 + float b; // r3 + float d; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A4C00 -> 0x003A4D70 +*/ +// Range: 0x3A4C00 -> 0x3A4D70 +void update_move(class zNPCDutchman * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A4C00 -> 0x3A4D70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A4D70 -> 0x003A5128 +*/ +// Range: 0x3A4D70 -> 0x3A5128 +void update_turn(class zNPCDutchman * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A4D70 -> 0x3A5128 + class xVec3 & loc3; // r6 + class xVec3 & start3; // r5 + class xVec2 loc; // r29+0x40 + class xVec2 start_dir; // r29+0x38 + float start; // r21 + float end; // r29+0x50 + float diff; // r1 + float yaw; // r29+0x4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A5130 -> 0x003A52EC +*/ +// Range: 0x3A5130 -> 0x3A52EC +static void update_move_accel(class xVec3 & loc /* r2 */, class move_info & move /* r2 */, float dt /* r29+0x70 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A5130 -> 0x3A52EC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A52F0 -> 0x003A54CC +*/ +// Range: 0x3A52F0 -> 0x3A54CC +static void update_move_follow(class xVec3 & loc /* r18 */, class move_info & move /* r17 */, class xMat3x3 & mat /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A52F0 -> 0x3A54CC + class xVec3 offset; // r29+0x90 + class xVec3 dloc; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A54D0 -> 0x003A5504 +*/ +// Range: 0x3A54D0 -> 0x3A5504 +signed int LassoSetup(class zNPCDutchman * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A54D0 -> 0x3A5504 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A5510 -> 0x003A5580 +*/ +// Range: 0x3A5510 -> 0x3A5580 +void LassoNotify(class zNPCDutchman * this /* r17 */, enum en_LASSO_EVENT event /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A5510 -> 0x3A5580 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A5580 -> 0x003A5638 +*/ +// Range: 0x3A5580 -> 0x3A5638 +unsigned int AnimPick(class zNPCDutchman * this /* r2 */, signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A5580 -> 0x3A5638 + signed int index; // r3 + unsigned int animID; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A5640 -> 0x003A5648 +*/ +// Range: 0x3A5640 -> 0x3A5648 +void Damage(class zNPCDutchman * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A5640 -> 0x3A5648 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A5650 -> 0x003A56EC +*/ +// Range: 0x3A5650 -> 0x3A56EC +void SelfSetup(class zNPCDutchman * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A5650 -> 0x3A56EC + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A56F0 -> 0x003A5758 +*/ +// Range: 0x3A56F0 -> 0x3A5758 +void ParseINI(class zNPCDutchman * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A56F0 -> 0x3A5758 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A5760 -> 0x003A9444 +*/ +// Range: 0x3A5760 -> 0x3A9444 +static void register_tweaks(class tweak_group * this /* r19 */, unsigned char init /* r18 */, class xModelAssetParam * ap /* r17 */, unsigned int apsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A5760 -> 0x3A9444 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A9450 -> 0x003A9800 +*/ +// Range: 0x3A9450 -> 0x3A9800 +void RenderExtra(class zNPCDutchman * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A9450 -> 0x3A9800 + signed int oldzwrite; // r29+0x6C + signed int oldztest; // r29+0x68 + unsigned int oldsrcblend; // r29+0x64 + unsigned int olddestblend; // r29+0x60 + unsigned char oldcmp; // r17 + class xModelInstance * m; // r16 + class xModelInstance * m; // r16 + unsigned char haloing; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A9800 -> 0x003A9808 +*/ +// Range: 0x3A9800 -> 0x3A9808 +void Render() { + // Blocks + /* anonymous block */ { + // Range: 0x3A9800 -> 0x3A9808 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A9810 -> 0x003A9908 +*/ +// Range: 0x3A9810 -> 0x3A9908 +signed int SysEvent(class zNPCDutchman * this /* r16 */, class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */, signed int * handled /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A9810 -> 0x3A9908 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A9910 -> 0x003A9C24 +*/ +// Range: 0x3A9910 -> 0x3A9C24 +void Process(class zNPCDutchman * this /* r20 */, class xScene * xscn /* r30 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A9910 -> 0x3A9C24 + class xVec3 & player_loc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A9C30 -> 0x003A9C58 +*/ +// Range: 0x3A9C30 -> 0x3A9C58 +void Destroy(class zNPCDutchman * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A9C30 -> 0x3A9C58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003A9C60 -> 0x003AA41C +*/ +// Range: 0x3A9C60 -> 0x3AA41C +void Reset(class zNPCDutchman * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3A9C60 -> 0x3AA41C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AA420 -> 0x003AA428 +*/ +// Range: 0x3AA420 -> 0x3AA428 +void Setup(class zNPCDutchman * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AA420 -> 0x3AA428 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AA430 -> 0x003AA68C +*/ +// Range: 0x3AA430 -> 0x3AA68C +void Init(class zNPCDutchman * this /* r19 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AA430 -> 0x3AA68C + char * scorch_name[2]; // r29+0x58 + signed int i; // r18 + class RwTexture * laser_texture; // r2 + signed int model_index; // r3 + class xModelInstance * m; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AA690 -> 0x003AA708 +*/ +// Range: 0x3AA690 -> 0x3AA708 +void * __ct(class zNPCDutchman * this /* r16 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AA690 -> 0x3AA708 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AA710 -> 0x003AAD80 +*/ +// Range: 0x3AA710 -> 0x3AAD80 +class xAnimTable * ZNPC_AnimTable_Dutchman() { + // Blocks + /* anonymous block */ { + // Range: 0x3AA710 -> 0x3AAD80 + class xAnimTable * table; // r16 + signed int ourAnims[13]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AAD80 -> 0x003AB048 +*/ +// Range: 0x3AAD80 -> 0x3AB048 +static float look_at(class xMat3x3 & mat /* r2 */, class xVec3 & at /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AAD80 -> 0x3AB048 + float mag; // r29+0x20 + float ax; // r3 + float ay; // r2 + float az; // r1 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeDutchman.h b/dwarf/SB/Game/zNPCTypeDutchman.h new file mode 100644 index 000000000..8cc5d183a --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeDutchman.h @@ -0,0 +1,98 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB050 -> 0x003AB058 +*/ +// Range: 0x3AB050 -> 0x3AB058 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3AB050 -> 0x3AB058 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB060 -> 0x003AB068 +*/ +// Range: 0x3AB060 -> 0x3AB068 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3AB060 -> 0x3AB068 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB070 -> 0x003AB078 +*/ +// Range: 0x3AB070 -> 0x3AB078 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3AB070 -> 0x3AB078 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB080 -> 0x003AB088 +*/ +// Range: 0x3AB080 -> 0x3AB088 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3AB080 -> 0x3AB088 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB090 -> 0x003AB098 +*/ +// Range: 0x3AB090 -> 0x3AB098 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3AB090 -> 0x3AB098 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB0A0 -> 0x003AB0AC +*/ +// Range: 0x3AB0A0 -> 0x3AB0AC +signed int IsAlive(class zNPCDutchman * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AB0A0 -> 0x3AB0AC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeDutchman.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003AB0B0 -> 0x003AB0B8 +*/ +// Range: 0x3AB0B0 -> 0x3AB0B8 +class zNPCLassoInfo * PRIV_GetLassoData(class zNPCDutchman * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3AB0B0 -> 0x3AB0B8 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeKingJelly.cpp b/dwarf/SB/Game/zNPCTypeKingJelly.cpp new file mode 100644 index 000000000..977888b7d --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeKingJelly.cpp @@ -0,0 +1,5125 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * sound_name[11][3]; // size: 0x84, address: 0x4E0AC0 +static unsigned char sound_flags[11]; // size: 0xB, address: 0x501738 +static class tweak_group tweak; // size: 0x298, address: 0x5E26D0 +static class xBinaryCamera boss_cam; // size: 0x70, address: 0x4E0B50 +static class sound_data_type sound_data[11]; // size: 0x108, address: 0x5E2970 +static unsigned char tentacle_bone[7][4]; // size: 0x1C, address: 0x501750 +static signed int bored_anims[2]; // size: 0x8, address: 0x501770 +static class zParEmitter * spawn_emitter; // size: 0x4, address: 0x510168 +static class xParEmitterCustomSettings spawn_emitter_settings; // size: 0x16C, address: 0x5E2A80 +static class zParEmitter * zap_emitter; // size: 0x4, address: 0x51016C +static class xParEmitterCustomSettings zap_emitter_settings; // size: 0x16C, address: 0x5E2BF0 +static class zParEmitter * shock_ring_emitter; // size: 0x4, address: 0x510170 +static class xParEmitterCustomSettings shock_ring_emitter_settings; // size: 0x16C, address: 0x5E2D60 +static class zParEmitter * thump_ring_emitter; // size: 0x4, address: 0x510174 +static class xParEmitterCustomSettings thump_ring_emitter_settings; // size: 0x16C, address: 0x5E2ED0 +static class xVec3 ring_segments[64]; // size: 0x300, address: 0x5E3040 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__15zNPCGoalKJDeath; // size: 0x34, address: 0x50CD20 +unsigned int g_hash_subbanim[23]; // size: 0x5C, address: 0x5DE4D0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void expand_ring_update(class lightning_ring &, float); // size: 0x0, address: 0x34A020 +void updown_ring_update(class lightning_ring &, float); // size: 0x0, address: 0x34A120 +class NPCSndTrax g_sndTrax_KingJelly[]; // size: 0x0, address: 0x5CF9F8 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +struct /* @anon0 */ { + // total size: 0xCC +} __vt__13zNPCKingJelly; // size: 0xCC, address: 0x50CEE0 +struct /* @anon4 */ { + // total size: 0xCC +} __vt__11zNPCSubBoss; // size: 0xCC, address: 0x50C5F0 +struct /* @anon1 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon7 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +char * g_strz_subbanim[23]; // size: 0x5C, address: 0x4E06C0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon9 */ { + // total size: 0x34 +} __vt__16zNPCGoalKJDamage; // size: 0x34, address: 0x50CD60 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__21zNPCGoalKJShockGround; // size: 0x34, address: 0x50CDA0 +struct /* @anon10 */ { + // total size: 0x34 +} __vt__15zNPCGoalKJTaunt; // size: 0x34, address: 0x50CDE0 +struct /* @anon6 */ { + // total size: 0x34 +} __vt__19zNPCGoalKJSpawnKids; // size: 0x34, address: 0x50CE20 +struct /* @anon2 */ { + // total size: 0x34 +} __vt__15zNPCGoalKJBored; // size: 0x34, address: 0x50CE60 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__14zNPCGoalKJIdle; // size: 0x34, address: 0x50CEA0 +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zNPCKingJelly : public zNPCSubBoss { + // total size: 0x10B8 +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char moreFlags; // offset 0x0, size 0x1 + } old; // offset 0x2B4, size 0x1 + class /* @class */ { + // total size: 0x5 + public: + unsigned char fighting; // offset 0x0, size 0x1 + unsigned char died; // offset 0x1, size 0x1 + unsigned char charging; // offset 0x2, size 0x1 + unsigned char stop_moving; // offset 0x3, size 0x1 + unsigned char updated; // offset 0x4, size 0x1 + } flag; // offset 0x2B5, size 0x5 + signed int round; // offset 0x2BC, size 0x4 + signed int attack; // offset 0x2C0, size 0x4 + signed int life; // offset 0x2C4, size 0x4 + unsigned int player_life; // offset 0x2C8, size 0x4 + signed int show_vertex; // offset 0x2CC, size 0x4 + unsigned char enabled; // offset 0x2D0, size 0x1 + enum shockstate_enum shockstate; // offset 0x2D4, size 0x4 + float spawn_particle_vel; // offset 0x2D8, size 0x4 + class xModelInstance * submodel[4]; // offset 0x2DC, size 0x10 + class /* @class */ { + // total size: 0x10 + public: + unsigned char active; // offset 0x0, size 0x1 + signed int count; // offset 0x4, size 0x4 + float intensity; // offset 0x8, size 0x4 + float delay; // offset 0xC, size 0x4 + } blink; // offset 0x2EC, size 0x10 + class /* @class */ { + // total size: 0x10 + public: + float last_yaw; // offset 0x0, size 0x4 + class xVec3 last_target; // offset 0x4, size 0xC + } camera; // offset 0x2FC, size 0x10 + class child_data children[32]; // offset 0x30C, size 0x580 + unsigned int children_size; // offset 0x88C, size 0x4 + float last_tentacle_shock; // offset 0x890, size 0x4 + class zLightning * tentacle_lightning[7]; // offset 0x894, size 0x1C + class xVec3 tentacle_points[7][13]; // offset 0x8B0, size 0x444 + class lightning_ring ambient_rings[3]; // offset 0xCF4, size 0x18C + class lightning_ring wave_rings[4]; // offset 0xE80, size 0x210 + unsigned char disable_tentacle_damage; // offset 0x1090, size 0x1 + float next_pulse; // offset 0x1094, size 0x4 + float last_pulse; // offset 0x1098, size 0x4 + class zEnt * curtain_ent; // offset 0x109C, size 0x4 + class xModelInstance * curtain_model[5]; // offset 0x10A0, size 0x14 + unsigned char first_update; // offset 0x10B4, size 0x1 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class sound_data_type { + // total size: 0x18 +public: + unsigned int id[2]; // offset 0x0, size 0x8 + unsigned char delayed; // offset 0x8, size 0x1 + signed char amount; // offset 0x9, size 0x1 + signed char playing; // offset 0xA, size 0x1 + float time; // offset 0xC, size 0x4 + unsigned int handle; // offset 0x10, size 0x4 + class xVec3 * loc; // offset 0x14, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class unit_type { + // total size: 0x1C +public: + float radius_offset; // offset 0x0, size 0x4 + float height_offset; // offset 0x4, size 0x4 + unsigned char line; // offset 0x8, size 0x1 + float thickness; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + float rot_radius; // offset 0x14, size 0x4 + float degrees; // offset 0x18, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zNPCGoalKJIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + float attack_delay; // offset 0x4C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zNPCJelly : public zNPCAmbient { + // total size: 0x2B0 +public: + signed int cnt_angerLevel; // offset 0x2A0, size 0x4 + signed int hitpoints; // offset 0x2A4, size 0x4 + float tmr_pulseAlpha; // offset 0x2A8, size 0x4 + class zNPCCommon * npc_daddyJelly; // offset 0x2AC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + signed int i; // offset 0x0, size 0x4 + signed int j; // offset 0x4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zNPCGoalKJShockGround : public zNPCGoalCommon { + // total size: 0x54 +public: + float delay; // offset 0x4C, size 0x4 + signed int strikes; // offset 0x50, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +struct /* @anon0 */ { + // total size: 0xCC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zNPCGoalKJSpawnKids : public zNPCGoalCommon { + // total size: 0x60 +public: + float delay; // offset 0x4C, size 0x4 + signed int cycle; // offset 0x50, size 0x4 + unsigned char spawned; // offset 0x54, size 0x1 + unsigned char spewed; // offset 0x55, size 0x1 + signed int child_count; // offset 0x58, size 0x4 + signed int spawn_count; // offset 0x5C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + float duration; // offset 0x0, size 0x4 + signed int amount; // offset 0x4, size 0x4 + float drop_off; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float r; // offset 0x0, size 0x4 + float g; // offset 0x4, size 0x4 + float b; // offset 0x8, size 0x4 + float a; // offset 0xC, size 0x4 + } color; // offset 0xC, size 0x10 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class lightning_ring { + // total size: 0x84 +public: + unsigned char active; // offset 0x0, size 0x1 + class xVec3 center; // offset 0x4, size 0xC + float segment_length; // offset 0x10, size 0x4 + float min_height; // offset 0x14, size 0x4 + float max_height; // offset 0x18, size 0x4 + float min_radius; // offset 0x1C, size 0x4 + float max_radius; // offset 0x20, size 0x4 + float delay; // offset 0x24, size 0x4 + float accel; // offset 0x28, size 0x4 + float max_vel; // offset 0x2C, size 0x4 + float width; // offset 0x30, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float time; // offset 0x10, size 0x4 + } current; // offset 0x34, size 0x14 + class /* @class */ { + // total size: 0x14 + public: + unsigned char line; // offset 0x0, size 0x1 + float thickness; // offset 0x4, size 0x4 + class iColor_tag color; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + float degrees; // offset 0x10, size 0x4 + } property; // offset 0x48, size 0x14 + class zLightning * arcs[8]; // offset 0x5C, size 0x20 + unsigned int arcs_size; // offset 0x7C, size 0x4 + void (* update_callback)(class lightning_ring &, float); // offset 0x80, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned short model; // offset 0x0, size 0x2 + unsigned char pflags; // offset 0x2, size 0x1 + unsigned char moreFlags; // offset 0x3, size 0x1 + unsigned char flg_colCheck; // offset 0x4, size 0x1 + unsigned char flg_penCheck; // offset 0x5, size 0x1 + unsigned char chkby; // offset 0x6, size 0x1 + unsigned char penby; // offset 0x7, size 0x1 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0xCC +}; +class /* @class */ { + // total size: 0x14 +public: + float volume; // offset 0x0, size 0x4 + float delay; // offset 0x4, size 0x4 + float radius_inner; // offset 0x8, size 0x4 + float radius_outer; // offset 0xC, size 0x4 + signed int priority; // offset 0x10, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class /* @class */ { + // total size: 0x10 +public: + float r; // offset 0x0, size 0x4 + float g; // offset 0x4, size 0x4 + float b; // offset 0x8, size 0x4 + float a; // offset 0xC, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zNPCGoalKJBored : public zNPCGoalCommon { + // total size: 0x4C +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class zNPCSubBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0x34 +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class child_data { + // total size: 0x2C +public: + class zNPCCommon * npc; // offset 0x0, size 0x4 + unsigned char wave; // offset 0x4, size 0x1 + unsigned char active; // offset 0x5, size 0x1 + class /* @class */ { + // total size: 0x1C + public: + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0x0, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x4, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x8, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0xC, size 0x4 + void (* render)(class xEnt *); // offset 0x10, size 0x4 + void (* updateTimerFunc)(class xEnt *); // offset 0x14, size 0x4 + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0x18, size 0x4 + } callback; // offset 0x8, size 0x1C + class /* @class */ { + // total size: 0x8 + public: + unsigned short model; // offset 0x0, size 0x2 + unsigned char pflags; // offset 0x2, size 0x1 + unsigned char moreFlags; // offset 0x3, size 0x1 + unsigned char flg_colCheck; // offset 0x4, size 0x1 + unsigned char flg_penCheck; // offset 0x5, size 0x1 + unsigned char chkby; // offset 0x6, size 0x1 + unsigned char penby; // offset 0x7, size 0x1 + } flags; // offset 0x24, size 0x8 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zNPCGoalKJDamage : public zNPCGoalCommon { + // total size: 0x4C +}; +class /* @class */ { + // total size: 0x34 +public: + float radius; // offset 0x0, size 0x4 + float min_height; // offset 0x4, size 0x4 + float max_height; // offset 0x8, size 0x4 + float speed; // offset 0xC, size 0x4 + float segment_length; // offset 0x10, size 0x4 + float thickness; // offset 0x14, size 0x4 + class iColor_tag color; // offset 0x18, size 0x4 + float knock_back; // offset 0x1C, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + float radius; // offset 0x0, size 0x4 + float max_height; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 + float thickness; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + } charge; // offset 0x20, size 0x14 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zNPCGoalKJTaunt : public zNPCGoalCommon { + // total size: 0x4C +}; +class xModelAssetParam { + // total size: 0x0 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char moreFlags; // offset 0x0, size 0x1 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class tweak_group { + // total size: 0x298 +public: + void * context; // offset 0x0, size 0x4 + class tweak_callback * cb_fade_obstructions; // offset 0x4, size 0x4 + class tweak_callback * cb_ambient_ring; // offset 0x8, size 0x4 + signed int max_life; // offset 0xC, size 0x4 + float min_dist; // offset 0x10, size 0x4 + float move_radius; // offset 0x14, size 0x4 + float vel_decay; // offset 0x18, size 0x4 + float repel_radius; // offset 0x1C, size 0x4 + float repel_radius_ground; // offset 0x20, size 0x4 + float fade_obstructions; // offset 0x24, size 0x4 + float music_fade; // offset 0x28, size 0x4 + float music_fade_delay; // offset 0x2C, size 0x4 + class /* @class */ { + // total size: 0x1C + public: + float duration; // offset 0x0, size 0x4 + signed int amount; // offset 0x4, size 0x4 + float drop_off; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float r; // offset 0x0, size 0x4 + float g; // offset 0x4, size 0x4 + float b; // offset 0x8, size 0x4 + float a; // offset 0xC, size 0x4 + } color; // offset 0xC, size 0x10 + } blink; // offset 0x30, size 0x1C + class /* @class */ { + // total size: 0x1C + public: + float variance; // offset 0x0, size 0x4 + float attack[3]; // offset 0x4, size 0xC + float warm_up; // offset 0x10, size 0x4 + float release; // offset 0x14, size 0x4 + float cool_down; // offset 0x18, size 0x4 + } interval; // offset 0x4C, size 0x1C + class /* @class */ { + // total size: 0x24 + public: + signed int cycles; // offset 0x0, size 0x4 + float voffset; // offset 0x4, size 0x4 + float hoffset; // offset 0x8, size 0x4 + float delay; // offset 0xC, size 0x4 + float fall_time; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float speed; // offset 0x0, size 0x4 + float drop_off; // offset 0x4, size 0x4 + float delay; // offset 0x8, size 0x4 + float voffset; // offset 0xC, size 0x4 + } spew; // offset 0x14, size 0x10 + } spawn; // offset 0x68, size 0x24 + class wave_ring_type wave_ring; // offset 0x8C, size 0xA0 + class /* @class */ { + // total size: 0x34 + public: + float radius; // offset 0x0, size 0x4 + float min_height; // offset 0x4, size 0x4 + float max_height; // offset 0x8, size 0x4 + float speed; // offset 0xC, size 0x4 + float segment_length; // offset 0x10, size 0x4 + float thickness; // offset 0x14, size 0x4 + class iColor_tag color; // offset 0x18, size 0x4 + float knock_back; // offset 0x1C, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + float radius; // offset 0x0, size 0x4 + float max_height; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 + float thickness; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + } charge; // offset 0x20, size 0x14 + } ambient_ring; // offset 0x12C, size 0x34 + class /* @class */ { + // total size: 0x38 + public: + float thickness; // offset 0x0, size 0x4 + float rand_radius; // offset 0x4, size 0x4 + float rot_radius; // offset 0x8, size 0x4 + float move_degrees; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 + float time; // offset 0x18, size 0x4 + signed int max; // offset 0x1C, size 0x4 + float particles; // offset 0x20, size 0x4 + float knock_back; // offset 0x24, size 0x4 + float damage_width; // offset 0x28, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float thickness; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + } charge; // offset 0x2C, size 0xC + } tentacle; // offset 0x160, size 0x38 + class /* @class */ { + // total size: 0x24 + public: + float delay; // offset 0x0, size 0x4 + signed int rings; // offset 0x4, size 0x4 + float voffset; // offset 0x8, size 0x4 + float particles; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 + float width; // offset 0x14, size 0x4 + float vel; // offset 0x18, size 0x4 + float particle_drop_off; // offset 0x1C, size 0x4 + float vel_drop_off; // offset 0x20, size 0x4 + } thump; // offset 0x198, size 0x24 + class /* @class */ { + // total size: 0x14 + public: + float volume; // offset 0x0, size 0x4 + float delay; // offset 0x4, size 0x4 + float radius_inner; // offset 0x8, size 0x4 + float radius_outer; // offset 0xC, size 0x4 + signed int priority; // offset 0x10, size 0x4 + } sound[11]; // offset 0x1BC, size 0xDC +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char active; // offset 0x0, size 0x1 + signed int count; // offset 0x4, size 0x4 + float intensity; // offset 0x8, size 0x4 + float delay; // offset 0xC, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + float variance; // offset 0x0, size 0x4 + float attack[3]; // offset 0x4, size 0xC + float warm_up; // offset 0x10, size 0x4 + float release; // offset 0x14, size 0x4 + float cool_down; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float time; // offset 0x10, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float max_height; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 + float thickness; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x5 +public: + unsigned char fighting; // offset 0x0, size 0x1 + unsigned char died; // offset 0x1, size 0x1 + unsigned char charging; // offset 0x2, size 0x1 + unsigned char stop_moving; // offset 0x3, size 0x1 + unsigned char updated; // offset 0x4, size 0x1 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xParSys { + // total size: 0x0 +}; +class RyzMemData { + // total size: 0x1 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0xCC +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float last_yaw; // offset 0x0, size 0x4 + class xVec3 last_target; // offset 0x4, size 0xC +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + unsigned char line; // offset 0x0, size 0x1 + float thickness; // offset 0x4, size 0x4 + class iColor_tag color; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + float degrees; // offset 0x10, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x24 +public: + signed int cycles; // offset 0x0, size 0x4 + float voffset; // offset 0x4, size 0x4 + float hoffset; // offset 0x8, size 0x4 + float delay; // offset 0xC, size 0x4 + float fall_time; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float speed; // offset 0x0, size 0x4 + float drop_off; // offset 0x4, size 0x4 + float delay; // offset 0x8, size 0x4 + float voffset; // offset 0xC, size 0x4 + } spew; // offset 0x14, size 0x10 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class zNPCAmbient : public zNPCCommon { + // total size: 0x2A0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class zNPCGoalKJDeath : public zNPCGoalCommon { + // total size: 0x4C +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x38 +public: + float thickness; // offset 0x0, size 0x4 + float rand_radius; // offset 0x4, size 0x4 + float rot_radius; // offset 0x8, size 0x4 + float move_degrees; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 + float time; // offset 0x18, size 0x4 + signed int max; // offset 0x1C, size 0x4 + float particles; // offset 0x20, size 0x4 + float knock_back; // offset 0x24, size 0x4 + float damage_width; // offset 0x28, size 0x4 + class /* @class */ { + // total size: 0xC + public: + float thickness; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + } charge; // offset 0x2C, size 0xC +}; +struct /* @anon6 */ { + // total size: 0x34 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class /* @class */ { + // total size: 0x10 +public: + float speed; // offset 0x0, size 0x4 + float drop_off; // offset 0x4, size 0x4 + float delay; // offset 0x8, size 0x4 + float voffset; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum shockstate_enum { + SS_START = 0, + SS_WARM_UP = 1, + SS_RELEASE = 2, + SS_COOL_DOWN = 3, + SS_STOP = 4, + MAX_SS = 5, +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class rxReq { + // total size: 0x0 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float thickness; // offset 0x0, size 0x4 + class iColor_tag color; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +struct /* @anon7 */ { + // total size: 0x54 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class wave_ring_type { + // total size: 0xA0 +public: + float min_radius; // offset 0x0, size 0x4 + float max_radius; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float fade_time; // offset 0xC, size 0x4 + float max_vel; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + float segment_length; // offset 0x18, size 0x4 + float particle_height; // offset 0x1C, size 0x4 + float particles; // offset 0x20, size 0x4 + float damage_height; // offset 0x24, size 0x4 + float damage_width; // offset 0x28, size 0x4 + float knock_back; // offset 0x2C, size 0x4 + class unit_type unit[4]; // offset 0x30, size 0x70 +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +struct /* @anon9 */ { + // total size: 0x34 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +struct /* @anon10 */ { + // total size: 0x34 +}; +class /* @class */ { + // total size: 0x1C +public: + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0x0, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x4, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x8, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0xC, size 0x4 + void (* render)(class xEnt *); // offset 0x10, size 0x4 + void (* updateTimerFunc)(class xEnt *); // offset 0x14, size 0x4 + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0x18, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class /* @class */ { + // total size: 0x24 +public: + float delay; // offset 0x0, size 0x4 + signed int rings; // offset 0x4, size 0x4 + float voffset; // offset 0x8, size 0x4 + float particles; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 + float width; // offset 0x14, size 0x4 + float vel; // offset 0x18, size 0x4 + float particle_drop_off; // offset 0x1C, size 0x4 + float vel_drop_off; // offset 0x20, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C4B0 -> 0x0033C4B8 +*/ +// Range: 0x33C4B0 -> 0x33C4B8 +signed int Process(class zNPCGoalKJDeath * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C4B0 -> 0x33C4B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C4C0 -> 0x0033C4C8 +*/ +// Range: 0x33C4C0 -> 0x33C4C8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x33C4C0 -> 0x33C4C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C4D0 -> 0x0033C570 +*/ +// Range: 0x33C4D0 -> 0x33C570 +signed int Enter(class zNPCGoalKJDeath * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C4D0 -> 0x33C570 + class zNPCKingJelly & kj; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C570 -> 0x0033C64C +*/ +// Range: 0x33C570 -> 0x33C64C +signed int Process(class zNPCGoalKJDamage * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C570 -> 0x33C64C + class zNPCKingJelly & kj; // r16 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C650 -> 0x0033C6AC +*/ +// Range: 0x33C650 -> 0x33C6AC +signed int Exit(class zNPCGoalKJDamage * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C650 -> 0x33C6AC + class zNPCKingJelly & kj; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C6B0 -> 0x0033C94C +*/ +// Range: 0x33C6B0 -> 0x33C94C +signed int Enter(class zNPCGoalKJDamage * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C6B0 -> 0x33C94C + class zNPCKingJelly & kj; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033C950 -> 0x0033CB74 +*/ +// Range: 0x33C950 -> 0x33CB74 +enum shockstate_enum update_cool_down(class zNPCGoalKJShockGround * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33C950 -> 0x33CB74 + class zNPCKingJelly & kj; // r18 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033CB80 -> 0x0033CE64 +*/ +// Range: 0x33CB80 -> 0x33CE64 +enum shockstate_enum update_warm_up(class zNPCGoalKJShockGround * this /* r19 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33CB80 -> 0x33CE64 + class zNPCKingJelly & kj; // r16 + float charge_frac; // r29+0x80 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033CE70 -> 0x0033D0D0 +*/ +// Range: 0x33CE70 -> 0x33D0D0 +signed int Process(class zNPCGoalKJShockGround * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33CE70 -> 0x33D0D0 + class zNPCKingJelly & kj; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033D0D0 -> 0x0033D168 +*/ +// Range: 0x33D0D0 -> 0x33D168 +signed int Exit(class zNPCGoalKJShockGround * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33D0D0 -> 0x33D168 + class zNPCKingJelly & kj; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033D170 -> 0x0033D314 +*/ +// Range: 0x33D170 -> 0x33D314 +signed int Enter(class zNPCGoalKJShockGround * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33D170 -> 0x33D314 + class zNPCKingJelly & kj; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033D320 -> 0x0033D3E4 +*/ +// Range: 0x33D320 -> 0x33D3E4 +signed int Process(class zNPCGoalKJTaunt * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33D320 -> 0x33D3E4 + class zNPCKingJelly & kj; // r20 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033D3F0 -> 0x0033D3F8 +*/ +// Range: 0x33D3F0 -> 0x33D3F8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x33D3F0 -> 0x33D3F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033D400 -> 0x0033D694 +*/ +// Range: 0x33D400 -> 0x33D694 +signed int Enter(class zNPCGoalKJTaunt * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33D400 -> 0x33D694 + class zNPCKingJelly & kj; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033D6A0 -> 0x0033DAA0 +*/ +// Range: 0x33D6A0 -> 0x33DAA0 +signed int Process(class zNPCGoalKJSpawnKids * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33D6A0 -> 0x33DAA0 + class zNPCKingJelly & kj; // r17 + signed int amount; // r16 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033DAA0 -> 0x0033DAF8 +*/ +// Range: 0x33DAA0 -> 0x33DAF8 +signed int Exit(class zNPCGoalKJSpawnKids * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33DAA0 -> 0x33DAF8 + class zNPCKingJelly & kj; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033DB00 -> 0x0033DB60 +*/ +// Range: 0x33DB00 -> 0x33DB60 +signed int Enter(class zNPCGoalKJSpawnKids * this /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33DB00 -> 0x33DB60 + class zNPCKingJelly & kj; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033DB60 -> 0x0033DC64 +*/ +// Range: 0x33DB60 -> 0x33DC64 +signed int Process(class zNPCGoalKJBored * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33DB60 -> 0x33DC64 + class zNPCKingJelly & kj; // r16 + class xAnimState * anim; // r2 + unsigned char found; // r7 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033DC70 -> 0x0033DC78 +*/ +// Range: 0x33DC70 -> 0x33DC78 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x33DC70 -> 0x33DC78 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033DC80 -> 0x0033DF14 +*/ +// Range: 0x33DC80 -> 0x33DF14 +signed int Enter(class zNPCGoalKJBored * this /* r20 */, float dt /* r20 */, void * updCtxt /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33DC80 -> 0x33DF14 + class zNPCKingJelly & kj; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033DF20 -> 0x0033E590 +*/ +// Range: 0x33DF20 -> 0x33E590 +void move(class zNPCGoalKJIdle * this /* r2 */, float dt /* r29+0x170 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33DF20 -> 0x33E590 + class zNPCKingJelly & kj; // r5 + class xMat4x3 & imat; // r4 + class xVec3 & target; // r8 + class xVec3 & vel; // r3 + class xVec3 offset; // r29+0x160 + float dist; // r5 + class xVec3 dir; // r29+0x150 + float maxvel; // r1 + float a; // r6 + class xVec3 newvel; // r29+0x140 + float frac; // r5 + class xVec3 displace; // r29+0x130 + float maxdist; // r7 + float edgedist; // r5 + float edgedist2; // r3 + class xVec3 dir; // r29+0x120 + float frac; // r7 + class xVec3 dir; // r29+0x110 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033E590 -> 0x0033E83C +*/ +// Range: 0x33E590 -> 0x33E83C +signed int Process(class zNPCGoalKJIdle * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33E590 -> 0x33E83C + class zNPCKingJelly & kj; // r16 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033E840 -> 0x0033E8A0 +*/ +// Range: 0x33E840 -> 0x33E8A0 +signed int Exit(class zNPCGoalKJIdle * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33E840 -> 0x33E8A0 + class zNPCKingJelly & kj; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033E8A0 -> 0x0033EA68 +*/ +// Range: 0x33E8A0 -> 0x33EA68 +signed int Enter(class zNPCGoalKJIdle * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33E8A0 -> 0x33EA68 + class zNPCKingJelly & kj; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033EA70 -> 0x0033EC00 +*/ +// Range: 0x33EA70 -> 0x33EC00 +void update_blink(class zNPCKingJelly * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33EA70 -> 0x33EC00 + float max_delay; // r2 + float ii; // r4 + float i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033EC00 -> 0x0033F5C4 +*/ +// Range: 0x33EC00 -> 0x33F5C4 +void update_charge(class zNPCKingJelly * this /* r2 */, float frac /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33EC00 -> 0x33F5C4 + float thickness; // r29+0x20 + class iColor_tag color; // r29+0x1C + signed int i; // r13 + class zLightning * & zap; // r12 + signed int j; // r11 + float radius; // r3 + float max_height; // r2 + float speed; // r1 + float thickness; // r29+0x20 + class iColor_tag color; // r29+0x18 + signed int i; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033F5D0 -> 0x0033F7D0 +*/ +// Range: 0x33F5D0 -> 0x33F7D0 +void start_charge(class zNPCKingJelly * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33F5D0 -> 0x33F7D0 + signed int i; // r18 + class zLightning * & zap; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033F7D0 -> 0x0033F968 +*/ +// Range: 0x33F7D0 -> 0x33F968 +void generate_thump_particles(class zNPCKingJelly * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33F7D0 -> 0x33F968 + class xParEmitterCustomSettings & s; // r17 + float iring; // r10 + float drate; // r20 + float dvel; // r22 + float dradius; // r21 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033F970 -> 0x0033FC80 +*/ +// Range: 0x33F970 -> 0x33FC80 +void generate_ring_particles(class lightning_ring & ring /* r2 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33F970 -> 0x33FC80 + float amount; // r20 + signed int ring_size; // r20 + signed int total; // r22 + signed int emitted; // r29+0xB0 + signed int j; // r19 + signed int particles; // r21 + class xVec3 offset; // r29+0x110 + signed int k; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033FC80 -> 0x0033FDF4 +*/ +// Range: 0x33FC80 -> 0x33FDF4 +void update_spawn_particles(class zNPCKingJelly * this /* r2 */, float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33FC80 -> 0x33FDF4 + float & amount; // r5 + float accel; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033FE00 -> 0x0033FFC0 +*/ +// Range: 0x33FE00 -> 0x33FFC0 +void create_wave_rings(class zNPCKingJelly * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33FE00 -> 0x33FFC0 + signed int i; // r9 + class lightning_ring & ring; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0033FFC0 -> 0x0034014C +*/ +// Range: 0x33FFC0 -> 0x34014C +void create_ambient_rings(class zNPCKingJelly * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x33FFC0 -> 0x34014C + signed int i; // r9 + class lightning_ring & ring; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340150 -> 0x00340304 +*/ +// Range: 0x340150 -> 0x340304 +void update_rings(class zNPCKingJelly * this /* r16 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340150 -> 0x340304 + class xVec3 & subloc; // r21 + class xVec3 & offset; // r20 + float bound_radius; // r22 + class xVec3 center; // r29+0x80 + signed int i; // r19 + class lightning_ring & ring; // r18 + signed int i; // r21 + class lightning_ring & ring; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340310 -> 0x0034048C +*/ +// Range: 0x340310 -> 0x34048C +void refresh_tentacle_points(class zNPCKingJelly * this /* r22 */, signed int which /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340310 -> 0x34048C + signed int j; // r21 + signed int j; // r12 + class xVec3 & start; // r11 + class xVec3 & end; // r10 + float pos; // r3 + signed int k; // r9 + class xVec3 & v; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340490 -> 0x00340784 +*/ +// Range: 0x340490 -> 0x340784 +void generate_zap_particles(class zLightning & zap /* r20 */, float amount /* r22 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340490 -> 0x340784 + float frac; // r21 + signed int total; // r22 + signed int emitted; // r29+0xB0 + signed int j; // r19 + signed int particles; // r21 + class xVec3 offset; // r29+0x110 + signed int k; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340790 -> 0x00340A28 +*/ +// Range: 0x340790 -> 0x340A28 +void update_tentacle_lightning(class zNPCKingJelly * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340790 -> 0x340A28 + signed int i; // r20 + class zLightning * & zap; // r19 + signed int i; // r18 + signed int pick_max; // r18 + unsigned int pick_mask; // r21 + signed int picked; // r17 + unsigned int i; // r4 + signed int i; // r20 + class zLightning * & zap; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340A30 -> 0x00340B74 +*/ +// Range: 0x340A30 -> 0x340B74 +class zLightning * new_tentacle_lightning(class xVec3 * points /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340A30 -> 0x340B74 + class _tagLightningAdd info; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340B80 -> 0x00340B88 +*/ +// Range: 0x340B80 -> 0x340B88 +void create_tentacle_lightning() { + // Blocks + /* anonymous block */ { + // Range: 0x340B80 -> 0x340B88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340B90 -> 0x00340D94 +*/ +// Range: 0x340B90 -> 0x340D94 +void decompose(class zNPCKingJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340B90 -> 0x340D94 + unsigned int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00340DA0 -> 0x003410E8 +*/ +// Range: 0x340DA0 -> 0x3410E8 +void start_fight(class zNPCKingJelly * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x340DA0 -> 0x3410E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003410F0 -> 0x00341148 +*/ +// Range: 0x3410F0 -> 0x341148 +void check_player_damage(class zNPCKingJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3410F0 -> 0x341148 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00341150 -> 0x003413D4 +*/ +// Range: 0x341150 -> 0x3413D4 +unsigned char apply_ambient_damage(class zNPCKingJelly * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x341150 -> 0x3413D4 + class xEnt & player; // r10 + class xVec3 center; // r29+0x70 + class xVec3 offset; // r29+0x60 + float r; // r29+0x80 + class xVec3 & player_vel; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003413E0 -> 0x00341674 +*/ +// Range: 0x3413E0 -> 0x341674 +unsigned char apply_wave_damage(class zNPCKingJelly * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3413E0 -> 0x341674 + class lightning_ring & ring; // r6 + class xVec3 & loc; // r2 + class xEnt & player; // r5 + class xSphere & o; // r3 + float lower; // r9 + float upper; // r8 + class xVec3 & player_vel; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00341680 -> 0x00341B00 +*/ +// Range: 0x341680 -> 0x341B00 +unsigned char apply_tentacle_damage(class zNPCKingJelly * this /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x341680 -> 0x341B00 + class xSphere o; // r29+0xC0 + class xVec3 v1; // r29+0x120 + class xVec3 v2; // r29+0x110 + class xEnt & player; // r20 + class xVec3 joint[2]; // r29+0xA0 + signed int i; // r19 + signed int j; // r18 + class xVec3 & player_vel; // r7 + class /* @class */ { + // total size: 0x8 + public: + signed int i; // offset 0x0, size 0x4 + signed int j; // offset 0x4, size 0x4 + } last_hit_at; // @ 0x0050F0E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00341B00 -> 0x00341CF8 +*/ +// Range: 0x341B00 -> 0x341CF8 +static unsigned char sphere_hits_line(class xSphere & o /* r2 */, class xVec3 & v1 /* r2 */, class xVec3 & v2 /* r2 */, float width /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x341B00 -> 0x341CF8 + class xVec3 d1; // r29+0x30 + class xVec3 d2; // r29+0x20 + float r; // r11 + float b; // r3 + float q; // r1 + float d; // r5 + float r1; // r3 + float r2; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00341D00 -> 0x00342090 +*/ +// Range: 0x341D00 -> 0x342090 +void repel_player(class zNPCKingJelly * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x341D00 -> 0x342090 + class xVec3 center; // r29+0x90 + class xVec3 & player_loc; // r3 + class xVec3 & player_vel; // r8 + class xVec3 offset; // r29+0x80 + float imag; // r6 + class xVec3 dir; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342090 -> 0x00342374 +*/ +// Range: 0x342090 -> 0x342374 +void spawn_children(class zNPCKingJelly * this /* r21 */, signed int wave /* r2 */, signed int count /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342090 -> 0x342374 + unsigned char active[32]; // r29+0xB0 + signed int total; // r19 + unsigned int i; // r7 + unsigned int i; // r3 + class child_data & child; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342380 -> 0x003424A8 +*/ +// Range: 0x342380 -> 0x3424A8 +void add_child(class zNPCKingJelly * this /* r18 */, class xBase & child /* r17 */, signed int wave /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342380 -> 0x3424A8 + unsigned int i; // r20 + unsigned int size; // r19 + class xBase * entry; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003424B0 -> 0x003425F8 +*/ +// Range: 0x3424B0 -> 0x3425F8 +void set_life(class zNPCKingJelly * this /* r17 */, signed int life /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3424B0 -> 0x3425F8 + signed int oldlife; // r16 + signed int state; // r2 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342600 -> 0x0034272C +*/ +// Range: 0x342600 -> 0x34272C +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342600 -> 0x34272C + signed int index; // r2 + unsigned int animID; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342730 -> 0x0034282C +*/ +// Range: 0x342730 -> 0x34282C +void Damage(class zNPCKingJelly * this /* r17 */, enum en_NPC_DAMAGE_TYPE damtype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342730 -> 0x34282C + signed int state; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342830 -> 0x00342928 +*/ +// Range: 0x342830 -> 0x342928 +void SelfSetup(class zNPCKingJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342830 -> 0x342928 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342930 -> 0x003429C0 +*/ +// Range: 0x342930 -> 0x3429C0 +void ParseLinks(class zNPCKingJelly * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342930 -> 0x3429C0 + class xLinkAsset * it; // r17 + class xLinkAsset * end; // r16 + class xBase * child; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003429C0 -> 0x00342A50 +*/ +// Range: 0x3429C0 -> 0x342A50 +void ParseINI(class zNPCKingJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3429C0 -> 0x342A50 + class tweak_callback cb_ambient_ring; // @ 0x004E0C20 + class tweak_callback cb_fade_obstructions; // @ 0x004E0BF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00342A50 -> 0x003485E4 +*/ +// Range: 0x342A50 -> 0x3485E4 +static void register_tweaks(class tweak_group * this /* r19 */, unsigned char init /* r18 */, class xModelAssetParam * ap /* r17 */, unsigned int apsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x342A50 -> 0x3485E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348650 -> 0x00348658 +*/ +// Range: 0x348650 -> 0x348658 +void RenderExtra() { + // Blocks + /* anonymous block */ { + // Range: 0x348650 -> 0x348658 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348660 -> 0x003486E4 +*/ +// Range: 0x348660 -> 0x3486E4 +signed int SysEvent(class zNPCKingJelly * this /* r2 */, class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */, signed int * handled /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x348660 -> 0x3486E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003486F0 -> 0x00348770 +*/ +// Range: 0x3486F0 -> 0x348770 +void BUpdate(class zNPCKingJelly * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3486F0 -> 0x348770 + class xVec3 & subloc; // r2 + class xVec3 loc; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348770 -> 0x00348B44 +*/ +// Range: 0x348770 -> 0x348B44 +void Process(class zNPCKingJelly * this /* r22 */, class xScene * xscn /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x348770 -> 0x348B44 + class xEnt * tub; // r2 + class xVec3 & vel; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348B50 -> 0x00348BBC +*/ +// Range: 0x348B50 -> 0x348BBC +void Destroy(class zNPCKingJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x348B50 -> 0x348BBC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348BC0 -> 0x00348FDC +*/ +// Range: 0x348BC0 -> 0x348FDC +void Reset(class zNPCKingJelly * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x348BC0 -> 0x348FDC + unsigned int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348FE0 -> 0x00349118 +*/ +// Range: 0x348FE0 -> 0x349118 +void Setup(class zNPCKingJelly * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x348FE0 -> 0x349118 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00349120 -> 0x0034916C +*/ +// Range: 0x349120 -> 0x34916C +void Init(class zNPCKingJelly * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x349120 -> 0x34916C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00349170 -> 0x003492B0 +*/ +// Range: 0x349170 -> 0x3492B0 +void * __ct(class zNPCKingJelly * this /* r22 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x349170 -> 0x3492B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003492B0 -> 0x00349BA8 +*/ +// Range: 0x3492B0 -> 0x349BA8 +class xAnimTable * ZNPC_AnimTable_KingJelly() { + // Blocks + /* anonymous block */ { + // Range: 0x3492B0 -> 0x349BA8 + class xAnimTable * table; // r16 + signed int ourAnims[11]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00349BB0 -> 0x0034A018 +*/ +// Range: 0x349BB0 -> 0x34A018 +void refresh(class lightning_ring * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x349BB0 -> 0x34A018 + class xVec3 center; // r29+0xE0 + signed int size; // r20 + signed int current_size; // r7 + unsigned int i; // r6 + signed int i; // r18 + class zLightning & arc; // r17 + signed int points; // r16 + float * it; // r4 + float * end; // r3 + unsigned int i; // r16 + signed int i; // r19 + signed int points; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A020 -> 0x0034A118 +*/ +// Range: 0x34A020 -> 0x34A118 +static void expand_ring_update(class lightning_ring & ring /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A020 -> 0x34A118 + float frac; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A120 -> 0x0034A1CC +*/ +// Range: 0x34A120 -> 0x34A1CC +static void updown_ring_update(class lightning_ring & ring /* r16 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A120 -> 0x34A1CC + float mag; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0034A1D0 -> 0x0034A4C8 +*/ +// Range: 0x34A1D0 -> 0x34A4C8 +static signed int set_ring_segments(class xVec3 & center /* r17 */, float radius /* r20 */, float segment_length /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x34A1D0 -> 0x34A4C8 + float pos; // r21 + signed int i; // r16 + signed int size; // r3 + class xVec3 * v; // r9 + class xVec3 * end; // r8 + signed int inc; // r3 + float * lsin; // r6 + float * lcos; // r5 + class xVec3 * v0; // r8 + class xVec3 * end; // r7 + class xVec3 * v1; // r4 + class xVec3 * v0; // r7 + class xVec3 * end; // r6 + class xVec3 * v1; // r5 + class xVec3 * v0; // r6 + class xVec3 * end; // r5 + class xVec3 * v1; // r4 + class xVec3 * v; // r4 + class xVec3 * end; // r3 + float cos_lookup[9]; // @ 0x005E3370 + float sin_lookup[9]; // @ 0x005E3340 + unsigned char sclookup_inited; // @ 0x00510178 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeKingJelly.h b/dwarf/SB/Game/zNPCTypeKingJelly.h new file mode 100644 index 000000000..f4377cd02 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeKingJelly.h @@ -0,0 +1,28 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348630 -> 0x00348638 +*/ +// Range: 0x348630 -> 0x348638 +void on_change_ambient_ring() { + // Blocks + /* anonymous block */ { + // Range: 0x348630 -> 0x348638 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeKingJelly.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00348640 -> 0x00348648 +*/ +// Range: 0x348640 -> 0x348648 +void on_change_fade_obstructions() { + // Blocks + /* anonymous block */ { + // Range: 0x348640 -> 0x348648 + } +} + diff --git a/dwarf/SB/Game/zNPCTypePrawn.cpp b/dwarf/SB/Game/zNPCTypePrawn.cpp new file mode 100644 index 000000000..8d0fa418b --- /dev/null +++ b/dwarf/SB/Game/zNPCTypePrawn.cpp @@ -0,0 +1,4853 @@ +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static char * sound_asset_names[4][6]; // size: 0x60, address: 0x5E4980 +static unsigned int sound_asset_ids[4][6]; // size: 0x60, address: 0x5E49E0 +static unsigned int sound_asset_names_size[4]; // size: 0x10, address: 0x5E4A40 +static class sound_data_type sound_data[4]; // size: 0x40, address: 0x5E4A50 +static class sound_asset sound_assets[14]; // size: 0xE0, address: 0x503D90 +static class tweak_group tweak; // size: 0x260, address: 0x5E4A90 +static class xBinaryCamera boss_cam; // size: 0x70, address: 0x4E0DA0 +static class television closeup; // size: 0x28, address: 0x5E4CF0 +static class zParEmitter * exhaust_emitter; // size: 0x4, address: 0x5101B4 +static class xParEmitterCustomSettings exhaust_emitter_settings; // size: 0x16C, address: 0x5E4D20 +struct /* @anon0 */ { + // total size: 0x34 +} __vt__18zNPCGoalPrawnDeath; // size: 0x34, address: 0x50D530 +unsigned int g_hash_subbanim[23]; // size: 0x5C, address: 0x5DE4D0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +struct /* @anon2 */ { + // total size: 0xCC +} __vt__9zNPCPrawn; // size: 0xCC, address: 0x50D670 +struct /* @anon7 */ { + // total size: 0xCC +} __vt__11zNPCSubBoss; // size: 0xCC, address: 0x50C5F0 +struct /* @anon4 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon6 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +char * g_strz_subbanim[23]; // size: 0x5C, address: 0x4E06C0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon8 */ { + // total size: 0x34 +} __vt__19zNPCGoalPrawnDamage; // size: 0x34, address: 0x50D570 +struct /* @anon5 */ { + // total size: 0x34 +} __vt__17zNPCGoalPrawnBowl; // size: 0x34, address: 0x50D5B0 +struct /* @anon1 */ { + // total size: 0x34 +} __vt__17zNPCGoalPrawnBeam; // size: 0x34, address: 0x50D5F0 +struct /* @anon3 */ { + // total size: 0x34 +} __vt__17zNPCGoalPrawnIdle; // size: 0x34, address: 0x50D630 +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum floor_state_enum { + FS_SAFE = 0, + FS_BEGIN = 1, + FS_BEAM = 2, + FS_AIM_LANE = 3, + FS_LANE = 4, + FS_DANGER = 5, +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class zone_data { + // total size: 0xC +public: + float distance; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + float height_focus; // offset 0x8, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class zNPCPrawn : public zNPCSubBoss { + // total size: 0x1550 +public: + class /* @class */ { + // total size: 0x1 + } flag; // offset 0x2B4, size 0x1 + signed int life; // offset 0x2B8, size 0x4 + signed int round; // offset 0x2BC, size 0x4 + unsigned char face_player; // offset 0x2C0, size 0x1 + class xVec2 look_dir; // offset 0x2C4, size 0x8 + class z_disco_floor * disco; // offset 0x2CC, size 0x4 + class zNPCSpawner * spawner[3]; // offset 0x2D0, size 0xC + unsigned int danger_mask; // offset 0x2DC, size 0x4 + enum floor_state_enum floor_state; // offset 0x2E0, size 0x4 + signed int floor_state_index; // offset 0x2E4, size 0x4 + unsigned int floor_state_counter; // offset 0x2E8, size 0x4 + float floor_time; // offset 0x2EC, size 0x4 + float delay; // offset 0x2F0, size 0x4 + unsigned char first_update; // offset 0x2F4, size 0x1 + unsigned char fighting; // offset 0x2F5, size 0x1 + class /* @class */ { + // total size: 0x1C + public: + unsigned char change; // offset 0x0, size 0x1 + enum floor_state_enum floor_state; // offset 0x4, size 0x4 + unsigned int counter; // offset 0x8, size 0x4 + class range_type pattern; // offset 0xC, size 0x8 + float transition_delay; // offset 0x14, size 0x4 + float state_delay; // offset 0x18, size 0x4 + } pending; // offset 0x2F8, size 0x1C + class /* @class */ { + // total size: 0x8 + public: + float sin_pitch; // offset 0x0, size 0x4 + float cos_pitch; // offset 0x4, size 0x4 + } precomp; // offset 0x314, size 0x8 + class /* @class */ { + // total size: 0xC + public: + float vel; // offset 0x0, size 0x4 + float accel; // offset 0x4, size 0x4 + float max_vel; // offset 0x8, size 0x4 + } turn; // offset 0x31C, size 0xC + class aqua_beam beam; // offset 0x330, size 0x1070 + class xVec3 closeup_loc[8][4]; // offset 0x13A0, size 0x180 + class xModelInstance * closeup_model[8]; // offset 0x1520, size 0x20 + unsigned int closeups_used; // offset 0x1540, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class aqua_beam { + // total size: 0x1070 +public: + class config cfg; // offset 0x0, size 0x3C + unsigned char firing; // offset 0x3C, size 0x1 + class xVec3 loc; // offset 0x40, size 0xC + class xVec3 dir; // offset 0x4C, size 0xC + class xMat4x3 mat; // offset 0x60, size 0x40 + float time; // offset 0xA0, size 0x4 + class /* @class */ { + // total size: 0xC20 + public: + class RpAtomic * model_data; // offset 0x0, size 0x4 + float emit_time; // offset 0x4, size 0x4 + class fixed_queue queue; // offset 0x10, size 0xC10 + } ring; // offset 0xB0, size 0xC20 + class /* @class */ { + // total size: 0x390 + public: + class squiggle_segment set[8]; // offset 0x0, size 0x380 + float alpha; // offset 0x380, size 0x4 + float scale; // offset 0x384, size 0x4 + } squiggle; // offset 0xCD0, size 0x390 + signed int ring_sounds; // offset 0x1060, size 0x4 +}; +class zNPCGoalPrawnBeam : public zNPCGoalCommon { + // total size: 0x5C +public: + enum substate_enum substate; // offset 0x4C, size 0x4 + signed int sweeps; // offset 0x50, size 0x4 + float sweep_dir; // offset 0x54, size 0x4 + float delay; // offset 0x58, size 0x4 +}; +class zNPCSpawner : public RyzMemData { + // total size: 0x1C4 +public: + signed int flg_spawner; // offset 0x0, size 0x4 + class zNPCCommon * npc_owner; // offset 0x4, size 0x4 + float tym_delay; // offset 0x8, size 0x4 + signed int max_spawn; // offset 0xC, size 0x4 + enum en_SM_WAVE_MODE wavemode; // offset 0x10, size 0x4 + enum en_SM_WAVE_STAT wavestat; // offset 0x14, size 0x4 + float tmr_wave; // offset 0x18, size 0x4 + signed int cnt_spawn; // offset 0x1C, size 0x4 + class SMSPStatus sppool[16]; // offset 0x20, size 0xC0 + class SMNPCStatus npcpool[16]; // offset 0xE0, size 0xC0 + class st_XORDEREDARRAY pendlist; // offset 0x1A0, size 0x10 + class st_XORDEREDARRAY actvlist; // offset 0x1B0, size 0x10 + signed int cnt_cleanup; // offset 0x1C0, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class config { + // total size: 0x3C +public: + float duration; // offset 0x0, size 0x4 + signed int sound_interval; // offset 0x4, size 0x4 + class /* @class */ { + // total size: 0x34 + public: + float size; // offset 0x0, size 0x4 + float alpha; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float emit_delay; // offset 0x10, size 0x4 + float grow; // offset 0x14, size 0x4 + float fade_dist; // offset 0x18, size 0x4 + float kill_dist; // offset 0x1C, size 0x4 + float follow; // offset 0x20, size 0x4 + float hit_radius; // offset 0x24, size 0x4 + class xVec3 hit_offset; // offset 0x28, size 0xC + } ring; // offset 0x8, size 0x34 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zNPCGoalPrawnDamage : public zNPCGoalCommon { + // total size: 0x4C +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class z_disco_floor : public xBase { + // total size: 0x98 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled; // offset 0x0, size 0x1 + unsigned char forward; // offset 0x1, size 0x1 + unsigned char culled; // offset 0x2, size 0x1 + unsigned char glow_culled; // offset 0x3, size 0x1 + } flag; // offset 0x10, size 0x4 + class z_disco_floor_asset * asset; // offset 0x14, size 0x4 + unsigned char * * state_masks; // offset 0x18, size 0x4 + unsigned char * active_state_mask; // offset 0x1C, size 0x4 + unsigned char * next_state_mask; // offset 0x20, size 0x4 + char * prefix[3]; // offset 0x24, size 0xC + class tile_data * tiles[3]; // offset 0x30, size 0xC + unsigned int tiles_size; // offset 0x3C, size 0x4 + unsigned int min_state; // offset 0x40, size 0x4 + unsigned int max_state; // offset 0x44, size 0x4 + unsigned int state; // offset 0x48, size 0x4 + unsigned int next_state; // offset 0x4C, size 0x4 + unsigned int state_counter; // offset 0x50, size 0x4 + float transition_delay; // offset 0x54, size 0x4 + float state_delay; // offset 0x58, size 0x4 + float transition_time; // offset 0x5C, size 0x4 + float state_time; // offset 0x60, size 0x4 + class xSphere bound; // offset 0x64, size 0x10 + float pulse_time; // offset 0x74, size 0x4 + float pulse_glow[3]; // offset 0x78, size 0xC + float cull_dist_glow; // offset 0x84, size 0x4 + float cull_dist_update; // offset 0x88, size 0x4 + float glow_fade; // offset 0x8C, size 0x4 + float sound_delay; // offset 0x90, size 0x4 + signed int curr_note; // offset 0x94, size 0x4 +}; +class fire_type : public config { + // total size: 0x54 +public: + signed int emit_bone; // offset 0x3C, size 0x4 + class xVec3 offset; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + float pitch; // offset 0x50, size 0x4 +}; +class zNPCGoalPrawnDeath : public zNPCGoalCommon { + // total size: 0x4C +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class tweak_group { + // total size: 0x260 +public: + float turn_accel; // offset 0x0, size 0x4 + float spawn_delay; // offset 0x4, size 0x4 + float repel_radius; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + class range_type pattern; // offset 0x0, size 0x8 + } safe; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + class range_type pattern; // offset 0x0, size 0x8 + float state_delay; // offset 0x8, size 0x4 + float transition_delay; // offset 0xC, size 0x4 + } begin; // offset 0x14, size 0x10 + class /* @class */ { + // total size: 0x94 + public: + float delay[3]; // offset 0x0, size 0xC + class range_type pattern; // offset 0xC, size 0x8 + float state_delay; // offset 0x14, size 0x4 + float transition_delay; // offset 0x18, size 0x4 + float exhaust_vel; // offset 0x1C, size 0x4 + float knock_back; // offset 0x20, size 0x4 + class /* @class */ { + // total size: 0x1C + public: + signed int amount[3]; // offset 0x0, size 0xC + float arc; // offset 0xC, size 0x4 + float delay; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 + } sweep; // offset 0x24, size 0x1C + class fire_type fire; // offset 0x40, size 0x54 + } beam; // offset 0x24, size 0x94 + class /* @class */ { + // total size: 0x1C + public: + float duration; // offset 0x0, size 0x4 + float state_delay; // offset 0x4, size 0x4 + float transition_delay; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + signed int first; // offset 0x0, size 0x4 + signed int range; // offset 0x4, size 0x4 + signed int offset; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 + } pattern; // offset 0xC, size 0x10 + } aim_lane; // offset 0xB8, size 0x1C + class /* @class */ { + // total size: 0x24 + public: + float duration[3]; // offset 0x0, size 0xC + float state_delay; // offset 0xC, size 0x4 + float transition_delay; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + signed int first; // offset 0x0, size 0x4 + signed int range; // offset 0x4, size 0x4 + signed int offset; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 + } pattern; // offset 0x14, size 0x10 + } lane; // offset 0xD4, size 0x24 + class /* @class */ { + // total size: 0xB4 + public: + float state_delay; // offset 0x0, size 0x4 + float transition_delay; // offset 0x4, size 0x4 + float cycle_delay; // offset 0x8, size 0x4 + signed int pattern_offset; // offset 0xC, size 0x4 + signed int pattern_size; // offset 0x10, size 0x4 + class range_type pattern[20]; // offset 0x14, size 0xA0 + } danger; // offset 0xF8, size 0xB4 + class sound_property sound[4]; // offset 0x1AC, size 0x60 + void * context; // offset 0x20C, size 0x4 + class tweak_callback cb_sound; // offset 0x210, size 0x28 + class tweak_callback cb_sound_asset; // offset 0x238, size 0x28 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0xC20 +public: + class RpAtomic * model_data; // offset 0x0, size 0x4 + float emit_time; // offset 0x4, size 0x4 + class fixed_queue queue; // offset 0x10, size 0xC10 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class /* @class */ { + // total size: 0xC +public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class tile_data { + // total size: 0x18 +public: + unsigned char culled; // offset 0x0, size 0x1 + class zEntSimpleObj * ent; // offset 0x4, size 0x4 + class xSphere sphere; // offset 0x8, size 0x10 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class sound_property { + // total size: 0x18 +public: + unsigned int asset; // offset 0x0, size 0x4 + float volume; // offset 0x4, size 0x4 + float range_inner; // offset 0x8, size 0x4 + float range_outer; // offset 0xC, size 0x4 + float delay; // offset 0x10, size 0x4 + float fade_time; // offset 0x14, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zEntSimpleObj { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum substate_enum { + SS_AIM = 0, + SS_FIRE = 1, + SS_HOLD = 2, + SS_SWEEP = 3, + SS_STOP = 4, + MAX_SS = 5, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class tweak_info { + // total size: 0x28 +public: + class substr name; // offset 0x0, size 0x8 + void * value; // offset 0x8, size 0x4 + class tweak_callback * cb; // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 + unsigned char type; // offset 0x14, size 0x1 + unsigned char value_size; // offset 0x15, size 0x1 + unsigned short flags; // offset 0x16, size 0x2 + union { // inferred + class /* @class */ { + // total size: 0xC + public: + signed int value_def; // offset 0x0, size 0x4 + signed int value_min; // offset 0x4, size 0x4 + signed int value_max; // offset 0x8, size 0x4 + } int_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 + } uint_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0xC + public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 + } float_context; // offset 0x18, size 0xC + class /* @class */ { + // total size: 0x1 + public: + unsigned char value_def; // offset 0x0, size 0x1 + } bool_context; // offset 0x18, size 0x1 + class /* @class */ { + // total size: 0x10 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 + } select_context; // offset 0x18, size 0x10 + class /* @class */ { + // total size: 0x8 + public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 + } flag_context; // offset 0x18, size 0x8 + class /* @class */ { + // total size: 0x10 + public: + unsigned char pad[16]; // offset 0x0, size 0x10 + } all_context; // offset 0x18, size 0x10 + }; +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class config { + // total size: 0x3C +public: + class zone_data zone_rest; // offset 0x0, size 0xC + class zone_data zone_above; // offset 0xC, size 0xC + class zone_data zone_below; // offset 0x18, size 0xC + float move_speed; // offset 0x24, size 0x4 + float turn_speed; // offset 0x28, size 0x4 + float stick_speed; // offset 0x2C, size 0x4 + float stick_yaw_vel; // offset 0x30, size 0x4 + float max_yaw_vel; // offset 0x34, size 0x4 + float margin_angle; // offset 0x38, size 0x4 +}; +class range_type { + // total size: 0x8 +public: + signed int min; // offset 0x0, size 0x4 + signed int max; // offset 0x4, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class iterator { + // total size: 0x8 +public: + unsigned int _it; // offset 0x0, size 0x4 + class fixed_queue * _owner; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class sound_data_type { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned int handle; // offset 0x4, size 0x4 + class xVec3 * loc; // offset 0x8, size 0x4 + float volume; // offset 0xC, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +struct /* @anon0 */ { + // total size: 0x34 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class z_disco_floor_asset : public xBaseAsset { + // total size: 0x2C +public: + unsigned int flags; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float transition; // offset 0x0, size 0x4 + float state; // offset 0x4, size 0x4 + } interval; // offset 0xC, size 0x8 + class /* @class */ { + // total size: 0xC + public: + unsigned int off; // offset 0x0, size 0x4 + unsigned int transition; // offset 0x4, size 0x4 + unsigned int on; // offset 0x8, size 0x4 + } prefix_offset; // offset 0x14, size 0xC + unsigned int state_mask_size; // offset 0x20, size 0x4 + unsigned int states_offset; // offset 0x24, size 0x4 + unsigned int states_size; // offset 0x28, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int value_min; // offset 0x4, size 0x4 + unsigned int value_max; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x34 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class /* @class */ { + // total size: 0x34 +public: + float size; // offset 0x0, size 0x4 + float alpha; // offset 0x4, size 0x4 + float vel; // offset 0x8, size 0x4 + float accel; // offset 0xC, size 0x4 + float emit_delay; // offset 0x10, size 0x4 + float grow; // offset 0x14, size 0x4 + float fade_dist; // offset 0x18, size 0x4 + float kill_dist; // offset 0x1C, size 0x4 + float follow; // offset 0x20, size 0x4 + float hit_radius; // offset 0x24, size 0x4 + class xVec3 hit_offset; // offset 0x28, size 0xC +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class sound_asset { + // total size: 0x10 +public: + signed int group; // offset 0x0, size 0x4 + char * name; // offset 0x4, size 0x4 + unsigned int priority; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class fixed_queue { + // total size: 0xC10 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _last; // offset 0x4, size 0x4 + class ring_segment _buffer[32]; // offset 0x10, size 0xC00 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class /* @class */ { + // total size: 0x1C +public: + float duration; // offset 0x0, size 0x4 + float state_delay; // offset 0x4, size 0x4 + float transition_delay; // offset 0x8, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + signed int first; // offset 0x0, size 0x4 + signed int range; // offset 0x4, size 0x4 + signed int offset; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 + } pattern; // offset 0xC, size 0x10 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class television { + // total size: 0x28 +public: + class RwCamera * cam; // offset 0x0, size 0x4 + class RwRaster * raster; // offset 0x4, size 0x4 + class RwRaster * bgraster; // offset 0x8, size 0x4 + class RpWorld * world; // offset 0xC, size 0x4 + class RwTexture * texture; // offset 0x10, size 0x4 + unsigned int vert_buffer_used; // offset 0x14, size 0x4 + class RwRGBA bgcolor; // offset 0x18, size 0x4 + float rcz; // offset 0x1C, size 0x4 + float w; // offset 0x20, size 0x4 + float h; // offset 0x24, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class /* @class */ { + // total size: 0x10 +public: + signed int first; // offset 0x0, size 0x4 + signed int range; // offset 0x4, size 0x4 + signed int offset; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xCC +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0x390 +public: + class squiggle_segment set[8]; // offset 0x0, size 0x380 + float alpha; // offset 0x380, size 0x4 + float scale; // offset 0x384, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float value_def; // offset 0x0, size 0x4 + float value_min; // offset 0x4, size 0x4 + float value_max; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zNPCGoalPrawnBowl : public zNPCGoalCommon { + // total size: 0x50 +public: + unsigned char aiming; // offset 0x4C, size 0x1 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class ring_segment { + // total size: 0x60 +public: + class xModelInstance * model; // offset 0x0, size 0x4 + class xVec3 origin; // offset 0x4, size 0xC + float dist; // offset 0x10, size 0x4 + float vel; // offset 0x14, size 0x4 + unsigned int sound_handle; // offset 0x18, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RyzMemData { + // total size: 0x1 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +struct /* @anon3 */ { + // total size: 0x34 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +enum en_SM_NOTICES { + SM_NOTE_NPCDIED = 0, + SM_NOTE_NPCSTANDBY = 1, + SM_NOTE_NPCALIVE = 2, + SM_NOTE_DUPPAUSE = 3, + SM_NOTE_DUPRESUME = 4, + SM_NOTE_DUPSETDELAY = 5, + SM_NOTE_DUPDEAD = 6, + SM_NOTE_KILLKIDS = 7, + SM_NOTE_NOMORE = 8, + SM_NOTE_FORCE = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0xCC +}; +class /* @class */ { + // total size: 0x8 +public: + float transition; // offset 0x0, size 0x4 + float state; // offset 0x4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum en_SM_WAVE_MODE { + SM_WAVE_CONTINUOUS = 0, + SM_WAVE_DISCREET = 1, + SM_WAVE_NOMORE = 2, + SM_WAVE_FORCE = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zNPCGoalPrawnIdle : public zNPCGoalCommon { + // total size: 0x4C +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class zNPCSubBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char value_def; // offset 0x0, size 0x1 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x24 +public: + float duration[3]; // offset 0x0, size 0xC + float state_delay; // offset 0xC, size 0x4 + float transition_delay; // offset 0x10, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + signed int first; // offset 0x0, size 0x4 + signed int range; // offset 0x4, size 0x4 + signed int offset; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 + } pattern; // offset 0x14, size 0x10 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + class range_type pattern; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int off; // offset 0x0, size 0x4 + unsigned int transition; // offset 0x4, size 0x4 + unsigned int on; // offset 0x8, size 0x4 +}; +enum en_SM_WAVE_STAT { + SM_STAT_BEGIN = 0, + SM_STAT_INPROG = 1, + SM_STAT_ABORT = 2, + SM_STAT_MARKTIME = 3, + SM_STAT_DONE = 4, + SM_STAT_NOMORE = 5, + SM_STAT_FORCE = 2147483647, +}; +struct /* @anon5 */ { + // total size: 0x34 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class /* @class */ { + // total size: 0x1C +public: + unsigned char change; // offset 0x0, size 0x1 + enum floor_state_enum floor_state; // offset 0x4, size 0x4 + unsigned int counter; // offset 0x8, size 0x4 + class range_type pattern; // offset 0xC, size 0x8 + float transition_delay; // offset 0x14, size 0x4 + float state_delay; // offset 0x18, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + signed int first; // offset 0x0, size 0x4 + signed int range; // offset 0x4, size 0x4 + signed int offset; // offset 0x8, size 0x4 + signed int size; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int labels_size; // offset 0x4, size 0x4 + char * * labels; // offset 0x8, size 0x4 + void * values; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + class range_type pattern; // offset 0x0, size 0x8 + float state_delay; // offset 0x8, size 0x4 + float transition_delay; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum en_SM_NPC_STATUS { + SM_NPC_DEAD = 0, + SM_NPC_READY = 1, + SM_NPC_PENDING = 2, + SM_NPC_SPAWNED = 3, + SM_NPC_ACTIVE = 4, + SM_NPC_NOMORE = 5, + SM_NPC_FORCE = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class /* @class */ { + // total size: 0x8 +public: + unsigned int value_def; // offset 0x0, size 0x4 + unsigned int mask; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float sin_pitch; // offset 0x0, size 0x4 + float cos_pitch; // offset 0x4, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon6 */ { + // total size: 0x54 +}; +struct /* @anon7 */ { + // total size: 0xCC +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class /* @class */ { + // total size: 0xB4 +public: + float state_delay; // offset 0x0, size 0x4 + float transition_delay; // offset 0x4, size 0x4 + float cycle_delay; // offset 0x8, size 0x4 + signed int pattern_offset; // offset 0xC, size 0x4 + signed int pattern_size; // offset 0x10, size 0x4 + class range_type pattern[20]; // offset 0x14, size 0xA0 +}; +class /* @class */ { + // total size: 0x94 +public: + float delay[3]; // offset 0x0, size 0xC + class range_type pattern; // offset 0xC, size 0x8 + float state_delay; // offset 0x14, size 0x4 + float transition_delay; // offset 0x18, size 0x4 + float exhaust_vel; // offset 0x1C, size 0x4 + float knock_back; // offset 0x20, size 0x4 + class /* @class */ { + // total size: 0x1C + public: + signed int amount[3]; // offset 0x0, size 0xC + float arc; // offset 0xC, size 0x4 + float delay; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 + } sweep; // offset 0x24, size 0x1C + class fire_type fire; // offset 0x40, size 0x54 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class squiggle_segment { + // total size: 0x70 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class /* @class */ { + // total size: 0xC + public: + float freq; // offset 0x0, size 0x4 + float offset; // offset 0x4, size 0x4 + float move; // offset 0x8, size 0x4 + } layer[3]; // offset 0x40, size 0x24 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float freq; // offset 0x0, size 0x4 + float offset; // offset 0x4, size 0x4 + float move; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x10 +public: + unsigned char pad[16]; // offset 0x0, size 0x10 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0x34 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class /* @class */ { + // total size: 0xC +public: + float vel; // offset 0x0, size 0x4 + float accel; // offset 0x4, size 0x4 + float max_vel; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1C +public: + signed int amount[3]; // offset 0x0, size 0xC + float arc; // offset 0xC, size 0x4 + float delay; // offset 0x10, size 0x4 + float accel; // offset 0x14, size 0x4 + float max_vel; // offset 0x18, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class tweak_callback { + // total size: 0x28 +public: + void (* on_change)(class tweak_info &); // offset 0x0, size 0x4 + void (* on_select)(class tweak_info &); // offset 0x4, size 0x4 + void (* on_unselect)(class tweak_info &); // offset 0x8, size 0x4 + void (* on_start_edit)(class tweak_info &); // offset 0xC, size 0x4 + void (* on_stop_edit)(class tweak_info &); // offset 0x10, size 0x4 + void (* on_expand)(class tweak_info &); // offset 0x14, size 0x4 + void (* on_collapse)(class tweak_info &); // offset 0x18, size 0x4 + void (* on_update)(class tweak_info &); // offset 0x1C, size 0x4 + void (* convert_mem_to_tweak)(class tweak_info &, void *); // offset 0x20, size 0x4 + void (* convert_tweak_to_mem)(class tweak_info &, void *); // offset 0x24, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class SMNPCStatus { + // total size: 0xC +public: + class zNPCCommon * npc; // offset 0x0, size 0x4 + enum en_SM_NPC_STATUS status; // offset 0x4, size 0x4 + class zMovePoint * sp_prefer; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled; // offset 0x0, size 0x1 + unsigned char forward; // offset 0x1, size 0x1 + unsigned char culled; // offset 0x2, size 0x1 + unsigned char glow_culled; // offset 0x3, size 0x1 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class SMSPStatus { + // total size: 0xC +public: + class zMovePoint * sp; // offset 0x0, size 0x4 + signed int flg_stat; // offset 0x4, size 0x4 + class zNPCCommon * npc_prefer; // offset 0x8, size 0x4 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xBinaryCamera { + // total size: 0x70 +public: + class config cfg; // offset 0x0, size 0x3C + class xCamera * camera; // offset 0x3C, size 0x4 + class xQuat cam_dir; // offset 0x40, size 0x10 + class xVec3 * s1; // offset 0x50, size 0x4 + class xVec3 * s2; // offset 0x54, size 0x4 + float s2_radius; // offset 0x58, size 0x4 + class xVec2 stick_offset; // offset 0x5C, size 0x8 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D4F0 -> 0x0035D4F8 +*/ +// Range: 0x35D4F0 -> 0x35D4F8 +signed int Process(class zNPCGoalPrawnDeath * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D4F0 -> 0x35D4F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D500 -> 0x0035D508 +*/ +// Range: 0x35D500 -> 0x35D508 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x35D500 -> 0x35D508 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D510 -> 0x0035D564 +*/ +// Range: 0x35D510 -> 0x35D564 +signed int Enter(class zNPCGoalPrawnDeath * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D510 -> 0x35D564 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D570 -> 0x0035D674 +*/ +// Range: 0x35D570 -> 0x35D674 +signed int Process(class zNPCGoalPrawnDamage * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D570 -> 0x35D674 + class zNPCPrawn & prawn; // r16 + class xAnimState * anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D680 -> 0x0035D744 +*/ +// Range: 0x35D680 -> 0x35D744 +signed int Exit(class zNPCGoalPrawnDamage * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D680 -> 0x35D744 + class zNPCPrawn & prawn; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D750 -> 0x0035D7B0 +*/ +// Range: 0x35D750 -> 0x35D7B0 +signed int Enter(class zNPCGoalPrawnDamage * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D750 -> 0x35D7B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D7B0 -> 0x0035D89C +*/ +// Range: 0x35D7B0 -> 0x35D89C +signed int Process(class zNPCGoalPrawnBowl * this /* r19 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */, class xScene * xscn /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D7B0 -> 0x35D89C + class zNPCPrawn & prawn; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D8A0 -> 0x0035D8D0 +*/ +// Range: 0x35D8A0 -> 0x35D8D0 +signed int Exit(class zNPCGoalPrawnBowl * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D8A0 -> 0x35D8D0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D8D0 -> 0x0035D950 +*/ +// Range: 0x35D8D0 -> 0x35D950 +signed int Enter(class zNPCGoalPrawnBowl * this /* r18 */, float dt /* r20 */, void * updCtxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D8D0 -> 0x35D950 + class zNPCPrawn & prawn; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035D950 -> 0x0035DBAC +*/ +// Range: 0x35D950 -> 0x35DBAC +enum substate_enum update_sweep(class zNPCGoalPrawnBeam * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35D950 -> 0x35DBAC + class zNPCPrawn & prawn; // r17 + class xVec3 & player_loc; // r6 + class xVec2 player_offset; // r29+0x50 + float end_ang; // r20 + float dang; // r29+0x5C + float overshoot; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035DBB0 -> 0x0035DFE0 +*/ +// Range: 0x35DBB0 -> 0x35DFE0 +signed int Process(class zNPCGoalPrawnBeam * this /* r20 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */, class xScene * xscn /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35DBB0 -> 0x35DFE0 + class zNPCPrawn & prawn; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035DFE0 -> 0x0035E084 +*/ +// Range: 0x35DFE0 -> 0x35E084 +signed int Exit(class zNPCGoalPrawnBeam * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35DFE0 -> 0x35E084 + class zNPCPrawn & prawn; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E090 -> 0x0035E43C +*/ +// Range: 0x35E090 -> 0x35E43C +signed int Enter(class zNPCGoalPrawnBeam * this /* r19 */, float dt /* r20 */, void * updCtxt /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35E090 -> 0x35E43C + class zNPCPrawn & prawn; // r17 + class xVec3 & player_vel; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E440 -> 0x0035E49C +*/ +// Range: 0x35E440 -> 0x35E49C +signed int Process(class zNPCGoalPrawnIdle * this /* r2 */, enum en_trantype * trantype /* r2 */, float dt /* r29+0x10 */, void * updCtxt /* r2 */, class xScene * xscn /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35E440 -> 0x35E49C + class zNPCPrawn & prawn; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E4A0 -> 0x0035E4A8 +*/ +// Range: 0x35E4A0 -> 0x35E4A8 +signed int Exit() { + // Blocks + /* anonymous block */ { + // Range: 0x35E4A0 -> 0x35E4A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E4B0 -> 0x0035E51C +*/ +// Range: 0x35E4B0 -> 0x35E51C +signed int Enter(class zNPCGoalPrawnIdle * this /* r17 */, float dt /* r20 */, void * updCtxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35E4B0 -> 0x35E51C + class zNPCPrawn & prawn; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E520 -> 0x0035E7D8 +*/ +// Range: 0x35E520 -> 0x35E7D8 +void repel_player(class zNPCPrawn * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35E520 -> 0x35E7D8 + class xVec3 center; // r29+0x70 + class xVec3 & player_loc; // r8 + class xVec3 & player_vel; // r7 + class xVec3 offset; // r29+0x60 + float imag; // r5 + class xVec3 dir; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E7E0 -> 0x0035E950 +*/ +// Range: 0x35E7E0 -> 0x35E950 +unsigned char check_player_damage(class zNPCPrawn * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35E7E0 -> 0x35E950 + class xVec3 knock_vel; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035E950 -> 0x0035EB9C +*/ +// Range: 0x35E950 -> 0x35EB9C +void set_life(class zNPCPrawn * this /* r18 */, signed int life /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35E950 -> 0x35EB9C + signed int oldlife; // r17 + signed int state; // r2 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035EBA0 -> 0x0035EFA8 +*/ +// Range: 0x35EBA0 -> 0x35EFA8 +void render_closeup(class zNPCPrawn * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35EBA0 -> 0x35EFA8 + class xMat4x3 & mat; // r2 + class xVec3 tfrom; // r29+0xC0 + unsigned int i; // r21 + class xVec3 to; // @ 0x004E0E48 + class xVec3 from; // @ 0x004E0E38 + unsigned char registered; // @ 0x005101BC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035EFB0 -> 0x0035EFB8 +*/ +// Range: 0x35EFB0 -> 0x35EFB8 +static void render_static() { + // Blocks + /* anonymous block */ { + // Range: 0x35EFB0 -> 0x35EFB8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035EFC0 -> 0x0035F120 +*/ +// Range: 0x35EFC0 -> 0x35F120 +static void render_background(class television * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35EFC0 -> 0x35F120 + class RwSky2DVertex * vert; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035F120 -> 0x0035F204 +*/ +// Range: 0x35F120 -> 0x35F204 +void set_floor_state(class zNPCPrawn * this /* r16 */, enum floor_state_enum s /* r2 */, unsigned char immediate /* r17 */, unsigned char force /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35F120 -> 0x35F204 + unsigned int offset; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035F210 -> 0x0035F474 +*/ +// Range: 0x35F210 -> 0x35F474 +void get_floor_info(class zNPCPrawn * this /* r19 */, enum floor_state_enum s /* r2 */, class range_type & pattern /* r18 */, float & transition_delay /* r17 */, float & state_delay /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35F210 -> 0x35F474 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035F480 -> 0x0035F7A0 +*/ +// Range: 0x35F480 -> 0x35F7A0 +void update_beam(class zNPCPrawn * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35F480 -> 0x35F7A0 + class xMat4x3 & rootmat; // r9 + class xMat4x3 & bonemat; // r7 + class xVec3 loc; // r29+0x90 + class xVec3 dir; // r29+0x80 + float yaw; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035F7A0 -> 0x0035F870 +*/ +// Range: 0x35F7A0 -> 0x35F870 +void update_animation(class zNPCPrawn * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35F7A0 -> 0x35F870 + unsigned int idle_hash; // r18 + unsigned int attack_hash; // r17 + unsigned int id; // r2 + float maxv; // r1 + class xAnimSingle & xas; // r4 + float lerp; // @ 0x0050F118 + unsigned char registered; // @ 0x005101B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035F870 -> 0x0035FE78 +*/ +// Range: 0x35F870 -> 0x35FE78 +void update_turn(class zNPCPrawn * this /* r16 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35F870 -> 0x35FE78 + class xVec3 & player_loc3; // r8 + class xVec3 & loc3; // r7 + class xVec3 & start3; // r6 + class xVec2 player_loc; // r29+0x48 + class xVec2 loc; // r29+0x40 + class xVec2 start_dir; // r29+0x38 + float start; // r22 + float end; // r29+0x60 + float diff; // r29+0x5C + float t1; // r21 + float t2; // r20 + float m1; // r2 + float m2; // r1 + float accel; // r29+0x60 + float dv; // r29+0x58 + float new_turn_vel; // r29+0x54 + float dturn; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0035FE80 -> 0x00360010 +*/ +// Range: 0x35FE80 -> 0x360010 +void add_child(class zNPCPrawn * this /* r18 */, class xBase & child /* r17 */, signed int wave /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x35FE80 -> 0x360010 + unsigned int i; // r20 + unsigned int size; // r19 + class xBase * entry; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00360010 -> 0x00360114 +*/ +// Range: 0x360010 -> 0x360114 +void decompose(class zNPCPrawn * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x360010 -> 0x360114 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00360120 -> 0x00360214 +*/ +// Range: 0x360120 -> 0x360214 +void Render(class zNPCPrawn * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x360120 -> 0x360214 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00360220 -> 0x003602B0 +*/ +// Range: 0x360220 -> 0x3602B0 +unsigned int AnimPick(signed int gid /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x360220 -> 0x3602B0 + signed int index; // r3 + unsigned int animID; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003602B0 -> 0x00360350 +*/ +// Range: 0x3602B0 -> 0x360350 +void DuploNotice(class zNPCPrawn * this /* r20 */, enum en_SM_NOTICES note /* r19 */, void * data /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3602B0 -> 0x360350 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00360350 -> 0x003603C4 +*/ +// Range: 0x360350 -> 0x3603C4 +void Damage(class zNPCPrawn * this /* r17 */, enum en_NPC_DAMAGE_TYPE damtype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x360350 -> 0x3603C4 + signed int state; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003603D0 -> 0x003604A0 +*/ +// Range: 0x3603D0 -> 0x3604A0 +void SelfSetup(class zNPCPrawn * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3603D0 -> 0x3604A0 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003604A0 -> 0x00360530 +*/ +// Range: 0x3604A0 -> 0x360530 +void ParseLinks(class zNPCPrawn * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3604A0 -> 0x360530 + class xLinkAsset * it; // r17 + class xLinkAsset * end; // r16 + class xBase * child; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00360530 -> 0x00360F9C +*/ +// Range: 0x360530 -> 0x360F9C +void ParseINI(class zNPCPrawn * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x360530 -> 0x360F9C + class range_type * pattern; // r19 + class range_type default_pattern[20]; // @ 0x00503E80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00360FA0 -> 0x00361A04 +*/ +// Range: 0x360FA0 -> 0x361A04 +static void register_tweaks(class tweak_group * this /* r19 */, unsigned char init /* r18 */, class xModelAssetParam * ap /* r17 */, unsigned int apsize /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x360FA0 -> 0x361A04 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00361A10 -> 0x00361B28 +*/ +// Range: 0x361A10 -> 0x361B28 +signed int SysEvent(class zNPCPrawn * this /* r16 */, class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */, signed int * handled /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x361A10 -> 0x361B28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00361B30 -> 0x00361B5C +*/ +// Range: 0x361B30 -> 0x361B5C +void NewTime(class zNPCPrawn * this /* r16 */, class xScene * xscn /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x361B30 -> 0x361B5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00361B60 -> 0x00361DE0 +*/ +// Range: 0x361B60 -> 0x361DE0 +void Process(class zNPCPrawn * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x361B60 -> 0x361DE0 + signed int i; // r19 + class xVec3 & player_loc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00361DE0 -> 0x00361EB8 +*/ +// Range: 0x361DE0 -> 0x361EB8 +void Destroy(class zNPCPrawn * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x361DE0 -> 0x361EB8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00361EC0 -> 0x00362110 +*/ +// Range: 0x361EC0 -> 0x362110 +void Reset(class zNPCPrawn * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x361EC0 -> 0x362110 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00362110 -> 0x003623A0 +*/ +// Range: 0x362110 -> 0x3623A0 +void Setup(class zNPCPrawn * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x362110 -> 0x3623A0 + char buffer[64]; // r29+0x40 + signed int i; // r16 + unsigned int id; // r2 + class xEnt * ent; // r18 + class xModelInstance * model; // r4 + class RpGeometry * geom; // r3 + class RpMorphTarget * mt; // r2 + class RwV3d * vert; // r11 + class xMat4x3 & mat; // r10 + class xVec3 * p; // r24 + signed int maxvert; // r9 + signed int j; // r8 + signed int index; // r18 + signed int vert_index[4]; // @ 0x00503E70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003623A0 -> 0x003626CC +*/ +// Range: 0x3623A0 -> 0x3626CC +void Init(class zNPCPrawn * this /* r16 */, class xEntAsset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3623A0 -> 0x3626CC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003626D0 -> 0x00362790 +*/ +// Range: 0x3626D0 -> 0x362790 +static void destroy(class television * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3626D0 -> 0x362790 + class RwFrame * tmpframe; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00362790 -> 0x003627DC +*/ +// Range: 0x362790 -> 0x3627DC +void * __ct(class zNPCPrawn * this /* r2 */, signed int myType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x362790 -> 0x3627DC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003627E0 -> 0x00362BC0 +*/ +// Range: 0x3627E0 -> 0x362BC0 +class xAnimTable * ZNPC_AnimTable_Prawn() { + // Blocks + /* anonymous block */ { + // Range: 0x3627E0 -> 0x362BC0 + class xAnimTable * table; // r16 + signed int ourAnims[10]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00362BC0 -> 0x00362D40 +*/ +// Range: 0x362BC0 -> 0x362D40 +void render_ring(class aqua_beam * this /* r2 */, class ring_segment & r /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x362BC0 -> 0x362D40 + class xMat4x3 & mat; // r3 + float size; // r3 + float & alpha; // r3 + float fade_dist; // r3 + float max_fade_dist; // r29 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00362D40 -> 0x0036313C +*/ +// Range: 0x362D40 -> 0x36313C +void emit_ring(class aqua_beam * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x362D40 -> 0x36313C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363140 -> 0x00363528 +*/ +// Range: 0x363140 -> 0x363528 +void update_rings(class aqua_beam * this /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363140 -> 0x363528 + class iterator it; // r29+0xF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363530 -> 0x00363758 +*/ +// Range: 0x363530 -> 0x363758 +unsigned char hits_sphere(class aqua_beam * this /* r2 */, class xSphere & o /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363530 -> 0x363758 + class xVec3 center; // r29+0x80 + class iterator it; // r29+0x78 + class ring_segment & ring; // r13 + float maxdist; // r8 + float maxdist2; // r7 + class xVec3 & loc; // r2 + class xVec3 offset; // r29+0x68 + float dist2; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363760 -> 0x0036389C +*/ +// Range: 0x363760 -> 0x36389C +void reset(class aqua_beam * this /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363760 -> 0x36389C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003638A0 -> 0x003639B8 +*/ +// Range: 0x3638A0 -> 0x3639B8 +static void init_sound() { + // Blocks + /* anonymous block */ { + // Range: 0x3638A0 -> 0x3639B8 + unsigned int i; // r3 + unsigned int & total; // r11 + } +} + diff --git a/dwarf/SB/Game/zNPCTypePrawn.h b/dwarf/SB/Game/zNPCTypePrawn.h new file mode 100644 index 000000000..a30737387 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypePrawn.h @@ -0,0 +1,84 @@ +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003639C0 -> 0x003639C8 +*/ +// Range: 0x3639C0 -> 0x3639C8 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3639C0 -> 0x3639C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003639D0 -> 0x003639D8 +*/ +// Range: 0x3639D0 -> 0x3639D8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3639D0 -> 0x3639D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003639E0 -> 0x003639E8 +*/ +// Range: 0x3639E0 -> 0x3639E8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3639E0 -> 0x3639E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003639F0 -> 0x003639F8 +*/ +// Range: 0x3639F0 -> 0x3639F8 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x3639F0 -> 0x3639F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363A00 -> 0x00363A08 +*/ +// Range: 0x363A00 -> 0x363A08 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x363A00 -> 0x363A08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypePrawn.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00363A10 -> 0x00363A1C +*/ +// Range: 0x363A10 -> 0x363A1C +signed int IsAlive(class zNPCPrawn * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x363A10 -> 0x363A1C + } +} + diff --git a/dwarf/SB/Game/zNPCTypeRobot.cpp b/dwarf/SB/Game/zNPCTypeRobot.cpp new file mode 100644 index 000000000..e99badb5e --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeRobot.cpp @@ -0,0 +1,7611 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_roboanim[41]; // size: 0xA4, address: 0x5CC290 +char * g_strz_roboanim[41]; // size: 0xA4, address: 0x4DEEA0 +static unsigned int g_hash_ttsanim[2]; // size: 0x8, address: 0x50FEA8 +static char * g_strz_ttsanim[2]; // size: 0x8, address: 0x50EF78 +static unsigned int g_hash_cloudanim[3]; // size: 0xC, address: 0x5CC338 +static char * g_strz_cloudanim[3]; // size: 0xC, address: 0x4DEF48 +static unsigned int g_hash_nytlytanim[2]; // size: 0x8, address: 0x50FEB0 +static char * g_strz_nytlytanim[2]; // size: 0x8, address: 0x50EF80 +static unsigned int g_hash_flotanim[2]; // size: 0x8, address: 0x50FEB8 +static char * g_strz_flotanim[2]; // size: 0x8, address: 0x50EF88 +static unsigned int g_hash_shieldanim[2]; // size: 0x8, address: 0x50FEC0 +static char * g_strz_shieldanim[2]; // size: 0x8, address: 0x50EF90 +static class UVAModelInfo g_uvaShield; // size: 0x20, address: 0x5CC350 +class NPCBattle g_GlobalBattleData; // size: 0x14, address: 0x5CC370 +static signed int g_cnt_fodbzzt; // size: 0x4, address: 0x50FEC8 +static signed int g_cnt_sleepy; // size: 0x4, address: 0x50FECC +static signed int g_needuvincr_tube; // size: 0x4, address: 0x50FED0 +static signed int g_needuvincr_bzzt; // size: 0x4, address: 0x50FED4 +static signed int g_needuvincr_nightlight; // size: 0x4, address: 0x50FED8 +static signed int g_needuvincr_slickshield; // size: 0x4, address: 0x50FEDC +class RwRaster * rast_blink; // size: 0x4, address: 0x50FEE0 +float tmr_nexthokey; // size: 0x4, address: 0x50FEE4 +float tmr_hokeypokey; // size: 0x4, address: 0x50FEE8 +signed int cnt_alerthokey; // size: 0x4, address: 0x50FEEC +class NPCLaser laser; // size: 0x24, address: 0x5CC430 +class RwRaster * rast_discoLight; // size: 0x4, address: 0x50FEF0 +float uv_slice_discoLight[2]; // size: 0x8, address: 0x50EFA8 +signed int g_needMusician; // size: 0x4, address: 0x50EFB0 +class RwRaster * rast_killcone; // size: 0x4, address: 0x50FEF4 +class RwRaster * rast_detectcone; // size: 0x4, address: 0x50FEF8 +float uv_deathcone[2]; // size: 0x8, address: 0x50FF00 +float uv_nightlight[2]; // size: 0x8, address: 0x50FF08 +float uv_slice_nightlight[2]; // size: 0x8, address: 0x50EFE8 +float uv_slice_deathcone[2]; // size: 0x8, address: 0x50EFF0 +float hyt_NightLightCurrent; // size: 0x4, address: 0x50FF10 +static signed int g_sleepy_NightLightStates[10]; // size: 0x28, address: 0x0 +static signed int g_sleepy_angryStates[5]; // size: 0x14, address: 0x4DF120 +static class RxObjSpace3DVertex g_vert_list[34]; // size: 0x4C8, address: 0x5CC460 +class RwRaster * rast_blink; // size: 0x4, address: 0x50FF30 +class NPCLaser laser; // size: 0x24, address: 0x5CC930 +static class zNPCSlick * g_slick_slipfx_owner; // size: 0x4, address: 0x50FF34 +static class zParEmitter * g_pemit_smoke; // size: 0x4, address: 0x50FF3C +static class zParEmitter * g_pemit_flame; // size: 0x4, address: 0x50FF40 +static class zParEmitter * g_pemit_trek; // size: 0x4, address: 0x50FF44 +static class zParEmitter * g_pemit_propwash; // size: 0x4, address: 0x50FF48 +static class zParEmitter * g_pemit_exhaust; // size: 0x4, address: 0x50FF4C +static class zParEmitter * g_pemit_steam; // size: 0x4, address: 0x50FF50 +static class xParEmitterCustomSettings g_parf_smoke; // size: 0x16C, address: 0x5CC960 +static class xParEmitterCustomSettings g_parf_spark; // size: 0x16C, address: 0x5CCAD0 +static class xParEmitterCustomSettings g_parf_trek; // size: 0x16C, address: 0x5CCC40 +static class xParEmitterCustomSettings g_parf_propwash; // size: 0x16C, address: 0x5CCDB0 +static class xParEmitterCustomSettings g_parf_exhaust; // size: 0x16C, address: 0x5CCF20 +static class xParEmitterCustomSettings g_parf_steam; // size: 0x16C, address: 0x5CD090 +struct /* @anon16 */ { + // total size: 0xD8 +} __vt__9zNPCSlick; // size: 0xD8, address: 0x50A790 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +class xVec3 g_X3; // size: 0xC, address: 0x4F8D80 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +signed int SLCK_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D6FB0 +signed int ROBO_grul_goAlertLobber(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7700 +class NPCSndTrax g_sndTrax_Slick[]; // size: 0x0, address: 0x4E0380 +class NPCSndTrax g_sndTrax_Robot[]; // size: 0x0, address: 0x4E00C0 +class NPCSndTrax g_sndTrax_Tubelet[]; // size: 0x0, address: 0x4E0340 +signed int TUBE_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D6FD0 +signed int ROBO_grul_goAlertMelee(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D79A0 +signed int CHUK_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D6FF0 +class NPCSndTrax g_sndTrax_Chuck[]; // size: 0x0, address: 0x4E02A0 +signed int PUPY_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7010 +class NPCSndTrax g_sndTrax_ArfDog[]; // size: 0x0, address: 0x4E0310 +signed int ARFY_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7030 +class NPCSndTrax g_sndTrax_ArfArf[]; // size: 0x0, address: 0x4E02E0 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +signed int SLEP_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7050 +signed int SLEP_grul_goAlert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7070 +class NPCSndTrax g_sndTrax_Sleepy[]; // size: 0x0, address: 0x4E0270 +signed int MOON_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7600 +class NPCSndTrax g_sndTrax_Monsoon[]; // size: 0x0, address: 0x4E0240 +signed int GLOV_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7620 +class NPCSndTrax g_sndTrax_Glove[]; // size: 0x0, address: 0x4E0220 +signed int TART_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7640 +class NPCSndTrax g_sndTrax_TarTar[]; // size: 0x0, address: 0x4E01F0 +signed int HAMR_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7660 +class NPCSndTrax g_sndTrax_Hammer[]; // size: 0x0, address: 0x4E01C0 +signed int CHMP_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7680 +class NPCSndTrax g_sndTrax_Chomper[]; // size: 0x0, address: 0x4E0190 +signed int BZZT_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D76A0 +class NPCSndTrax g_sndTrax_FodBzzt[]; // size: 0x0, address: 0x4E0160 +signed int BOMB_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D76C0 +class NPCSndTrax g_sndTrax_FodBomb[]; // size: 0x0, address: 0x4E0110 +signed int FODR_grul_alert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D76E0 +class NPCSndTrax g_sndTrax_Fodder[]; // size: 0x0, address: 0x4E00E0 +class xVec3 g_Z3; // size: 0xC, address: 0x4F8DA0 +signed int DUMY_grul_returnToIdle(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2D7C00 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon5 */ { + // total size: 0xD8 +} __vt__9zNPCRobot; // size: 0xD8, address: 0x50B5B0 +struct /* @anon20 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon14 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +struct /* @anon1 */ { + // total size: 0xD8 +} __vt__13zNPCTubeSlave; // size: 0xD8, address: 0x50A880 +struct /* @anon8 */ { + // total size: 0xC +} __vt__10TubeNotice; // size: 0xC, address: 0x50A958 +struct /* @anon2 */ { + // total size: 0xC +} __vt__8xPSYNote; // size: 0xC, address: 0x50A868 +struct /* @anon7 */ { + // total size: 0xD8 +} __vt__11zNPCTubelet; // size: 0xD8, address: 0x50A970 +struct /* @anon19 */ { + // total size: 0xD8 +} __vt__9zNPCChuck; // size: 0xD8, address: 0x50AA50 +struct /* @anon6 */ { + // total size: 0xD8 +} __vt__10zNPCArfArf; // size: 0xD8, address: 0x50AC10 +struct /* @anon15 */ { + // total size: 0xD8 +} __vt__10zNPCArfDog; // size: 0xD8, address: 0x50AB30 +struct /* @anon3 */ { + // total size: 0xD8 +} __vt__10zNPCSleepy; // size: 0xD8, address: 0x50ACF0 +struct /* @anon11 */ { + // total size: 0xD8 +} __vt__11zNPCMonsoon; // size: 0xD8, address: 0x50ADD0 +struct /* @anon10 */ { + // total size: 0xD8 +} __vt__9zNPCGlove; // size: 0xD8, address: 0x50AEB0 +struct /* @anon17 */ { + // total size: 0xD8 +} __vt__10zNPCTarTar; // size: 0xD8, address: 0x50AF90 +struct /* @anon4 */ { + // total size: 0xD8 +} __vt__10zNPCHammer; // size: 0xD8, address: 0x50B070 +struct /* @anon9 */ { + // total size: 0xD8 +} __vt__11zNPCCritter; // size: 0xD8, address: 0x50B150 +struct /* @anon0 */ { + // total size: 0xD8 +} __vt__11zNPCChomper; // size: 0xD8, address: 0x50B230 +struct /* @anon13 */ { + // total size: 0xD8 +} __vt__11zNPCFodBzzt; // size: 0xD8, address: 0x50B310 +struct /* @anon12 */ { + // total size: 0xD8 +} __vt__11zNPCFodBomb; // size: 0xD8, address: 0x50B3F0 +struct /* @anon18 */ { + // total size: 0xD8 +} __vt__10zNPCFodder; // size: 0xD8, address: 0x50B4D0 +struct /* @anon0 */ { + // total size: 0xD8 +}; +class zNPCChomper : public zNPCRobot { + // total size: 0x384 +public: + signed int cnt_spurt; // offset 0x37C, size 0x4 + signed int cnt_skipEmit; // offset 0x380, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class zNPCSlick : public zNPCRobot { + // total size: 0x390 +public: + float rad_shield; // offset 0x37C, size 0x4 + float tmr_repairShield; // offset 0x380, size 0x4 + float tmr_invuln; // offset 0x384, size 0x4 + float alf_shieldCurrent; // offset 0x388, size 0x4 + float alf_shieldDesired; // offset 0x38C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zNPCArfDog : public zNPCRobot { + // total size: 0x38C +public: + class NPCBlinker blinkHead; // offset 0x37C, size 0x8 + class NPCBlinker blinkTail; // offset 0x384, size 0x8 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zNPCGoalAfterlife : public zNPCGoalDead { + // total size: 0x54 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zNPCRobot : public zNPCCommon { + // total size: 0x37C +public: + signed int hitpoints; // offset 0x2A0, size 0x4 + float tmr_safetime; // offset 0x2A4, size 0x4 + class NPCArena arena; // offset 0x2A8, size 0x20 + class NPCBattle * inf_battle; // offset 0x2C8, size 0x4 + signed int idx_neckBone; // offset 0x2CC, size 0x4 + float tmr_stunned; // offset 0x2D0, size 0x4 + class NPCGlyph * glyf_stun; // offset 0x2D4, size 0x4 + signed int cnt_nextemit; // offset 0x2D8, size 0x4 + class xVec3 vel_bunnyhop; // offset 0x2DC, size 0xC + class zNPCLassoInfo raw_lassoinfo; // offset 0x2E8, size 0x18 + class xEntDrive raw_drvdata; // offset 0x300, size 0x7C +}; +class zNPCFodBzzt : public zNPCRobot { + // total size: 0x398 +public: + class RwRGBA rgba_discoLight; // offset 0x37C, size 0x4 + float tmr_discoLight; // offset 0x380, size 0x4 + class xVec3 pos_discoLight; // offset 0x384, size 0xC + float uv_discoLight[2]; // offset 0x390, size 0x8 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zNPCTarTar : public zNPCRobot { + // total size: 0x37C +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class NPCGlyph { + // total size: 0x64 +public: + enum en_npcglyph typ_glyph; // offset 0x0, size 0x4 + signed int flg_glyph; // offset 0x4, size 0x4 + class xModelInstance * mdl_glyph; // offset 0x8, size 0x4 + class xVec3 pos_glyph; // offset 0xC, size 0xC + class xVec3 vel_glyph; // offset 0x18, size 0xC + class xMat3x3 rot_glyph; // offset 0x24, size 0x30 + class xVec3 scl_glyph; // offset 0x54, size 0xC + float tmr_glyph; // offset 0x60, size 0x4 +}; +class zNPCTubelet : public zNPCRobot { + // total size: 0x39C +public: + enum en_tubestat tubestat; // offset 0x37C, size 0x4 + class zNPCTubeSlave * tub_paul; // offset 0x380, size 0x4 + class zNPCTubeSlave * tub_mary; // offset 0x384, size 0x4 + float bonkSpinRate; // offset 0x388, size 0x4 + float tmr_restoreHealth; // offset 0x38C, size 0x4 + signed int pete_attack_last; // offset 0x390, size 0x4 + class TubeNotice psynote; // offset 0x394, size 0x8 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class NPCArena { + // total size: 0x20 +public: + signed int flg_arena; // offset 0x0, size 0x4 + class xVec3 pos_arena; // offset 0x4, size 0xC + float rad_arena; // offset 0x10, size 0x4 + class zMovePoint * nav_arena; // offset 0x14, size 0x4 + class zMovePoint * nav_refer_dest; // offset 0x18, size 0x4 + class zMovePoint * nav_refer_curr; // offset 0x1C, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zNPCMonsoon : public zNPCRobot { + // total size: 0x37C +}; +class zNPCSleepy : public zNPCRobot { + // total size: 0x398 +public: + signed int flg_sleepy; // offset 0x37C, size 0x4 + class NPCHazard * haz_patriot; // offset 0x380, size 0x4 + float tmr_nextPatriot; // offset 0x384, size 0x4 + class RwRGBA rgba_coneColor; // offset 0x388, size 0x4 + float tmr_angry; // offset 0x38C, size 0x4 + float tmr_emitzeez; // offset 0x390, size 0x4 + float cnt_grpzeez; // offset 0x394, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum en_LASSO_EVENT { + LASS_EVNT_BEGIN = 0, + LASS_EVNT_ENDED = 1, + LASS_EVNT_GRABSTART = 2, + LASS_EVNT_GRABEND = 3, + LASS_EVNT_YANK = 4, + LASS_EVNT_ABORT = 5, + LASS_EVNT_NOMORE = 6, + LASS_EVNT_FORCEINT = 2147483647, +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0xD8 +}; +class RxObjSpace3DVertex { + // total size: 0x24 +public: + class RwV3d objVertex; // offset 0x0, size 0xC + class RxColorUnion c; // offset 0xC, size 0x4 + class RwV3d objNormal; // offset 0x10, size 0xC + float u; // offset 0x1C, size 0x4 + float v; // offset 0x20, size 0x4 +}; +class zNPCArfArf : public zNPCRobot { + // total size: 0x3A4 +public: + signed int flg_puppy[5]; // offset 0x37C, size 0x14 + class zNPCArfDog * pup_kennel[5]; // offset 0x390, size 0x14 +}; +class zNPCFodBomb : public zNPCRobot { + // total size: 0x384 +public: + class NPCBlinker blinker; // offset 0x37C, size 0x8 +}; +class zNPCTubeSlave : public zNPCRobot { + // total size: 0x384 +public: + enum en_tubespot tubespot; // offset 0x37C, size 0x4 + class zNPCTubelet * tub_pete; // offset 0x380, size 0x4 +}; +class zNPCChuck : public zNPCRobot { + // total size: 0x388 +public: + class xVec3 dir_attack; // offset 0x37C, size 0xC +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xC +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum en_NPC_GOAL_SPOT { + NPC_GSPOT_START = 32, + NPC_GSPOT_RESUME = 33, + NPC_GSPOT_FINISH = 34, + NPC_GSPOT_STARTALT = 35, + NPC_GSPOT_ALTA = 36, + NPC_GSPOT_ALTB = 37, + NPC_GSPOT_PATROLPAUSE = 38, + NPC_GSPOT_NOMORE = 39, + NPC_GSPOT_FORCEINT = 2147483647, +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zNPCGlove : public zNPCRobot { + // total size: 0x37C +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0xD8 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCGoalLoopAnim : public zNPCGoalCommon { + // total size: 0x6C +public: + signed int flg_loopanim; // offset 0x4C, size 0x4 + unsigned int anid_stage[3]; // offset 0x50, size 0xC + signed int cnt_loop; // offset 0x5C, size 0x4 + float lastAnimTime; // offset 0x60, size 0x4 + unsigned int origAnimFlags; // offset 0x64, size 0x4 + unsigned int animWeMolested; // offset 0x68, size 0x4 +}; +class zNPCFodder : public zNPCRobot { + // total size: 0x37C +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zNPCHammer : public zNPCRobot { + // total size: 0x37C +}; +struct /* @anon4 */ { + // total size: 0xD8 +}; +class NPCBattle { + // total size: 0x14 +public: + class zNPCRobot * members[5]; // offset 0x0, size 0x14 +}; +struct /* @anon5 */ { + // total size: 0xD8 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zNPCGoalWander : public zNPCGoalCommon { + // total size: 0x78 +public: + signed int flg_wand; // offset 0x4C, size 0x4 + float tmr_remain; // offset 0x50, size 0x4 + float rad_wand; // offset 0x54, size 0x4 + class xVec3 pos_home; // offset 0x58, size 0xC + float tmr_minwalk; // offset 0x64, size 0x4 + float tmr_newdir; // offset 0x68, size 0x4 + class xVec3 dir_cur; // offset 0x6C, size 0xC +}; +class xFFX { + // total size: 0x0 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +struct /* @anon6 */ { + // total size: 0xD8 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xParSys { + // total size: 0x0 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0xD8 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class NPCBlinker { + // total size: 0x8 +public: + float tmr_uvcell; // offset 0x0, size 0x4 + signed int idx_uvcell; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class zNPCGoalWaiting : public zNPCGoalLoopAnim { + // total size: 0x74 +public: + signed int flg_waiting; // offset 0x6C, size 0x4 + float tmr_waiting; // offset 0x70, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zNPCCritter : public zNPCRobot { + // total size: 0x37C +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +enum en_SM_NOTICES { + SM_NOTE_NPCDIED = 0, + SM_NOTE_NPCSTANDBY = 1, + SM_NOTE_NPCALIVE = 2, + SM_NOTE_DUPPAUSE = 3, + SM_NOTE_DUPRESUME = 4, + SM_NOTE_DUPSETDELAY = 5, + SM_NOTE_DUPDEAD = 6, + SM_NOTE_KILLKIDS = 7, + SM_NOTE_NOMORE = 8, + SM_NOTE_FORCE = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +struct /* @anon8 */ { + // total size: 0xC +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum en_tubestat { + TUBE_STAT_UNKNOWN = 0, + TUBE_STAT_DUCKLING = 1, + TUBE_STAT_ATTACK = 2, + TUBE_STAT_LASSO = 3, + TUBE_STAT_DYING = 4, + TUBE_STAT_DEAD = 5, + TUBE_STAT_BORN = 6, + TUBE_STAT_NOMORE = 7, + TUBE_STAT_FORCE = 2147483647, +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xPSYNote { + // total size: 0x4 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +struct /* @anon9 */ { + // total size: 0xD8 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +struct /* @anon10 */ { + // total size: 0xD8 +}; +struct /* @anon11 */ { + // total size: 0xD8 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zNPCGoalDamage : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_howtodie; // offset 0x4C, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zNPCGoalEvilPat : public zNPCGoalCommon { + // total size: 0x4C +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class zNPCGoalIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + signed int flg_idle; // offset 0x4C, size 0x4 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +enum en_mdlvert { + NPC_MDLVERT_ATTACKBASE = 0, + NPC_MDLVERT_ATTACK = 1, + NPC_MDLVERT_ATTACK1 = 2, + NPC_MDLVERT_ATTACK2 = 3, + NPC_MDLVERT_ATTACK3 = 4, + NPC_MDLVERT_ATTACK4 = 5, + NPC_MDLVERT_LOSEYEBALL = 6, + NPC_MDLVERT_DMGSMOKE_A = 7, + NPC_MDLVERT_DMGSMOKE_B = 8, + NPC_MDLVERT_DMGSMOKE_C = 9, + NPC_MDLVERT_DMGFLAME_A = 10, + NPC_MDLVERT_DMGFLAME_B = 11, + NPC_MDLVERT_DMGFLAME_C = 12, + NPC_MDLVERT_PROPEL = 13, + NPC_MDLVERT_EXHAUST = 14, + NPC_MDLVERT_GEN01 = 15, + NPC_MDLVERT_GEN02 = 16, + NPC_MDLVERT_GEN03 = 17, + NPC_MDLVERT_GEN04 = 18, + NPC_MDLVERT_GEN05 = 19, + NPC_MDLVERT_NOMORE = 20, + NPC_MDLVERT_FORCEINT = 2147483647, +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum en_psynote { + PSY_NOTE_HASRESUMED = 0, + PSY_NOTE_HASENTERED = 1, + PSY_NOTE_ANIMCHANGED = 2, + PSY_NOTE_NOMORE = 3, + PSY_NOTE_FORCE = 2147483647, +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class rxReq { + // total size: 0x0 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +enum en_alertbzzt { + FODBZZT_ALERT_NOTICE = 0, + FODBZZT_ALERT_ARENA = 1, + FODBZZT_ALERT_CHASE = 2, + FODBZZT_ALERT_NOMORE = 3, + FODBZZT_ALERT_FORCE = 2147483647, +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +struct /* @anon12 */ { + // total size: 0xD8 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +struct /* @anon13 */ { + // total size: 0xD8 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +struct /* @anon14 */ { + // total size: 0x54 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum en_tubespot { + ROBO_TUBE_PETE = 0, + ROBO_TUBE_PAUL = 1, + ROBO_TUBE_MARY = 2, + ROBO_TUBE_NOMORE = 3, + ROBO_TUBE_FORCE = 2147483647, +}; +struct /* @anon15 */ { + // total size: 0xD8 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon16 */ { + // total size: 0xD8 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class zNPCGoalAlertFodBzzt : public zNPCGoalCommon { + // total size: 0x80 +public: + signed int flg_alert; // offset 0x4C, size 0x4 + enum en_alertbzzt alertbzzt; // offset 0x50, size 0x4 + float tmr_warmup; // offset 0x54, size 0x4 + signed int cnt_nextlos; // offset 0x58, size 0x4 + float len_laser; // offset 0x5C, size 0x4 + class xVec3 pos_laserSource; // offset 0x60, size 0xC + class xVec3 pos_laserTarget; // offset 0x6C, size 0xC + class RwRGBA rgba_deathRay; // offset 0x78, size 0x4 + signed int cnt_inContact; // offset 0x7C, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +struct /* @anon17 */ { + // total size: 0xD8 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +struct /* @anon18 */ { + // total size: 0xD8 +}; +class RxColorUnion { + // total size: 0x4 +public: + union { // inferred + class RwRGBA preLitColor; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x0, size 0x4 + }; +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class zNPCGoalDead : public zNPCGoalCommon { + // total size: 0x54 +public: + signed int flg_deadinfo; // offset 0x4C, size 0x4 + unsigned char old_moreFlags; // offset 0x50, size 0x1 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +enum en_roboanim { + ROBO_ANIM_UNKNOWN = 0, + ROBO_ANIM_IDLE = 1, + ROBO_ANIM_FIDGET = 2, + ROBO_ANIM_MOVE = 3, + ROBO_ANIM_NOTICE = 4, + ROBO_ANIM_TAUNT = 5, + ROBO_ANIM_RESPAWN = 6, + ROBO_ANIM_LASSOGRAB = 7, + ROBO_ANIM_LASSOHOLD = 8, + ROBO_ANIM_STUNBEGIN = 9, + ROBO_ANIM_STUNLOOP = 10, + ROBO_ANIM_ENDTAG_STD = 11, + ROBO_ANIM_ALERTIDLE = 12, + ROBO_ANIM_ALERTMOVE = 13, + ROBO_ANIM_ATTACK = 14, + ROBO_ANIM_ATTACK_A = 15, + ROBO_ANIM_ATTACK_B = 16, + ROBO_ANIM_ATTACKBEGIN = 17, + ROBO_ANIM_ATTACKLOOP = 18, + ROBO_ANIM_ATTACKEND = 19, + ROBO_ANIM_HURTKNOCK = 20, + ROBO_ANIM_HURTSMASH = 21, + ROBO_ANIM_HURTBASH = 22, + ROBO_ANIM_LASSOYANK = 23, + ROBO_ANIM_PICKUP = 24, + ROBO_ANIM_CARRIED = 25, + ROBO_ANIM_THROWBEGIN = 26, + ROBO_ANIM_THROWNLOOP = 27, + ROBO_ANIM_SLEEP = 28, + ROBO_ANIM_TELEPORTBEGIN = 29, + ROBO_ANIM_TELEPORTLOOP = 30, + ROBO_ANIM_TELEPORTEND = 31, + ROBO_ANIM_LAUNCH = 32, + ROBO_ANIM_LAUNCHEND = 33, + ROBO_ANIM_DANCEBEGIN = 34, + ROBO_ANIM_DANCELOOP = 35, + ROBO_ANIM_DANCEEND = 36, + ROBO_ANIM_DEATH01 = 37, + ROBO_ANIM_DEATH02 = 38, + ROBO_ANIM_DODGEBBOWL = 39, + ROBO_ANIM_DODGECRUISE = 40, + ROBO_ANIM_NOMORE = 41, + ROBO_ANIM_FORCE = 2147483647, +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +struct /* @anon19 */ { + // total size: 0xD8 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +enum en_npcglyph { + NPC_GLYPH_UNKNOWN = 0, + NPC_GLYPH_SHINYONE = 1, + NPC_GLYPH_SHINYFIVE = 2, + NPC_GLYPH_SHINYTEN = 3, + NPC_GLYPH_SHINYFIFTY = 4, + NPC_GLYPH_SHINYHUNDRED = 5, + NPC_GLYPH_TALK = 6, + NPC_GLYPH_TALKOTHER = 7, + NPC_GLYPH_FRIEND = 8, + NPC_GLYPH_DAZED = 9, + NPC_GLYPH_NOMORE = 10, + NPC_GLYPH_FORCE = 2147483647, +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +struct /* @anon20 */ { + // total size: 0xCC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class NPCLaser { + // total size: 0x24 +public: + class RwRaster * rast_laser; // offset 0x0, size 0x4 + float radius[2]; // offset 0x4, size 0x8 + float uv_scroll[2]; // offset 0xC, size 0x8 + class RwRGBA rgba[2]; // offset 0x14, size 0x8 + float uv_base[2]; // offset 0x1C, size 0x8 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class TubeNotice : public xPSYNote { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5F40 -> 0x002D5F9C +*/ +// Range: 0x2D5F40 -> 0x2D5F9C +void SetHome(class NPCArena * this /* r2 */, class zNPCCommon * npc /* r2 */, class xVec3 * pos /* r2 */, float rad /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5F40 -> 0x2D5F9C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5FA0 -> 0x002D6094 +*/ +// Range: 0x2D5FA0 -> 0x2D6094 +void SetHome(class NPCArena * this /* r16 */, class zNPCCommon * npc /* r17 */, class zMovePoint * nav /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5FA0 -> 0x2D6094 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D60A0 -> 0x002D61C8 +*/ +// Range: 0x2D60A0 -> 0x2D61C8 +class zMovePoint * NextBestNav(class zMovePoint * nav_from /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D60A0 -> 0x2D61C8 + float rad_best; // r7 + class zMovePoint * nav_best; // r2 + signed int findbest; // r9 + signed int i; // r8 + signed int count; // r7 + class zMovePoint * nav; // r5 + float rad_arena; // r6 + class xVec3 diff; // r29 + float ds2; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D61D0 -> 0x002D6540 +*/ +// Range: 0x2D61D0 -> 0x2D6540 +signed int Cycle(class NPCArena * this /* r18 */, class zNPCCommon * npc /* r17 */, signed int peek /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D61D0 -> 0x2D6540 + class zMovePoint * nav_near; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6540 -> 0x002D6670 +*/ +// Range: 0x2D6540 -> 0x2D6670 +signed int NeedToCycle(class NPCArena * this /* r2 */, class zNPCCommon * npc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6540 -> 0x2D6670 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6670 -> 0x002D6700 +*/ +// Range: 0x2D6670 -> 0x2D6700 +float DstSqFromHome(class NPCArena * this /* r2 */, class xVec3 * pos /* r2 */, class xVec3 * delt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6670 -> 0x2D6700 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6700 -> 0x002D6778 +*/ +// Range: 0x2D6700 -> 0x2D6778 +float PctFromHome(class NPCArena * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6700 -> 0x2D6778 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6780 -> 0x002D6830 +*/ +// Range: 0x2D6780 -> 0x2D6830 +signed int IncludesPos(class NPCArena * this /* r2 */, class xVec3 * pos /* r2 */, float rad_thresh /* r29 */, class xVec3 * vec /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6780 -> 0x2D6830 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6830 -> 0x002D6D5C +*/ +// Range: 0x2D6830 -> 0x2D6D5C +signed int LaunchProjectile(class zNPCRobot * this /* r18 */, enum en_npchaz haztyp /* r19 */, float spd_proj /* r23 */, float dst_minRange /* r22 */, enum en_mdlvert idx_mvtx /* r16 */, float tym_predictMax /* r21 */, float hyt_offset /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6830 -> 0x2D6D5C + class NPCHazard * haz; // r17 + signed int rc; // r2 + class xVec3 pos_launch; // r29+0xC0 + class xVec3 dir; // r29+0xB0 + class xVec3 pos_tgt; // r29+0xA0 + float tym_predict; // r29+0xD0 + float dst_tgt; // r29+0xD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6D60 -> 0x002D6DB8 +*/ +// Range: 0x2D6D60 -> 0x2D6DB8 +void VFXStarTrek(float dt /* r29 */, class xVec3 * pos /* r2 */, class xVec3 * vel /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6D60 -> 0x2D6DB8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6DC0 -> 0x002D6FB0 +*/ +// Range: 0x2D6DC0 -> 0x2D6FB0 +void ROBO_InitEffects() { + // Blocks + /* anonymous block */ { + // Range: 0x2D6DC0 -> 0x2D6FB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6FB0 -> 0x002D6FC4 +*/ +// Range: 0x2D6FB0 -> 0x2D6FC4 +static signed int SLCK_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6FB0 -> 0x2D6FC4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6FD0 -> 0x002D6FE4 +*/ +// Range: 0x2D6FD0 -> 0x2D6FE4 +static signed int TUBE_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6FD0 -> 0x2D6FE4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D6FF0 -> 0x002D7004 +*/ +// Range: 0x2D6FF0 -> 0x2D7004 +static signed int CHUK_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D6FF0 -> 0x2D7004 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7010 -> 0x002D7024 +*/ +// Range: 0x2D7010 -> 0x2D7024 +static signed int PUPY_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7010 -> 0x2D7024 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7030 -> 0x002D7044 +*/ +// Range: 0x2D7030 -> 0x2D7044 +static signed int ARFY_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7030 -> 0x2D7044 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7050 -> 0x002D7064 +*/ +// Range: 0x2D7050 -> 0x2D7064 +static signed int SLEP_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7050 -> 0x2D7064 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7070 -> 0x002D7600 +*/ +// Range: 0x2D7070 -> 0x2D7600 +static signed int SLEP_grul_goAlert(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7070 -> 0x2D7600 + class zNPCSleepy * npc; // r17 + class NPCArena * arena; // r16 + signed int rc; // r2 + float dy; // r29+0xCC + class xVec3 vec_plyr; // r29+0xC0 + class xVec3 dir_side; // r29+0xB0 + class xVec3 dir_plyr; // r29+0xA0 + unsigned int plyr_mvinf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7600 -> 0x002D7614 +*/ +// Range: 0x2D7600 -> 0x2D7614 +static signed int MOON_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7600 -> 0x2D7614 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7620 -> 0x002D7634 +*/ +// Range: 0x2D7620 -> 0x2D7634 +static signed int GLOV_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7620 -> 0x2D7634 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7640 -> 0x002D7654 +*/ +// Range: 0x2D7640 -> 0x2D7654 +static signed int TART_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7640 -> 0x2D7654 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7660 -> 0x002D7674 +*/ +// Range: 0x2D7660 -> 0x2D7674 +static signed int HAMR_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7660 -> 0x2D7674 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7680 -> 0x002D7694 +*/ +// Range: 0x2D7680 -> 0x2D7694 +static signed int CHMP_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7680 -> 0x2D7694 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D76A0 -> 0x002D76B4 +*/ +// Range: 0x2D76A0 -> 0x2D76B4 +static signed int BZZT_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D76A0 -> 0x2D76B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D76C0 -> 0x002D76D4 +*/ +// Range: 0x2D76C0 -> 0x2D76D4 +static signed int BOMB_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D76C0 -> 0x2D76D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D76E0 -> 0x002D76F4 +*/ +// Range: 0x2D76E0 -> 0x2D76F4 +static signed int FODR_grul_alert(enum en_trantype * trantype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D76E0 -> 0x2D76F4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7700 -> 0x002D79A0 +*/ +// Range: 0x2D7700 -> 0x2D79A0 +static signed int ROBO_grul_goAlertLobber(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7700 -> 0x2D79A0 + class zNPCRobot * npc; // r17 + class NPCArena * arena; // r16 + signed int rc; // r2 + class xVec3 delta; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D79A0 -> 0x002D7BF8 +*/ +// Range: 0x2D79A0 -> 0x2D7BF8 +static signed int ROBO_grul_goAlertMelee(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D79A0 -> 0x2D7BF8 + class zNPCRobot * npc; // r17 + class NPCArena * arena; // r16 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7C00 -> 0x002D7C60 +*/ +// Range: 0x2D7C00 -> 0x2D7C60 +static signed int DUMY_grul_returnToIdle(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7C00 -> 0x2D7C60 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7C60 -> 0x002D7FD4 +*/ +// Range: 0x2D7C60 -> 0x2D7FD4 +void SlipSlidenAway() { + // Blocks + /* anonymous block */ { + // Range: 0x2D7C60 -> 0x2D7FD4 + float dst_emit; // r22 + class xVec3 pos_plyr; // r29+0x120 + unsigned int i; // r22 + class xVec3 pos_emit; // r29+0x110 + signed int moreorless; // @ 0x0050FF38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7FE0 -> 0x002D7FE8 +*/ +// Range: 0x2D7FE0 -> 0x2D7FE8 +void YouOwnSlipFX(class zNPCSlick * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7FE0 -> 0x2D7FE8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D7FF0 -> 0x002D80F8 +*/ +// Range: 0x2D7FF0 -> 0x2D80F8 +void BUpdate(class zNPCSlick * this /* r16 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D7FF0 -> 0x2D80F8 + class xSphere * sph; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8100 -> 0x002D8254 +*/ +// Range: 0x2D8100 -> 0x2D8254 +void RopePopsShield(class zNPCSlick * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8100 -> 0x2D8254 + class xVec3 smidge; // @ 0x004FEAA0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8260 -> 0x002D84C0 +*/ +// Range: 0x2D8260 -> 0x2D84C0 +void ShieldUpdate(class zNPCSlick * this /* r17 */, float dt /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8260 -> 0x2D84C0 + float rat_shield; // r20 + class xModelInstance * model; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D84C0 -> 0x002D8730 +*/ +// Range: 0x2D84C0 -> 0x2D8730 +void Damage(class zNPCSlick * this /* r16 */, enum en_NPC_DAMAGE_TYPE dmg_type /* r19 */, class xBase * who /* r18 */, class xVec3 * vec_hit /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D84C0 -> 0x2D8730 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8730 -> 0x002D88E8 +*/ +// Range: 0x2D8730 -> 0x2D88E8 +void Process(class zNPCSlick * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8730 -> 0x2D88E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D88F0 -> 0x002D8AC8 +*/ +// Range: 0x2D88F0 -> 0x2D8AC8 +unsigned int AnimPick(class zNPCSlick * this /* r20 */, signed int gid /* r19 */, enum en_NPC_GOAL_SPOT gspot /* r18 */, class xGoal * rawgoal /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D88F0 -> 0x2D8AC8 + signed int idx; // r16 + unsigned int da_anim; // r2 + signed int choices[3]; // @ 0x004DF148 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8AD0 -> 0x002D8C40 +*/ +// Range: 0x2D8AD0 -> 0x2D8C40 +void SelfSetup(class zNPCSlick * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8AD0 -> 0x2D8C40 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8C40 -> 0x002D8C94 +*/ +// Range: 0x2D8C40 -> 0x2D8C94 +void ParseINI(class zNPCSlick * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8C40 -> 0x2D8C94 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8CA0 -> 0x002D8CEC +*/ +// Range: 0x2D8CA0 -> 0x2D8CEC +void Reset(class zNPCSlick * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8CA0 -> 0x2D8CEC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8CF0 -> 0x002D8DF8 +*/ +// Range: 0x2D8CF0 -> 0x2D8DF8 +void Init(class zNPCSlick * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8CF0 -> 0x2D8DF8 + class xModelInstance * shield; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8E00 -> 0x002D8E5C +*/ +// Range: 0x2D8E00 -> 0x2D8E5C +void PosStacked(class zNPCTubeSlave * this /* r2 */, class xVec3 * pos_stacked /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8E00 -> 0x2D8E5C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8E60 -> 0x002D8E74 +*/ +// Range: 0x2D8E60 -> 0x2D8E74 +signed int IsDying(class zNPCTubeSlave * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8E60 -> 0x2D8E74 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8E80 -> 0x002D8F00 +*/ +// Range: 0x2D8E80 -> 0x2D8F00 +signed int RoboHandleMail(class zNPCTubeSlave * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8E80 -> 0x2D8F00 + signed int handled; // r17 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8F00 -> 0x002D8F54 +*/ +// Range: 0x2D8F00 -> 0x2D8F54 +void RenderExtra(class zNPCTubeSlave * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8F00 -> 0x2D8F54 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8F60 -> 0x002D8F68 +*/ +// Range: 0x2D8F60 -> 0x2D8F68 +void Process(class zNPCTubeSlave * this /* r2 */, class xScene * xscn /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8F60 -> 0x2D8F68 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D8F70 -> 0x002D9020 +*/ +// Range: 0x2D8F70 -> 0x2D9020 +unsigned int AnimPick(class zNPCTubeSlave * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D8F70 -> 0x2D9020 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9020 -> 0x002D9168 +*/ +// Range: 0x2D9020 -> 0x2D9168 +void SelfSetup(class zNPCTubeSlave * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9020 -> 0x2D9168 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9170 -> 0x002D91C4 +*/ +// Range: 0x2D9170 -> 0x2D91C4 +void ParseINI(class zNPCTubeSlave * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9170 -> 0x2D91C4 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D91D0 -> 0x002D9250 +*/ +// Range: 0x2D91D0 -> 0x2D9250 +void Reset(class zNPCTubeSlave * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D91D0 -> 0x2D9250 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9250 -> 0x002D933C +*/ +// Range: 0x2D9250 -> 0x2D933C +void Setup(class zNPCTubeSlave * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9250 -> 0x2D933C + class RwTexture * tmp_txtr; // r2 + class RwRaster * rast; // r6 + class RwRGBA rgba_beg; // r29+0x1C + class RwRGBA rgba_end; // r29+0x18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9340 -> 0x002D9414 +*/ +// Range: 0x2D9340 -> 0x2D9414 +void Init(class zNPCTubeSlave * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9340 -> 0x2D9414 + class xModelInstance * minst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9420 -> 0x002D9430 +*/ +// Range: 0x2D9420 -> 0x2D9430 +signed int IsDying(class zNPCTubelet * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9420 -> 0x2D9430 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9430 -> 0x002D9538 +*/ +// Range: 0x2D9430 -> 0x2D9538 +void Notice(class TubeNotice * this /* r2 */, enum en_psynote note /* r2 */, class xGoal * goal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9430 -> 0x2D9538 + class zNPCTubelet * pete; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9540 -> 0x002D954C +*/ +// Range: 0x2D9540 -> 0x2D954C +void PainInTheBand(class zNPCTubelet * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9540 -> 0x2D954C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9550 -> 0x002D96C0 +*/ +// Range: 0x2D9550 -> 0x2D96C0 +signed int Chk_IsBonked(class zNPCTubelet * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9550 -> 0x2D96C0 + signed int cnt_hurt; // r6 + signed int die; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D96C0 -> 0x002D972C +*/ +// Range: 0x2D96C0 -> 0x2D972C +void Unbonk(class zNPCTubelet * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D96C0 -> 0x2D972C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9730 -> 0x002D9808 +*/ +// Range: 0x2D9730 -> 0x2D9808 +void Bonk(class zNPCTubelet * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9730 -> 0x2D9808 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9810 -> 0x002D9A50 +*/ +// Range: 0x2D9810 -> 0x2D9A50 +void LassoNotify(class zNPCTubelet * this /* r18 */, enum en_LASSO_EVENT event /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9810 -> 0x2D9A50 + class zNPCLassoInfo * lass; // r16 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9A50 -> 0x002D9B70 +*/ +// Range: 0x2D9A50 -> 0x2D9B70 +signed int RoboHandleMail(class zNPCTubelet * this /* r17 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9A50 -> 0x2D9B70 + signed int handled; // r16 + class NPCMsg tellkid; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9B70 -> 0x002D9CA4 +*/ +// Range: 0x2D9B70 -> 0x2D9CA4 +signed int Respawn(class zNPCTubelet * this /* r17 */, class xVec3 * pos /* r2 */, class zMovePoint * mvptFirst /* r2 */, class zMovePoint * mvptSpawnRef /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9B70 -> 0x2D9CA4 + signed int rc; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9CB0 -> 0x002D9F08 +*/ +// Range: 0x2D9CB0 -> 0x2D9F08 +void Process(class zNPCTubelet * this /* r16 */, class xScene * xscn /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9CB0 -> 0x2D9F08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9F10 -> 0x002D9F88 +*/ +// Range: 0x2D9F10 -> 0x2D9F88 +unsigned int AnimPick(class zNPCTubelet * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9F10 -> 0x2D9F88 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D9F90 -> 0x002DA118 +*/ +// Range: 0x2D9F90 -> 0x2DA118 +void SelfSetup(class zNPCTubelet * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D9F90 -> 0x2DA118 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA120 -> 0x002DA2F4 +*/ +// Range: 0x2DA120 -> 0x2DA2F4 +void ParseChild(class zNPCTubelet * this /* r19 */, class xBase * child /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA120 -> 0x2DA2F4 + signed int i; // r18 + class zNPCTubeSlave * slave; // r17 + enum en_tubespot spot; // r16 + class xGroup * grp; // r17 + signed int cnt; // r16 + class xBase * grpitem; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA300 -> 0x002DA3CC +*/ +// Range: 0x2DA300 -> 0x2DA3CC +void ParseLinks(class zNPCTubelet * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA300 -> 0x2DA3CC + signed int i; // r17 + class xLinkAsset * link; // r19 + class xBase * mychild; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA3D0 -> 0x002DA424 +*/ +// Range: 0x2DA3D0 -> 0x2DA424 +void ParseINI(class zNPCTubelet * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA3D0 -> 0x2DA424 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA430 -> 0x002DA498 +*/ +// Range: 0x2DA430 -> 0x2DA498 +void Reset(class zNPCTubelet * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA430 -> 0x2DA498 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA4A0 -> 0x002DA558 +*/ +// Range: 0x2DA4A0 -> 0x2DA558 +void Init(class zNPCTubelet * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA4A0 -> 0x2DA558 + class xModelInstance * minst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA560 -> 0x002DA638 +*/ +// Range: 0x2DA560 -> 0x2DA638 +unsigned int AnimPick(class zNPCChuck * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA560 -> 0x2DA638 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA640 -> 0x002DA7F0 +*/ +// Range: 0x2DA640 -> 0x2DA7F0 +void SelfSetup(class zNPCChuck * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA640 -> 0x2DA7F0 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + class zNPCGoalIdle * idle; // r2 + class zNPCGoalWander * wand; // r2 + class zNPCGoalWaiting * wait; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA7F0 -> 0x002DA844 +*/ +// Range: 0x2DA7F0 -> 0x2DA844 +void ParseINI(class zNPCChuck * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA7F0 -> 0x2DA844 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA850 -> 0x002DA898 +*/ +// Range: 0x2DA850 -> 0x2DA898 +void Reset(class zNPCChuck * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA850 -> 0x2DA898 + class xModelInstance * minst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA8A0 -> 0x002DA928 +*/ +// Range: 0x2DA8A0 -> 0x2DA928 +void Init(class zNPCChuck * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA8A0 -> 0x2DA928 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DA930 -> 0x002DAC74 +*/ +// Range: 0x2DA930 -> 0x2DAC74 +void BlinkRender(class zNPCArfDog * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DA930 -> 0x2DAC74 + class xVec3 pos_blink; // r29+0x30 + class xVec3 pos_blink; // r29+0x20 + class xVec3 vec_tailOffset; // @ 0x004FEA90 + class xVec3 vec_headOffset; // @ 0x004FEA80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DAC80 -> 0x002DADB0 +*/ +// Range: 0x2DAC80 -> 0x2DADB0 +void Process(class zNPCArfDog * this /* r16 */, class xScene * xscn /* r2 */, float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DAC80 -> 0x2DADB0 + signed int gid; // r2 + float accum; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DADB0 -> 0x002DAEB0 +*/ +// Range: 0x2DADB0 -> 0x2DAEB0 +void Stun(class zNPCArfDog * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DADB0 -> 0x2DAEB0 + class xVec3 dir_dmg; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DAEB0 -> 0x002DB018 +*/ +// Range: 0x2DAEB0 -> 0x2DB018 +unsigned int AnimPick(class zNPCArfDog * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DAEB0 -> 0x2DB018 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB020 -> 0x002DB1B8 +*/ +// Range: 0x2DB020 -> 0x2DB1B8 +void SelfSetup(class zNPCArfDog * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB020 -> 0x2DB1B8 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB1C0 -> 0x002DB214 +*/ +// Range: 0x2DB1C0 -> 0x2DB214 +void ParseINI(class zNPCArfDog * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB1C0 -> 0x2DB214 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB220 -> 0x002DB264 +*/ +// Range: 0x2DB220 -> 0x2DB264 +void Reset(class zNPCArfDog * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB220 -> 0x2DB264 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB270 -> 0x002DB2A4 +*/ +// Range: 0x2DB270 -> 0x2DB2A4 +void Setup(class zNPCArfDog * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB270 -> 0x2DB2A4 + char * nam_texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB2B0 -> 0x002DB31C +*/ +// Range: 0x2DB2B0 -> 0x2DB31C +void Init(class zNPCArfDog * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB2B0 -> 0x2DB31C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB320 -> 0x002DB378 +*/ +// Range: 0x2DB320 -> 0x2DB378 +class zNPCArfDog * AdoptADoggie(class zNPCArfArf * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB320 -> 0x2DB378 + class zNPCArfDog * pup; // r2 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB380 -> 0x002DB428 +*/ +// Range: 0x2DB380 -> 0x2DB428 +void DuploNotice(class zNPCArfArf * this /* r2 */, enum en_SM_NOTICES note /* r2 */, void * data /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB380 -> 0x2DB428 + class zNPCCommon * npc; // r2 + signed int i; // r7 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB430 -> 0x002DB538 +*/ +// Range: 0x2DB430 -> 0x2DB538 +unsigned int AnimPick(class zNPCArfArf * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB430 -> 0x2DB538 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB540 -> 0x002DB6D8 +*/ +// Range: 0x2DB540 -> 0x2DB6D8 +void SelfSetup(class zNPCArfArf * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB540 -> 0x2DB6D8 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB6E0 -> 0x002DB844 +*/ +// Range: 0x2DB6E0 -> 0x2DB844 +void ParseChild(class zNPCArfArf * this /* r19 */, class xBase * child /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB6E0 -> 0x2DB844 + signed int i; // r4 + class zNPCArfDog * puppy; // r16 + class xGroup * grp; // r18 + signed int cnt; // r17 + class xBase * grpitem; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB850 -> 0x002DB924 +*/ +// Range: 0x2DB850 -> 0x2DB924 +void ParseLinks(class zNPCArfArf * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB850 -> 0x2DB924 + signed int i; // r17 + class xLinkAsset * link; // r19 + class xBase * mychild; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB930 -> 0x002DB984 +*/ +// Range: 0x2DB930 -> 0x2DB984 +void ParseINI(class zNPCArfArf * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB930 -> 0x2DB984 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB990 -> 0x002DB9CC +*/ +// Range: 0x2DB990 -> 0x2DB9CC +void Reset(class zNPCArfArf * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB990 -> 0x2DB9CC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DB9D0 -> 0x002DBA38 +*/ +// Range: 0x2DB9D0 -> 0x2DBA38 +void Init(class zNPCArfArf * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DB9D0 -> 0x2DBA38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DBA40 -> 0x002DC020 +*/ +// Range: 0x2DBA40 -> 0x2DC020 +void RendConeRange(class zNPCSleepy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DBA40 -> 0x2DC020 + float rad_end; // r25 + class xVec3 vec_aim; // r29+0x110 + signed int i; // r20 + class xMat3x3 mat; // r29+0xC0 + class xVec3 offset; // r29+0x100 + class RxObjSpace3DVertex * vtx; // r19 + class RwRGBA * _col; // r2 + float u; // r24 + class RwRGBA * _col; // r2 + enum _SDRenderState old_rendstat; // r16 + float uv_bot[2]; // @ 0x0050F008 + float uv_top[2]; // @ 0x0050FF28 + float rad_fadeinInner; // @ 0x004FEA78 + float rad_fadeinOuter; // @ 0x004FEA70 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DC020 -> 0x002DC540 +*/ +// Range: 0x2DC020 -> 0x2DC540 +void RendConeOfDeath(class zNPCSleepy * this /* r2 */, signed int tgt_isBowlingBall /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DC020 -> 0x2DC540 + signed int i; // r20 + class xVec3 pos_top; // r29+0x130 + class xEntBoulder * bowl; // r3 + class RxObjSpace3DVertex * vtx; // r19 + float ang_seg; // r27 + class xVec3 pos_edge; // r29+0x120 + class RwRGBA * _col; // r2 + class RwRGBA * _col; // r2 + enum _SDRenderState old_rendstat; // r16 + class RwRGBA rgba_end; // @ 0x0050F000 + class RwRGBA rgba_beg; // @ 0x0050EFFC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DC540 -> 0x002DC604 +*/ +// Range: 0x2DC540 -> 0x2DC604 +void RenderExtra(class zNPCSleepy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DC540 -> 0x2DC604 + class xPsyche * psy; // r17 + signed int gid; // r17 + signed int flg_wonder; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DC610 -> 0x002DC88C +*/ +// Range: 0x2DC610 -> 0x2DC88C +void ConeOfRange(class zNPCSleepy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DC610 -> 0x2DC88C + float rgb_interp[3]; // r29+0x10 + float rgb_anger[3]; // @ 0x004FEA60 + float rgb_peace[3]; // @ 0x004FEA50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DC890 -> 0x002DCCB4 +*/ +// Range: 0x2DC890 -> 0x2DCCB4 +signed int RepelBowlBall(class zNPCSleepy * this /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DC890 -> 0x2DCCB4 + class xEntBoulder * bowl; // r18 + class xVec3 vec_tmp; // r29+0xF0 + class xVec3 vec_NtoB; // r29+0xE0 + class xVec3 dir_repel; // r29+0xD0 + float dst; // r20 + class xVec3 dir_ball; // r29+0xC0 + float spd; // r29+0x100 + class xVec3 dir_side; // r29+0xB0 + float rat; // r20 + signed int next_los_check; // @ 0x0050FF18 + signed int los_said_ok; // @ 0x0050FF1C + signed int keepgoing; // @ 0x0050FF20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DCCC0 -> 0x002DCD38 +*/ +// Range: 0x2DCCC0 -> 0x2DCD38 +signed int RepelMissile(class zNPCSleepy * this /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DCCC0 -> 0x2DCD38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DCD40 -> 0x002DD004 +*/ +// Range: 0x2DCD40 -> 0x2DD004 +void SnoreNZeez(class zNPCSleepy * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DCD40 -> 0x2DD004 + float ds2; // r29+0x50 + class xVec3 pos_emit; // r29+0x40 + class xVec3 vel_emit; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD010 -> 0x002DD214 +*/ +// Range: 0x2DD010 -> 0x2DD214 +void NightLightUVStep(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD010 -> 0x2DD214 + float uv_scroll_deathcone[2]; // @ 0x004FEA48 + float uv_scroll_nightlight[2]; // @ 0x004FEA40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD220 -> 0x002DD300 +*/ +// Range: 0x2DD220 -> 0x2DD300 +void NewTime(class zNPCSleepy * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD220 -> 0x2DD300 + class xModelInstance * nightlight; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD300 -> 0x002DD408 +*/ +// Range: 0x2DD300 -> 0x2DD408 +void Process(class zNPCSleepy * this /* r17 */, class xScene * xscn /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD300 -> 0x2DD408 + signed int angry; // r16 + signed int gid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD410 -> 0x002DD490 +*/ +// Range: 0x2DD410 -> 0x2DD490 +unsigned int AnimPick(class zNPCSleepy * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD410 -> 0x2DD490 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD490 -> 0x002DD5EC +*/ +// Range: 0x2DD490 -> 0x2DD5EC +void SelfSetup(class zNPCSleepy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD490 -> 0x2DD5EC + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD5F0 -> 0x002DD66C +*/ +// Range: 0x2DD5F0 -> 0x2DD66C +void ParseINI(class zNPCSleepy * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD5F0 -> 0x2DD66C + class NPCConfig * cfg; // r16 + float rad_minimum; // @ 0x0050EFF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD670 -> 0x002DD6F8 +*/ +// Range: 0x2DD670 -> 0x2DD6F8 +void Reset(class zNPCSleepy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD670 -> 0x2DD6F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD700 -> 0x002DD78C +*/ +// Range: 0x2DD700 -> 0x2DD78C +void Init(class zNPCSleepy * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD700 -> 0x2DD78C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD790 -> 0x002DD800 +*/ +// Range: 0x2DD790 -> 0x2DD800 +void NewTime(class zNPCMonsoon * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD790 -> 0x2DD800 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD800 -> 0x002DD840 +*/ +// Range: 0x2DD800 -> 0x2DD840 +void Process(class zNPCMonsoon * this /* r16 */, class xScene * xscn /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD800 -> 0x2DD840 + class xPsyche * psy; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD840 -> 0x002DD928 +*/ +// Range: 0x2DD840 -> 0x2DD928 +unsigned int AnimPick(class zNPCMonsoon * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD840 -> 0x2DD928 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DD930 -> 0x002DDA8C +*/ +// Range: 0x2DD930 -> 0x2DDA8C +void SelfSetup(class zNPCMonsoon * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DD930 -> 0x2DDA8C + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDA90 -> 0x002DDAE4 +*/ +// Range: 0x2DDA90 -> 0x2DDAE4 +void ParseINI(class zNPCMonsoon * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDA90 -> 0x2DDAE4 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDAF0 -> 0x002DDAF8 +*/ +// Range: 0x2DDAF0 -> 0x2DDAF8 +void Reset(class zNPCMonsoon * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDAF0 -> 0x2DDAF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDB00 -> 0x002DDB88 +*/ +// Range: 0x2DDB00 -> 0x2DDB88 +void Init(class zNPCMonsoon * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDB00 -> 0x2DDB88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDB90 -> 0x002DDCA0 +*/ +// Range: 0x2DDB90 -> 0x2DDCA0 +unsigned int AnimPick(class zNPCGlove * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDB90 -> 0x2DDCA0 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDCA0 -> 0x002DDDE8 +*/ +// Range: 0x2DDCA0 -> 0x2DDDE8 +void SelfSetup(class zNPCGlove * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDCA0 -> 0x2DDDE8 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDDF0 -> 0x002DDE44 +*/ +// Range: 0x2DDDF0 -> 0x2DDE44 +void ParseINI(class zNPCGlove * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDDF0 -> 0x2DDE44 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDE50 -> 0x002DDEAC +*/ +// Range: 0x2DDE50 -> 0x2DDEAC +void Init(class zNPCGlove * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDE50 -> 0x2DDEAC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDEB0 -> 0x002DDFA8 +*/ +// Range: 0x2DDEB0 -> 0x2DDFA8 +unsigned int AnimPick(class zNPCTarTar * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDEB0 -> 0x2DDFA8 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DDFB0 -> 0x002DE120 +*/ +// Range: 0x2DDFB0 -> 0x2DE120 +void SelfSetup(class zNPCTarTar * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DDFB0 -> 0x2DE120 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE120 -> 0x002DE16C +*/ +// Range: 0x2DE120 -> 0x2DE16C +void ParseINI(class zNPCTarTar * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE120 -> 0x2DE16C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE170 -> 0x002DE1DC +*/ +// Range: 0x2DE170 -> 0x2DE1DC +void Init(class zNPCTarTar * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE170 -> 0x2DE1DC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE1E0 -> 0x002DE368 +*/ +// Range: 0x2DE1E0 -> 0x2DE368 +unsigned int AnimPick(class zNPCHammer * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE1E0 -> 0x2DE368 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE370 -> 0x002DE4CC +*/ +// Range: 0x2DE370 -> 0x2DE4CC +void SelfSetup(class zNPCHammer * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE370 -> 0x2DE4CC + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE4D0 -> 0x002DE51C +*/ +// Range: 0x2DE4D0 -> 0x2DE51C +void ParseINI(class zNPCHammer * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE4D0 -> 0x2DE51C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE520 -> 0x002DE578 +*/ +// Range: 0x2DE520 -> 0x2DE578 +void Init(class zNPCHammer * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE520 -> 0x2DE578 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE580 -> 0x002DE5B4 +*/ +// Range: 0x2DE580 -> 0x2DE5B4 +void SelfSetup(class zNPCCritter * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE580 -> 0x2DE5B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE5C0 -> 0x002DE60C +*/ +// Range: 0x2DE5C0 -> 0x2DE60C +void Init(class zNPCCritter * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE5C0 -> 0x2DE60C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE610 -> 0x002DE9B4 +*/ +// Range: 0x2DE610 -> 0x2DE9B4 +void BreathTrail(class zNPCChomper * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE610 -> 0x2DE9B4 + class xVec3 pos_emit; // r29+0x60 + class xVec3 vel_emit; // r29+0x50 + class xVec3 pos_emit; // r29+0x40 + class xVec3 vel_emit; // r29+0x30 + class xVec3 vec_boneOffsetLeft; // @ 0x004FEA20 + class xVec3 vec_boneOffsetRight; // @ 0x004FEA30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DE9C0 -> 0x002DEA90 +*/ +// Range: 0x2DE9C0 -> 0x2DEA90 +unsigned int AnimPick(class zNPCChomper * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DE9C0 -> 0x2DEA90 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DEA90 -> 0x002DEB18 +*/ +// Range: 0x2DEA90 -> 0x2DEB18 +void Process(class zNPCChomper * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DEA90 -> 0x2DEB18 + signed int gid; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DEB20 -> 0x002DEC10 +*/ +// Range: 0x2DEB20 -> 0x2DEC10 +void Stun(class zNPCChomper * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DEB20 -> 0x2DEC10 + class xVec3 dir_dmg; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DEC10 -> 0x002DED80 +*/ +// Range: 0x2DEC10 -> 0x2DED80 +void SelfSetup(class zNPCChomper * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DEC10 -> 0x2DED80 + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DED80 -> 0x002DEDCC +*/ +// Range: 0x2DED80 -> 0x2DEDCC +void ParseINI(class zNPCChomper * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DED80 -> 0x2DEDCC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DEDD0 -> 0x002DEE48 +*/ +// Range: 0x2DEDD0 -> 0x2DEE48 +void Init(class zNPCChomper * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DEDD0 -> 0x2DEE48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DEE50 -> 0x002DF254 +*/ +// Range: 0x2DEE50 -> 0x2DF254 +void DiscoRender(class zNPCFodBzzt * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DEE50 -> 0x2DF254 + class RwRGBA rgba_top; // r29+0x13C + class RwRGBA rgba_bot; // r29+0x138 + class xVec3 pos_top; // r29+0x128 + class xVec3 pos_bot; // r29+0x118 + float uv_top[2]; // r29+0x110 + float uv_bot[2]; // r29+0x108 + class xVec3 vec_aim; // r29+0xF8 + void * mem; // r20 + class RxObjSpace3DVertex * vert_list; // r2 + class RxObjSpace3DVertex * vtx; // r19 + class RwRGBA * _col; // r2 + signed int i; // r18 + class xMat3x3 mat; // r29+0xB0 + class xVec3 pos_edge; // r29+0xE8 + class RwRGBA * _col; // r2 + enum _SDRenderState old_rendstat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DF260 -> 0x002DF5D0 +*/ +// Range: 0x2DF260 -> 0x2DF5D0 +void DiscoUpdate(class zNPCFodBzzt * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DF260 -> 0x2DF5D0 + float rat; // r1 + float uv_scroll_discoLight[2]; // @ 0x004FEA18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DF5D0 -> 0x002DF5DC +*/ +// Range: 0x2DF5D0 -> 0x2DF5DC +void DiscoReset(class zNPCFodBzzt * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DF5D0 -> 0x2DF5DC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DF5E0 -> 0x002DF80C +*/ +// Range: 0x2DF5E0 -> 0x2DF80C +void zNPCFodBzzt_DoTheHokeyPokey(float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DF5E0 -> 0x2DF80C + signed int g_somebodyplay; // @ 0x0050EFD0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DF810 -> 0x002DF884 +*/ +// Range: 0x2DF810 -> 0x2DF884 +void RenderExtra(class zNPCFodBzzt * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DF810 -> 0x2DF884 + class xPsyche * psy; // r16 + signed int gid; // r2 + class zNPCGoalAlertFodBzzt * alert; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DF890 -> 0x002DF960 +*/ +// Range: 0x2DF890 -> 0x2DF960 +unsigned int AnimPick(class zNPCFodBzzt * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DF890 -> 0x2DF960 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DF960 -> 0x002DFA50 +*/ +// Range: 0x2DF960 -> 0x2DFA50 +void Stun(class zNPCFodBzzt * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DF960 -> 0x2DFA50 + class xVec3 dir_dmg; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFA50 -> 0x002DFB10 +*/ +// Range: 0x2DFA50 -> 0x2DFB10 +void Process(class zNPCFodBzzt * this /* r2 */, class xScene * xscn /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFA50 -> 0x2DFB10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFB10 -> 0x002DFC6C +*/ +// Range: 0x2DFB10 -> 0x2DFC6C +void SelfSetup(class zNPCFodBzzt * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFB10 -> 0x2DFC6C + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFC70 -> 0x002DFC78 +*/ +// Range: 0x2DFC70 -> 0x2DFC78 +void Reset(class zNPCFodBzzt * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFC70 -> 0x2DFC78 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFC80 -> 0x002DFDD0 +*/ +// Range: 0x2DFC80 -> 0x2DFDD0 +void Setup(class zNPCFodBzzt * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFC80 -> 0x2DFDD0 + class xAnimState * ast; // r2 + char * nam_texture; // r2 + class RwRaster * rast; // r2 + class RwRGBA rgba_beg; // r29+0x3C + class RwRGBA rgba_end; // r29+0x38 + float uv_scroll[2]; // r29+0x30 + float rad_laser[2]; // r29+0x28 + char * nam_texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFDD0 -> 0x002DFE1C +*/ +// Range: 0x2DFDD0 -> 0x2DFE1C +void ParseINI(class zNPCFodBzzt * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFDD0 -> 0x2DFE1C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFE20 -> 0x002DFED0 +*/ +// Range: 0x2DFE20 -> 0x2DFED0 +void Init(class zNPCFodBzzt * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFE20 -> 0x2DFED0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002DFED0 -> 0x002E0078 +*/ +// Range: 0x2DFED0 -> 0x2E0078 +void BlinkerRender(class zNPCFodBomb * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2DFED0 -> 0x2E0078 + class xVec3 pos_blink; // r29+0x10 + class xVec3 vec_boneOffset; // @ 0x004FEA08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0080 -> 0x002E00D8 +*/ +// Range: 0x2E0080 -> 0x2E00D8 +void BlinkerUpdate(class zNPCFodBomb * this /* r16 */, float dt /* r29+0x20 */, float pct_timeRemain /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0080 -> 0x2E00D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E00E0 -> 0x002E0118 +*/ +// Range: 0x2E00E0 -> 0x2E0118 +void BlinkerReset(class zNPCFodBomb * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E00E0 -> 0x2E0118 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0120 -> 0x002E01E0 +*/ +// Range: 0x2E0120 -> 0x2E01E0 +unsigned int AnimPick(class zNPCFodBomb * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0120 -> 0x2E01E0 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E01E0 -> 0x002E02D0 +*/ +// Range: 0x2E01E0 -> 0x2E02D0 +void Stun(class zNPCFodBomb * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E01E0 -> 0x2E02D0 + class xVec3 dir_dmg; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E02D0 -> 0x002E042C +*/ +// Range: 0x2E02D0 -> 0x2E042C +void SelfSetup(class zNPCFodBomb * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E02D0 -> 0x2E042C + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0430 -> 0x002E047C +*/ +// Range: 0x2E0430 -> 0x2E047C +void ParseINI(class zNPCFodBomb * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0430 -> 0x2E047C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0480 -> 0x002E04B4 +*/ +// Range: 0x2E0480 -> 0x2E04B4 +void Setup(class zNPCFodBomb * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0480 -> 0x2E04B4 + char * nam_texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E04C0 -> 0x002E0530 +*/ +// Range: 0x2E04C0 -> 0x2E0530 +void Init(class zNPCFodBomb * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E04C0 -> 0x2E0530 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0530 -> 0x002E0620 +*/ +// Range: 0x2E0530 -> 0x2E0620 +void Stun(class zNPCFodder * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0530 -> 0x2E0620 + class xVec3 dir_dmg; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0620 -> 0x002E0710 +*/ +// Range: 0x2E0620 -> 0x2E0710 +unsigned int AnimPick(class zNPCFodder * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0620 -> 0x2E0710 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0710 -> 0x002E086C +*/ +// Range: 0x2E0710 -> 0x2E086C +void SelfSetup(class zNPCFodder * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0710 -> 0x2E086C + class xPsyche * psy; // r16 + class xGoal * g; // r2 + class xGoal * g; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0870 -> 0x002E08BC +*/ +// Range: 0x2E0870 -> 0x2E08BC +void ParseINI(class zNPCFodder * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0870 -> 0x2E08BC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E08C0 -> 0x002E092C +*/ +// Range: 0x2E08C0 -> 0x2E092C +void Init(class zNPCFodder * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E08C0 -> 0x2E092C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0930 -> 0x002E0C80 +*/ +// Range: 0x2E0930 -> 0x2E0C80 +void zNPCRobot_TubeConfetti(class xVec3 * pos_emit /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0930 -> 0x2E0C80 + signed int i; // r20 + class xVec3 vel_emit; // r29+0x120 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0C80 -> 0x002E0CC4 +*/ +// Range: 0x2E0C80 -> 0x2E0CC4 +void ShowerConfetti(class zNPCRobot * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0C80 -> 0x2E0CC4 + class xVec3 pos_emit; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0CD0 -> 0x002E0DE0 +*/ +// Range: 0x2E0CD0 -> 0x2E0DE0 +float MoveTowardsArena(class zNPCRobot * this /* r16 */, float dt /* r20 */, float speed /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0CD0 -> 0x2E0DE0 + class xVec3 dir_home; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E0DE0 -> 0x002E1160 +*/ +// Range: 0x2E0DE0 -> 0x2E1160 +void CornerOfArena(class zNPCRobot * this /* r2 */, class xVec3 * pos_corner /* r16 */, float dst /* r29+0x60 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E0DE0 -> 0x2E1160 + class NPCArena * arena; // r13 + class xVec3 pos_a; // r29+0x50 + class xVec3 pos_b; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1160 -> 0x002E125C +*/ +// Range: 0x2E1160 -> 0x2E125C +float FaceAntiPlayer(class zNPCRobot * this /* r2 */, float dt /* r29+0x30 */, float spd_turn /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1160 -> 0x2E125C + class xVec3 dir_plyr; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1260 -> 0x002E133C +*/ +// Range: 0x2E1260 -> 0x2E133C +float FacePos(class zNPCRobot * this /* r2 */, class xVec3 * pos /* r2 */, float dt /* r29+0x30 */, float spd_turn /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1260 -> 0x2E133C + class xVec3 dir_pos; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1340 -> 0x002E14FC +*/ +// Range: 0x2E1340 -> 0x2E14FC +void TurnThemHeads(class zNPCRobot * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1340 -> 0x2E14FC + class xVec3 dir; // r29+0xB0 + class xMat4x3 * neck; // r19 + class xMat3x3 back; // r29+0x80 + class xMat3x3 mat; // r29+0x50 + float dst_toPlyr; // r29+0xC0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1500 -> 0x002E156C +*/ +// Range: 0x2E1500 -> 0x2E156C +void InflictPain(class zNPCRobot * this /* r2 */, signed int numHitPoints /* r2 */, signed int giveCreditToPlayer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1500 -> 0x2E156C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1570 -> 0x002E1934 +*/ +// Range: 0x2E1570 -> 0x2E1934 +void CollideReview(class zNPCRobot * this /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1570 -> 0x2E1934 + class zNPCGoalCommon * goal; // r2 + signed int goaldidit; // r16 + class xEntCollis * npccol; // r20 + class xCollis * colrec; // r16 + class xVec3 vec_depen; // r29+0x90 + signed int i; // r18 + class xSurface * surf; // r2 + signed int badsurf; // r19 + float goodep; // r29+0x9C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1940 -> 0x002E19BC +*/ +// Range: 0x2E1940 -> 0x2E19BC +void LassoNotify(class zNPCRobot * this /* r17 */, enum en_LASSO_EVENT event /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1940 -> 0x2E19BC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E19C0 -> 0x002E1B3C +*/ +// Range: 0x2E19C0 -> 0x2E1B3C +void SyncStunGlyph(class zNPCRobot * this /* r16 */, float tmr_remain /* r20 */, float height /* r29+0x40 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E19C0 -> 0x2E1B3C + class NPCConfig * cfg; // r5 + class xVec3 vec; // r29+0x30 + signed int trun; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1B40 -> 0x002E1C04 +*/ +// Range: 0x2E1B40 -> 0x2E1C04 +void Stun(class zNPCRobot * this /* r16 */, float stuntime /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1B40 -> 0x2E1C04 + class NPCMsg msg; // @ 0x005CC3E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1C10 -> 0x002E1D70 +*/ +// Range: 0x2E1C10 -> 0x2E1D70 +signed int SetCarryState(class zNPCRobot * this /* r18 */, enum en_NPC_CARRY_STATE stat /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1C10 -> 0x2E1D70 + signed int result; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1D70 -> 0x002E1E28 +*/ +// Range: 0x2E1D70 -> 0x2E1E28 +signed int IsDying(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1D70 -> 0x2E1E28 + signed int isdying; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1E30 -> 0x002E1E98 +*/ +// Range: 0x2E1E30 -> 0x2E1E98 +signed int LassoSetup(class zNPCRobot * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1E30 -> 0x2E1E98 + signed int idx_grab; // r29+0x2C + signed int idx_hold; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1EB0 -> 0x002E1FB4 +*/ +// Range: 0x2E1EB0 -> 0x2E1FB4 +void AddStunThrow(class zNPCRobot * this /* r19 */, class xPsyche * psy /* r18 */, signed int (* eval_evilpat)(class xGoal *, void *, enum en_trantype *, float, void *) /* r21 */, signed int (* eval_stunned)(class xGoal *, void *, enum en_trantype *, float, void *) /* r20 */, signed int (* eval_patcarry)(class xGoal *, void *, enum en_trantype *, float, void *) /* r17 */, signed int (* eval_patthrow)(class xGoal *, void *, enum en_trantype *, float, void *) /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1EB0 -> 0x2E1FB4 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1FC0 -> 0x002E2104 +*/ +// Range: 0x2E1FC0 -> 0x2E2104 +void CheckFalling(class zNPCRobot * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1FC0 -> 0x2E2104 + signed int i; // r6 + signed int inSkipList; // r16 + signed int gid; // r2 + signed int skipstates[13]; // @ 0x004FE9C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2110 -> 0x002E24E4 +*/ +// Range: 0x2E2110 -> 0x2E24E4 +void DoAliveStuff(class zNPCRobot * this /* r17 */, float dt /* r29+0x70 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2110 -> 0x2E24E4 + class xPsyche * psy; // r16 + float wid; // r29+0x70 + class xBound * bnd; // r5 + float dx; // r2 + float dz; // r29+0x70 + class xVec3 pos_drvArena; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E24F0 -> 0x002E2560 +*/ +// Range: 0x2E24F0 -> 0x2E2560 +void DuploOwner(class zNPCRobot * this /* r2 */, class zNPCCommon * duper /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E24F0 -> 0x2E2560 + class xPsyche * psy; // r16 + class zNPCGoalAfterlife * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2560 -> 0x002E27F8 +*/ +// Range: 0x2E2560 -> 0x2E27F8 +signed int RoboHandleMail(class zNPCRobot * this /* r19 */, class NPCMsg * mail /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2560 -> 0x2E27F8 + signed int handled; // r17 + class zNPCGoalDamage * dmggoal; // r2 + class zNPCGoalEvilPat * evilgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2800 -> 0x002E2910 +*/ +// Range: 0x2E2800 -> 0x2E2910 +signed int NPCMessage(class zNPCRobot * this /* r20 */, class NPCMsg * mail /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2800 -> 0x2E2910 + class zNPCGoalCommon * curgoal; // r18 + class zNPCGoalCommon * recgoal; // r17 + class xPsyche * psy; // r16 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2910 -> 0x002E2A90 +*/ +// Range: 0x2E2910 -> 0x2E2A90 +signed int SysEvent(class zNPCRobot * this /* r30 */, class xBase * from /* r22 */, class xBase * to /* r21 */, unsigned int toEvent /* r20 */, float * toParam /* r19 */, class xBase * toParamWidget /* r18 */, signed int * handled /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2910 -> 0x2E2A90 + signed int doother; // r2 + class xGoal * curgoal; // r16 + class xGoal * recgoal; // r2 + class xPsyche * psy; // r23 + class NPCMsg npcmsg; // @ 0x005CC390 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2A90 -> 0x002E2CFC +*/ +// Range: 0x2E2A90 -> 0x2E2CFC +unsigned int AnimPick(signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2A90 -> 0x2E2CFC + signed int idx; // r4 + unsigned int da_anim; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2D00 -> 0x002E2F90 +*/ +// Range: 0x2E2D00 -> 0x2E2F90 +void SelfSetup(class zNPCRobot * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2D00 -> 0x2E2F90 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E2F90 -> 0x002E3000 +*/ +// Range: 0x2E2F90 -> 0x2E3000 +void NewTime(class zNPCRobot * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E2F90 -> 0x2E3000 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3000 -> 0x002E3078 +*/ +// Range: 0x2E3000 -> 0x2E3078 +void Process(class zNPCRobot * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E3000 -> 0x2E3078 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3080 -> 0x002E30B8 +*/ +// Range: 0x2E3080 -> 0x2E30B8 +void ParseINI(class zNPCRobot * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E3080 -> 0x2E30B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E30C0 -> 0x002E315C +*/ +// Range: 0x2E30C0 -> 0x2E315C +float GenShadCacheRad(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E30C0 -> 0x2E315C + float fac_use; // r20 + float rad_cache; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3160 -> 0x002E333C +*/ +// Range: 0x2E3160 -> 0x2E333C +void Reset(class zNPCRobot * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E3160 -> 0x2E333C + class zNPCGoalAfterlife * goal; // r2 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3340 -> 0x002E3384 +*/ +// Range: 0x2E3340 -> 0x2E3384 +void Init(class zNPCRobot * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E3340 -> 0x2E3384 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3390 -> 0x002E33C0 +*/ +// Range: 0x2E3390 -> 0x2E33C0 +unsigned char PhysicsFlags(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E3390 -> 0x2E33C0 + signed int flags; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E33C0 -> 0x002E33E0 +*/ +// Range: 0x2E33C0 -> 0x2E33E0 +unsigned char ColPenFlags(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E33C0 -> 0x2E33E0 + signed int flags; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E33E0 -> 0x002E3400 +*/ +// Range: 0x2E33E0 -> 0x2E3400 +unsigned char ColChkFlags(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E33E0 -> 0x2E3400 + signed int flags; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3400 -> 0x002E3598 +*/ +// Range: 0x2E3400 -> 0x2E3598 +class xAnimTable * ZNPC_AnimTable_Slick() { + // Blocks + /* anonymous block */ { + // Range: 0x2E3400 -> 0x2E3598 + class xAnimTable * table; // r16 + signed int ourAnims[4]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E35A0 -> 0x002E361C +*/ +// Range: 0x2E35A0 -> 0x2E361C +class xAnimTable * ZNPC_AnimTable_SlickShield() { + // Blocks + /* anonymous block */ { + // Range: 0x2E35A0 -> 0x2E361C + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3620 -> 0x002E369C +*/ +// Range: 0x2E3620 -> 0x2E369C +class xAnimTable * ZNPC_AnimTable_FloatDevice() { + // Blocks + /* anonymous block */ { + // Range: 0x2E3620 -> 0x2E369C + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E36A0 -> 0x002E3758 +*/ +// Range: 0x2E36A0 -> 0x2E3758 +class xAnimTable * ZNPC_AnimTable_Tubelet() { + // Blocks + /* anonymous block */ { + // Range: 0x2E36A0 -> 0x2E3758 + class xAnimTable * table; // r16 + signed int ourAnims[2]; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3760 -> 0x002E3988 +*/ +// Range: 0x2E3760 -> 0x2E3988 +class xAnimTable * ZNPC_AnimTable_Chuck() { + // Blocks + /* anonymous block */ { + // Range: 0x2E3760 -> 0x2E3988 + class xAnimTable * table; // r16 + signed int ourAnims[4]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3990 -> 0x002E3C10 +*/ +// Range: 0x2E3990 -> 0x2E3C10 +class xAnimTable * ZNPC_AnimTable_ArfArf() { + // Blocks + /* anonymous block */ { + // Range: 0x2E3990 -> 0x2E3C10 + class xAnimTable * table; // r16 + signed int ourAnims[7]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E3C10 -> 0x002E4120 +*/ +// Range: 0x2E3C10 -> 0x2E4120 +class xAnimTable * ZNPC_AnimTable_ArfDog() { + // Blocks + /* anonymous block */ { + // Range: 0x2E3C10 -> 0x2E4120 + class xAnimTable * table; // r16 + signed int ourAnims[17]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E4120 -> 0x002E4230 +*/ +// Range: 0x2E4120 -> 0x2E4230 +class xAnimTable * ZNPC_AnimTable_SleepyTime() { + // Blocks + /* anonymous block */ { + // Range: 0x2E4120 -> 0x2E4230 + class xAnimTable * table; // r16 + signed int ourAnims[3]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E4230 -> 0x002E42D8 +*/ +// Range: 0x2E4230 -> 0x2E42D8 +class xAnimTable * ZNPC_AnimTable_NightLight() { + // Blocks + /* anonymous block */ { + // Range: 0x2E4230 -> 0x2E42D8 + class xAnimTable * table; // r16 + signed int ourAnims[2]; // r29+0x48 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E42E0 -> 0x002E43E8 +*/ +// Range: 0x2E42E0 -> 0x2E43E8 +class xAnimTable * ZNPC_AnimTable_ThunderCloud() { + // Blocks + /* anonymous block */ { + // Range: 0x2E42E0 -> 0x2E43E8 + class xAnimTable * table; // r16 + signed int ourAnims[3]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E43F0 -> 0x002E45D8 +*/ +// Range: 0x2E43F0 -> 0x2E45D8 +class xAnimTable * ZNPC_AnimTable_Monsoon() { + // Blocks + /* anonymous block */ { + // Range: 0x2E43F0 -> 0x2E45D8 + class xAnimTable * table; // r16 + signed int ourAnims[5]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E45E0 -> 0x002E4930 +*/ +// Range: 0x2E45E0 -> 0x2E4930 +class xAnimTable * ZNPC_AnimTable_GLove() { + // Blocks + /* anonymous block */ { + // Range: 0x2E45E0 -> 0x2E4930 + class xAnimTable * table; // r16 + signed int ourAnims[8]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E4930 -> 0x002E49AC +*/ +// Range: 0x2E4930 -> 0x2E49AC +class xAnimTable * ZNPC_AnimTable_TTSauce() { + // Blocks + /* anonymous block */ { + // Range: 0x2E4930 -> 0x2E49AC + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E49B0 -> 0x002E4BD8 +*/ +// Range: 0x2E49B0 -> 0x2E4BD8 +class xAnimTable * ZNPC_AnimTable_TarTar() { + // Blocks + /* anonymous block */ { + // Range: 0x2E49B0 -> 0x2E4BD8 + class xAnimTable * table; // r16 + signed int ourAnims[4]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E4BE0 -> 0x002E4E58 +*/ +// Range: 0x2E4BE0 -> 0x2E4E58 +class xAnimTable * ZNPC_AnimTable_Hammer() { + // Blocks + /* anonymous block */ { + // Range: 0x2E4BE0 -> 0x2E4E58 + class xAnimTable * table; // r16 + signed int ourAnims[6]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E4E60 -> 0x002E5440 +*/ +// Range: 0x2E4E60 -> 0x2E5440 +class xAnimTable * ZNPC_AnimTable_Fodder() { + // Blocks + /* anonymous block */ { + // Range: 0x2E4E60 -> 0x2E5440 + class xAnimTable * table; // r16 + signed int ourAnims[16]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E5440 -> 0x002E5A9C +*/ +// Range: 0x2E5440 -> 0x2E5A9C +void ZNPC_AnimTable_RobotBase(class xAnimTable * table /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E5440 -> 0x2E5A9C + signed int ourAnims[17]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E5AA0 -> 0x002E5AC4 +*/ +// Range: 0x2E5AA0 -> 0x2E5AC4 +void ZNPC_Destroy_Robot(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E5AA0 -> 0x2E5AC4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E5AD0 -> 0x002E6308 +*/ +// Range: 0x2E5AD0 -> 0x2E6308 +class xFactoryInst * ZNPC_Create_Robot(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E5AD0 -> 0x2E6308 + class zNPCRobot * robo; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6310 -> 0x002E63B0 +*/ +// Range: 0x2E6310 -> 0x2E63B0 +void zNPCRobot_Timestep(float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6310 -> 0x2E63B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E63B0 -> 0x002E63D4 +*/ +// Range: 0x2E63B0 -> 0x2E63D4 +void zNPCRobot_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x2E63B0 -> 0x2E63D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E63E0 -> 0x002E63E8 +*/ +// Range: 0x2E63E0 -> 0x2E63E8 +void zNPCRobot_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x2E63E0 -> 0x2E63E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E63F0 -> 0x002E63FC +*/ +// Range: 0x2E63F0 -> 0x2E63FC +void zNPCRobot_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x2E63F0 -> 0x2E63FC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6400 -> 0x002E642C +*/ +// Range: 0x2E6400 -> 0x2E642C +void zNPCRobot_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6400 -> 0x2E642C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6430 -> 0x002E6438 +*/ +// Range: 0x2E6430 -> 0x2E6438 +void ZNPC_Robot_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6430 -> 0x2E6438 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6440 -> 0x002E6598 +*/ +// Range: 0x2E6440 -> 0x2E6598 +void ZNPC_Robot_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6440 -> 0x2E6598 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeRobot.h b/dwarf/SB/Game/zNPCTypeRobot.h new file mode 100644 index 000000000..7c7e59274 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeRobot.h @@ -0,0 +1,518 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5E80 -> 0x002D5E94 +*/ +// Range: 0x2D5E80 -> 0x2D5E94 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5E80 -> 0x2D5E94 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5EA0 -> 0x002D5EBC +*/ +// Range: 0x2D5EA0 -> 0x2D5EBC +signed int IsHealthy(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5EA0 -> 0x2D5EBC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5EC0 -> 0x002D5EF8 +*/ +// Range: 0x2D5EC0 -> 0x2D5EF8 +signed int IsAlive(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5EC0 -> 0x2D5EF8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5F00 -> 0x002D5F08 +*/ +// Range: 0x2D5F00 -> 0x2D5F08 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5F00 -> 0x2D5F08 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5F10 -> 0x002D5F18 +*/ +// Range: 0x2D5F10 -> 0x2D5F18 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2D5F10 -> 0x2D5F18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5F20 -> 0x002D5F28 +*/ +// Range: 0x2D5F20 -> 0x2D5F28 +class xEntDrive * PRIV_GetDriverData(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5F20 -> 0x2D5F28 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002D5F30 -> 0x002D5F38 +*/ +// Range: 0x2D5F30 -> 0x2D5F38 +class zNPCLassoInfo * PRIV_GetLassoData(class zNPCRobot * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2D5F30 -> 0x2D5F38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E1EA0 -> 0x002E1EB0 +*/ +// Range: 0x2E1EA0 -> 0x2E1EB0 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E1EA0 -> 0x2E1EB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E65A0 -> 0x002E65B4 +*/ +// Range: 0x2E65A0 -> 0x2E65B4 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E65A0 -> 0x2E65B4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E65C0 -> 0x002E65C8 +*/ +// Range: 0x2E65C0 -> 0x2E65C8 +signed int CanRope() { + // Blocks + /* anonymous block */ { + // Range: 0x2E65C0 -> 0x2E65C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E65D0 -> 0x002E65D8 +*/ +// Range: 0x2E65D0 -> 0x2E65D8 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E65D0 -> 0x2E65D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E65E0 -> 0x002E65E8 +*/ +// Range: 0x2E65E0 -> 0x2E65E8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E65E0 -> 0x2E65E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E65F0 -> 0x002E65F8 +*/ +// Range: 0x2E65F0 -> 0x2E65F8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E65F0 -> 0x2E65F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6600 -> 0x002E6608 +*/ +// Range: 0x2E6600 -> 0x2E6608 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6600 -> 0x2E6608 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6610 -> 0x002E6618 +*/ +// Range: 0x2E6610 -> 0x2E6618 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6610 -> 0x2E6618 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6620 -> 0x002E6634 +*/ +// Range: 0x2E6620 -> 0x2E6634 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6620 -> 0x2E6634 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6640 -> 0x002E6654 +*/ +// Range: 0x2E6640 -> 0x2E6654 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6640 -> 0x2E6654 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6660 -> 0x002E6668 +*/ +// Range: 0x2E6660 -> 0x2E6668 +void RenderExtra(class zNPCArfDog * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6660 -> 0x2E6668 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6670 -> 0x002E6678 +*/ +// Range: 0x2E6670 -> 0x2E6678 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6670 -> 0x2E6678 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6680 -> 0x002E6690 +*/ +// Range: 0x2E6680 -> 0x2E6690 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6680 -> 0x2E6690 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6690 -> 0x002E66A4 +*/ +// Range: 0x2E6690 -> 0x2E66A4 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6690 -> 0x2E66A4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E66B0 -> 0x002E66C4 +*/ +// Range: 0x2E66B0 -> 0x2E66C4 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E66B0 -> 0x2E66C4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E66D0 -> 0x002E66E4 +*/ +// Range: 0x2E66D0 -> 0x2E66E4 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E66D0 -> 0x2E66E4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E66F0 -> 0x002E6704 +*/ +// Range: 0x2E66F0 -> 0x2E6704 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E66F0 -> 0x2E6704 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6710 -> 0x002E6724 +*/ +// Range: 0x2E6710 -> 0x2E6724 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6710 -> 0x2E6724 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6730 -> 0x002E6744 +*/ +// Range: 0x2E6730 -> 0x2E6744 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6730 -> 0x2E6744 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6750 -> 0x002E6758 +*/ +// Range: 0x2E6750 -> 0x2E6758 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6750 -> 0x2E6758 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6760 -> 0x002E6770 +*/ +// Range: 0x2E6760 -> 0x2E6770 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6760 -> 0x2E6770 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6770 -> 0x002E6778 +*/ +// Range: 0x2E6770 -> 0x2E6778 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6770 -> 0x2E6778 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6780 -> 0x002E6790 +*/ +// Range: 0x2E6780 -> 0x2E6790 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6780 -> 0x2E6790 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6790 -> 0x002E6798 +*/ +// Range: 0x2E6790 -> 0x2E6798 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6790 -> 0x2E6798 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E67A0 -> 0x002E67B0 +*/ +// Range: 0x2E67A0 -> 0x2E67B0 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E67A0 -> 0x2E67B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E67B0 -> 0x002E67B8 +*/ +// Range: 0x2E67B0 -> 0x2E67B8 +void RenderExtra(class zNPCFodBomb * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E67B0 -> 0x2E67B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E67C0 -> 0x002E67C8 +*/ +// Range: 0x2E67C0 -> 0x2E67C8 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2E67C0 -> 0x2E67C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E67D0 -> 0x002E67E0 +*/ +// Range: 0x2E67D0 -> 0x2E67E0 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E67D0 -> 0x2E67E0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E67E0 -> 0x002E67E8 +*/ +// Range: 0x2E67E0 -> 0x2E67E8 +class zNPCLassoInfo * PRIV_GetLassoData() { + // Blocks + /* anonymous block */ { + // Range: 0x2E67E0 -> 0x2E67E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeRobot.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E67F0 -> 0x002E6800 +*/ +// Range: 0x2E67F0 -> 0x2E6800 +void LassoModelIndex(signed int * idxgrab /* r2 */, signed int * idxhold /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E67F0 -> 0x2E6800 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeSubBoss.cpp b/dwarf/SB/Game/zNPCTypeSubBoss.cpp new file mode 100644 index 000000000..09e447f7e --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeSubBoss.cpp @@ -0,0 +1,2197 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_subbanim[23]; // size: 0x5C, address: 0x5DE4D0 +char * g_strz_subbanim[23]; // size: 0x5C, address: 0x4E06C0 +static signed int g_contract_for_hire; // size: 0x4, address: 0x5100E0 +static class zParEmitter * g_pemit_holder; // size: 0x4, address: 0x5100E4 +static class xParEmitterCustomSettings g_parf_holder; // size: 0x16C, address: 0x5DE530 +struct /* @anon2 */ { + // total size: 0xCC +} __vt__11zNPCSubBoss; // size: 0xCC, address: 0x50C5F0 +struct /* @anon0 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon1 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zNPCSubBoss : public zNPCCommon { + // total size: 0x2B4 +public: + class NPCTarget tgt_cur; // offset 0x2A0, size 0x14 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xParGroup { + // total size: 0x0 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xCurveAsset { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +struct /* @anon0 */ { + // total size: 0xCC +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +struct /* @anon1 */ { + // total size: 0x54 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xCC +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325FD0 -> 0x00326014 +*/ +// Range: 0x325FD0 -> 0x326014 +void Setup(class zNPCSubBoss * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x325FD0 -> 0x326014 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326020 -> 0x00326044 +*/ +// Range: 0x326020 -> 0x326044 +void ZNPC_Destroy_SubBoss(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326020 -> 0x326044 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326050 -> 0x00326170 +*/ +// Range: 0x326050 -> 0x326170 +class xFactoryInst * ZNPC_Create_SubBoss(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x326050 -> 0x326170 + class zNPCSubBoss * boss; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326170 -> 0x00326178 +*/ +// Range: 0x326170 -> 0x326178 +void zNPCSubBoss_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x326170 -> 0x326178 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326180 -> 0x0032618C +*/ +// Range: 0x326180 -> 0x32618C +void zNPCSubBoss_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x326180 -> 0x32618C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00326190 -> 0x00326198 +*/ +// Range: 0x326190 -> 0x326198 +void ZNPC_SubBoss_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x326190 -> 0x326198 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003261A0 -> 0x00326200 +*/ +// Range: 0x3261A0 -> 0x326200 +void ZNPC_SubBoss_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x3261A0 -> 0x326200 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeSubBoss.h b/dwarf/SB/Game/zNPCTypeSubBoss.h new file mode 100644 index 000000000..eaf6314f7 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeSubBoss.h @@ -0,0 +1,70 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325F80 -> 0x00325F88 +*/ +// Range: 0x325F80 -> 0x325F88 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x325F80 -> 0x325F88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325F90 -> 0x00325F98 +*/ +// Range: 0x325F90 -> 0x325F98 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x325F90 -> 0x325F98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325FA0 -> 0x00325FA8 +*/ +// Range: 0x325FA0 -> 0x325FA8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x325FA0 -> 0x325FA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325FB0 -> 0x00325FB8 +*/ +// Range: 0x325FB0 -> 0x325FB8 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x325FB0 -> 0x325FB8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeSubBoss.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00325FC0 -> 0x00325FC8 +*/ +// Range: 0x325FC0 -> 0x325FC8 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x325FC0 -> 0x325FC8 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeTest.cpp b/dwarf/SB/Game/zNPCTypeTest.cpp new file mode 100644 index 000000000..81d91f1f6 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeTest.cpp @@ -0,0 +1,2207 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_testanim[11]; // size: 0x2C, address: 0x5DE1F0 +char * g_strz_testanim[11]; // size: 0x2C, address: 0x4E0550 +struct /* @anon0 */ { + // total size: 0xCC +} __vt__8zNPCTest; // size: 0xCC, address: 0x50C3C0 +struct /* @anon2 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon1 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zNPCTest : public zNPCCommon { + // total size: 0x2AC +public: + signed int numAnimations; // offset 0x2A0, size 0x4 + signed int currentState; // offset 0x2A4, size 0x4 + float transitionTimer; // offset 0x2A8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xParSys { + // total size: 0x0 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0xCC +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RyzMemData { + // total size: 0x1 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +struct /* @anon1 */ { + // total size: 0x54 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xCC +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324250 -> 0x0032426C +*/ +// Range: 0x324250 -> 0x32426C +unsigned int AnimPick(class zNPCTest * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324250 -> 0x32426C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324270 -> 0x0032428C +*/ +// Range: 0x324270 -> 0x32428C +void SelfSetup(class zNPCTest * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324270 -> 0x32428C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324290 -> 0x00324368 +*/ +// Range: 0x324290 -> 0x324368 +void Process(class zNPCTest * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324290 -> 0x324368 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324370 -> 0x00324398 +*/ +// Range: 0x324370 -> 0x324398 +void Reset(class zNPCTest * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324370 -> 0x324398 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003243A0 -> 0x00324510 +*/ +// Range: 0x3243A0 -> 0x324510 +class xAnimTable * ZNPC_AnimTable_Test() { + // Blocks + /* anonymous block */ { + // Range: 0x3243A0 -> 0x324510 + class xAnimTable * table; // r19 + char * * names; // r18 + signed int i; // r17 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324510 -> 0x00324534 +*/ +// Range: 0x324510 -> 0x324534 +void ZNPC_Destroy_Test(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324510 -> 0x324534 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324540 -> 0x003245D8 +*/ +// Range: 0x324540 -> 0x3245D8 +class xFactoryInst * ZNPC_Create_Test(signed int who /* r16 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324540 -> 0x3245D8 + class zNPCTest * inst; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003245E0 -> 0x003245E8 +*/ +// Range: 0x3245E0 -> 0x3245E8 +void ZNPC_Test_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x3245E0 -> 0x3245E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTest.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003245F0 -> 0x00324650 +*/ +// Range: 0x3245F0 -> 0x324650 +void ZNPC_Test_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x3245F0 -> 0x324650 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeTiki.cpp b/dwarf/SB/Game/zNPCTypeTiki.cpp new file mode 100644 index 000000000..91aad0a13 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeTiki.cpp @@ -0,0 +1,4064 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_tikianim[2]; // size: 0x8, address: 0x50FF58 +char * g_strz_tikianim[2]; // size: 0x8, address: 0x50F018 +static class zNPCTiki * orphanList; // size: 0x4, address: 0x50FF60 +static signed int numTikisOnScreen; // size: 0x4, address: 0x50FF64 +static signed int whichTikiToAnimate; // size: 0x4, address: 0x50F020 +static class zParEmitter * cloudEmitter; // size: 0x4, address: 0x50FF68 +static class xParEmitterCustomSettings loveyEmitterInfo; // size: 0x16C, address: 0x5CD200 +static class xParEmitterCustomSettings thunderEmitterInfo; // size: 0x16C, address: 0x5CD370 +static float sLoveyIconDist; // size: 0x4, address: 0x50F024 +static float sLoveyIconOffset; // size: 0x4, address: 0x50F028 +static class RwRaster * sHelmetRast; // size: 0x4, address: 0x50FF6C +static class _tagLightningAdd sThunderLightningInfo; // size: 0x40, address: 0x5CD4E0 +static float timeSinceLastExplode; // size: 0x4, address: 0x50F02C +static float g_tmr_talkytiki; // size: 0x4, address: 0x50F030 +struct /* @anon1 */ { + // total size: 0xCC +} __vt__8zNPCTiki; // size: 0xCC, address: 0x50B690 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +unsigned char * giAnimScratch; // size: 0x4, address: 0x50E80C +class NPCSndTrax g_sndTrax_TikiThunder[]; // size: 0x0, address: 0x4E0070 +class NPCSndTrax g_sndTrax_TikiShared[]; // size: 0x0, address: 0x4E0040 +signed int tikiDeadCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E6E90 +signed int tikiDyingCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E6EB0 +signed int thunderCountCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E6F50 +signed int thunderIdleCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E7330 +signed int quietHideCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E74C0 +signed int quietIdleCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E7670 +signed int loveyPatrolCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E78A0 +signed int loveyIdleCB(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2E7AB0 +void genericTikiRender(class xEnt *); // size: 0x0, address: 0x2E6D30 +void loveyTikiRender(class xEnt *); // size: 0x0, address: 0x2E69C0 +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon2 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon0 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zNPCGoalTikiDying : public zNPCGoalCommon { + // total size: 0x50 +public: + float tmr_dying; // offset 0x4C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class zNPCTiki : public zNPCCommon { + // total size: 0x378 +public: + unsigned int tikiFlag; // offset 0x2A0, size 0x4 + class xVec3 lastAt; // offset 0x2A4, size 0xC + class xBound origLocalBound; // offset 0x2B0, size 0x4C + class xVec3 deltaPos; // offset 0x2FC, size 0xC + float timeToLive; // offset 0x308, size 0x4 + float t1; // offset 0x30C, size 0x4 + float t2; // offset 0x310, size 0x4 + float t3; // offset 0x314, size 0x4 + class xVec3 v1; // offset 0x318, size 0xC + float vel; // offset 0x324, size 0x4 + float landHt; // offset 0x328, size 0x4 + class xEnt * nonTikiParent; // offset 0x32C, size 0x4 + class xVec3 nonTikiParentDisp; // offset 0x330, size 0xC + unsigned char numParents; // offset 0x33C, size 0x1 + class zNPCTiki * parents[4]; // offset 0x340, size 0x10 + unsigned char numChildren; // offset 0x350, size 0x1 + class zNPCTiki * children[4]; // offset 0x354, size 0x10 + class zNPCTiki * nextOrphan; // offset 0x364, size 0x4 + unsigned int updatedParents; // offset 0x368, size 0x4 + signed int contactParent; // offset 0x36C, size 0x4 + void * tikiAnim; // offset 0x370, size 0x4 + float tikiAnimTime; // offset 0x374, size 0x4 +}; +class zNPCGoalTikiPatrol : public zNPCGoalCommon { + // total size: 0x64 +public: + class xVec3 dest_pos; // offset 0x4C, size 0xC + class xVec3 vel; // offset 0x58, size 0xC +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class HAZCatProd : public HAZBall { + // total size: 0x44 +public: + class zLightning * zap_lyta; // offset 0x3C, size 0x4 + class zLightning * zap_lytb; // offset 0x40, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xParSys { + // total size: 0x0 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xFFX { + // total size: 0x0 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class xModelAssetParam { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class HAZMissile { + // total size: 0x4 +public: + float vel; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RyzMemData { + // total size: 0x1 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0xA4 +public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class HAZPatriot : public HAZMissile { + // total size: 0x1C +public: + class xVec3 pos_began; // offset 0x4, size 0xC + float spd_peak; // offset 0x10, size 0x4 + float spd_curr; // offset 0x14, size 0x4 + float acc_rate; // offset 0x18, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class zNPCGoalTikiCount : public zNPCGoalCommon { + // total size: 0x54 +public: + float tmr_count; // offset 0x4C, size 0x4 + signed int beingCarried; // offset 0x50, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class HAZTypical { + // total size: 0x3C +public: + class xMat3x3 mat_rotDelta; // offset 0x0, size 0x30 + float rad_min; // offset 0x30, size 0x4 + float rad_max; // offset 0x34, size 0x4 + float rad_cur; // offset 0x38, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum en_hazcol { + HAZ_COLTYP_STAT = 0, + HAZ_COLTYP_DYN = 1, + HAZ_COLTYP_NPC = 2, + HAZ_COLTYP_NOMORE = 3, + HAZ_COLTYP_FORCE = 2147483647, +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class NPCHazard { + // total size: 0xE4 +public: + enum en_npchaz typ_hazard; // offset 0x0, size 0x4 + signed int flg_hazard; // offset 0x4, size 0x4 + class xVec3 pos_hazard; // offset 0x8, size 0xC + class xModelInstance * mdl_hazard; // offset 0x14, size 0x4 + class UVAModelInfo * uva_uvanim; // offset 0x18, size 0x4 + float tym_lifespan; // offset 0x1C, size 0x4 + float tmr_remain; // offset 0x20, size 0x4 + float pam_interp; // offset 0x24, size 0x4 + union { // inferred + float tmr_generic; // offset 0x28, size 0x4 + float tmr_nextglob; // offset 0x28, size 0x4 + }; + union { // inferred + signed int cnt_generic; // offset 0x2C, size 0x4 + signed int cnt_nextemit; // offset 0x2C, size 0x4 + signed int flg_casthurt; // offset 0x2C, size 0x4 + }; + class /* @class */ { + // total size: 0xA4 + public: + union { // inferred + class HAZTypical typical; // offset 0x0, size 0x3C + class HAZCollide collide; // offset 0x0, size 0x84 + class HAZBall ball; // offset 0x0, size 0x3C + class HAZRing ring; // offset 0x0, size 0x40 + class HAZShroom shroom; // offset 0x0, size 0x54 + class HAZCloud cloud; // offset 0x0, size 0x68 + class HAZPatriot patriot; // offset 0x0, size 0x1C + class HAZTarTar tartar; // offset 0x0, size 0xA4 + class HAZCatProd catprod; // offset 0x0, size 0x44 + }; + } custdata; // offset 0x30, size 0xA4 + class HAZNotify * cb_notify; // offset 0xD4, size 0x4 + class zNPCCommon * npc_owner; // offset 0xD8, size 0x4 + class NPCHazard * haz_parent; // offset 0xDC, size 0x4 + class xShadowCache * shadowCache; // offset 0xE0, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class HAZCollide : public HAZTypical { + // total size: 0x84 +public: + class xVec3 pos_collide; // offset 0x3C, size 0xC + class xVec3 dir_normal; // offset 0x48, size 0xC + class xParabola parabinfo; // offset 0x54, size 0x24 + signed int flg_collide : 8; // offset 0x78, size 0x4 + signed int flg_result : 8; // offset 0x78, size 0x4 + signed int flg_unused : 16; // offset 0x78, size 0x4 + signed int cnt_skipcol; // offset 0x7C, size 0x4 + enum en_hazcol idx_rotateCol; // offset 0x80, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class HAZNotify { + // total size: 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class HAZBall : public HAZTypical { + // total size: 0x3C +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class UVAModelInfo { + // total size: 0x20 +public: + class xVec2 offset_vel; // offset 0x0, size 0x8 + unsigned int flg_uvam; // offset 0x8, size 0x4 + class RpAtomic * model; // offset 0xC, size 0x4 + class RwTexCoords * uv; // offset 0x10, size 0x4 + signed int uvsize; // offset 0x14, size 0x4 + class xVec2 offset; // offset 0x18, size 0x8 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +struct /* @anon0 */ { + // total size: 0x54 +}; +struct /* @anon1 */ { + // total size: 0xCC +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class HAZRing : public HAZTypical { + // total size: 0x40 +public: + float hyt_ring; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class HAZTarTar : public HAZCollide { + // total size: 0xA4 +public: + class xVec3 vel; // offset 0x84, size 0xC + float spd_lob; // offset 0x90, size 0x4 + class xVec3 pos_tgt; // offset 0x94, size 0xC + unsigned int streakID; // offset 0xA0, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class zNPCGoalTikiIdle : public zNPCGoalCommon { + // total size: 0x50 +public: + float tmr_wait; // offset 0x4C, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class HAZShroom : public HAZTypical { + // total size: 0x54 +public: + class xVec3 vel_rise; // offset 0x3C, size 0xC + class xVec3 acc_rise; // offset 0x48, size 0xC +}; +enum en_npchaz { + NPC_HAZ_UNKNOWN = 0, + NPC_HAZ_EXPLODE = 1, + NPC_HAZ_EXPLODE_INNER = 2, + NPC_HAZ_FODBOMB = 3, + NPC_HAZ_CATTLEPROD = 4, + NPC_HAZ_TUBELETBLAST = 5, + NPC_HAZ_PUPPYNUKE = 6, + NPC_HAZ_DUPLOBOOM = 7, + NPC_HAZ_DUPLO_SHROOM = 8, + NPC_HAZ_PATRIOT = 9, + NPC_HAZ_TARTARPROJ = 10, + NPC_HAZ_TARTARSPILL = 11, + NPC_HAZ_TARTARSTINK = 12, + NPC_HAZ_CHUCKBOMB = 13, + NPC_HAZ_CHUCKBLAST = 14, + NPC_HAZ_CHUCKBLOOSH = 15, + NPC_HAZ_ARFBONE = 16, + NPC_HAZ_ARFBONEBLAST = 17, + NPC_HAZ_OILBUBBLE = 18, + NPC_HAZ_OILSLICK = 19, + NPC_HAZ_OILBURST = 20, + NPC_HAZ_OILGLOB = 21, + NPC_HAZ_MONCLOUD = 22, + NPC_HAZ_FUNFRAG = 23, + NPC_HAZ_THUNDER = 24, + NPC_HAZ_ROBOBITS = 25, + NPC_HAZ_VISSPLASH = 26, + NPC_HAZ_NOMORE = 27, + NPC_HAZ_FORCE = 2147483647, +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class HAZCloud : public HAZTypical { + // total size: 0x68 +public: + float spd_cloud; // offset 0x3C, size 0x4 + class xVec3 pos_home; // offset 0x40, size 0xC + float rad_maxRange; // offset 0x4C, size 0x4 + float tmr_dozap; // offset 0x50, size 0x4 + class zLightning * zap_lytnin; // offset 0x54, size 0x4 + class zLightning * zap_warnin; // offset 0x58, size 0x4 + class xVec3 pos_warnin; // offset 0x5C, size 0xC +}; +struct /* @anon2 */ { + // total size: 0xCC +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E69C0 -> 0x002E6D28 +*/ +// Range: 0x2E69C0 -> 0x2E6D28 +static void loveyTikiRender(class xEnt * ent /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E69C0 -> 0x2E6D28 + class xModelInstance * model; // r18 + float factor; // r20 + class xShadowCache cache; // r29+0x60 + class xVec3 center; // r29+0x30E0 + signed int shadowResult; // r29+0x30EC + signed int alphaTooLow; // r17 + class xVec3 shadVec; // r29+0x30D0 + float dot; // r1 + class xModelInstance * curr; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6D30 -> 0x002E6E8C +*/ +// Range: 0x2E6D30 -> 0x2E6E8C +static void genericTikiRender(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6D30 -> 0x2E6E8C + float dot; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6E90 -> 0x002E6EB0 +*/ +// Range: 0x2E6E90 -> 0x2E6EB0 +static signed int tikiDeadCB(class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6E90 -> 0x2E6EB0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6EB0 -> 0x002E6F48 +*/ +// Range: 0x2E6EB0 -> 0x2E6F48 +static signed int tikiDyingCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6EB0 -> 0x2E6F48 + class zNPCGoalTikiDying * goal; // r16 + signed int nextgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6F50 -> 0x002E732C +*/ +// Range: 0x2E6F50 -> 0x2E732C +static signed int thunderCountCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6F50 -> 0x2E732C + class zNPCGoalTikiCount * goal; // r16 + class zNPCTiki * tiki; // r19 + signed int nextgoal; // r18 + float gfactor; // r3 + float factor; // r5 + class xVec3 sPos; // r29+0x70 + class xVec3 ePos; // r29+0x60 + float hght; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E7330 -> 0x002E74C0 +*/ +// Range: 0x2E7330 -> 0x2E74C0 +static signed int thunderIdleCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E7330 -> 0x2E74C0 + class zNPCGoalTikiIdle * goal; // r17 + class zNPCTiki * tiki; // r2 + signed int nextgoal; // r16 + float factor; // r29+0x50 + float max_dist; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E74C0 -> 0x002E7670 +*/ +// Range: 0x2E74C0 -> 0x2E7670 +static signed int quietHideCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E74C0 -> 0x2E7670 + class zNPCTiki * tiki; // r17 + signed int nextgoal; // r16 + float scale; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E7670 -> 0x002E7898 +*/ +// Range: 0x2E7670 -> 0x2E7898 +static signed int quietIdleCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E7670 -> 0x2E7898 + class zNPCTiki * tiki; // r17 + signed int nextgoal; // r16 + unsigned char notSneaking; // r3 + float scale; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E78A0 -> 0x002E7AA4 +*/ +// Range: 0x2E78A0 -> 0x2E7AA4 +static signed int loveyPatrolCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E78A0 -> 0x2E7AA4 + class zNPCGoalTikiPatrol * goal; // r18 + class zNPCTiki * tiki; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E7AB0 -> 0x002E7CB4 +*/ +// Range: 0x2E7AB0 -> 0x2E7CB4 +static signed int loveyIdleCB(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E7AB0 -> 0x2E7CB4 + class zNPCGoalTikiIdle * goal; // r18 + class zNPCTiki * tiki; // r17 + signed int nextgoal; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E7CC0 -> 0x002E7E68 +*/ +// Range: 0x2E7CC0 -> 0x2E7E68 +void RemoveFromFamily(class zNPCTiki * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E7CC0 -> 0x2E7E68 + unsigned char i; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E7E70 -> 0x002E85EC +*/ +// Range: 0x2E7E70 -> 0x2E85EC +void FindParents(class zNPCTiki * this /* r17 */, class zScene * zsc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E7E70 -> 0x2E85EC + class xRay3 ray; // r29+0xB0 + class xCollis c; // r29+0x60 + class xSurface * surf; // r2 + class zSurfaceProps * prop; // r3 + float oldLower; // r24 + float oldUpper; // r23 + signed int i; // r11 + class xNPCBasic * npc; // r10 + class zNPCTiki * tiki; // r2 + unsigned char couldBe; // r9 + unsigned char i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E85F0 -> 0x002E8A58 +*/ +// Range: 0x2E85F0 -> 0x2E8A58 +signed int SysEvent(class zNPCTiki * this /* r22 */, class xBase * from /* r21 */, class xBase * to /* r20 */, unsigned int toEvent /* r19 */, float * toParam /* r18 */, class xBase * toParamWidget /* r17 */, signed int * handled /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E85F0 -> 0x2E8A58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E8A60 -> 0x002E9644 +*/ +// Range: 0x2E8A60 -> 0x2E9644 +void Process(class zNPCTiki * this /* r19 */, class xScene * xscn /* r18 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E8A60 -> 0x2E9644 + unsigned int i; // r17 + float duration; // r20 + class xQuat * q0; // r17 + class xVec3 * t0; // r16 + float dy; // r1 + float dh; // r2 + float dh; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E9650 -> 0x002E96C0 +*/ +// Range: 0x2E9650 -> 0x2E96C0 +void ParseINI(class zNPCTiki * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E9650 -> 0x2E96C0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E96C0 -> 0x002E98A0 +*/ +// Range: 0x2E96C0 -> 0x2E98A0 +void SelfSetup(class zNPCTiki * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E96C0 -> 0x2E98A0 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E98A0 -> 0x002E9A64 +*/ +// Range: 0x2E98A0 -> 0x2E9A64 +signed int SetCarryState(class zNPCTiki * this /* r2 */, enum en_NPC_CARRY_STATE cs /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E98A0 -> 0x2E9A64 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E9A70 -> 0x002E9AF0 +*/ +// Range: 0x2E9A70 -> 0x2E9AF0 +void Damage(class zNPCTiki * this /* r16 */, enum en_NPC_DAMAGE_TYPE damtype /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E9A70 -> 0x2E9AF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E9AF0 -> 0x002E9DCC +*/ +// Range: 0x2E9AF0 -> 0x2E9DCC +void Init(class zNPCTiki * this /* r16 */, class xEntAsset * entass /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E9AF0 -> 0x2E9DCC + class xModelInstance * nextModel; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E9DD0 -> 0x002E9E14 +*/ +// Range: 0x2E9DD0 -> 0x2E9E14 +void Setup(class zNPCTiki * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E9DD0 -> 0x2E9E14 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E9E20 -> 0x002EA078 +*/ +// Range: 0x2E9E20 -> 0x2EA078 +void Reset(class zNPCTiki * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E9E20 -> 0x2EA078 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA080 -> 0x002EA0FC +*/ +// Range: 0x2EA080 -> 0x2EA0FC +class xAnimTable * ZNPC_AnimTable_Tiki() { + // Blocks + /* anonymous block */ { + // Range: 0x2EA080 -> 0x2EA0FC + class xAnimTable * table; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA100 -> 0x002EA124 +*/ +// Range: 0x2EA100 -> 0x2EA124 +void ZNPC_Destroy_Tiki(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EA100 -> 0x2EA124 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA130 -> 0x002EA208 +*/ +// Range: 0x2EA130 -> 0x2EA208 +class xFactoryInst * ZNPC_Create_Tiki(signed int who /* r17 */, class RyzMemGrow * grow /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EA130 -> 0x2EA208 + class zNPCTiki * tiki; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA210 -> 0x002EA2C4 +*/ +// Range: 0x2EA210 -> 0x2EA2C4 +void zNPCTiki_ReparentOrphans() { + // Blocks + /* anonymous block */ { + // Range: 0x2EA210 -> 0x2EA2C4 + class zNPCTiki * holder; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA2D0 -> 0x002EA32C +*/ +// Range: 0x2EA2D0 -> 0x2EA32C +void zNPCTiki_Timestep(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EA2D0 -> 0x2EA32C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA330 -> 0x002EA4C8 +*/ +// Range: 0x2EA330 -> 0x2EA4C8 +static void zNPCTiki_PickTikisToAnimate() { + // Blocks + /* anonymous block */ { + // Range: 0x2EA330 -> 0x2EA4C8 + class xCollis * coll; // r9 + class xCollis * cend; // r8 + class xNPCBasic * npc; // r7 + class zNPCTiki * currOrphan; // r4 + class xNPCBasic * npc; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA4D0 -> 0x002EA81C +*/ +// Range: 0x2EA4D0 -> 0x2EA81C +void zNPCTiki_ExplodeFX(class zNPCTiki * tiki /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EA4D0 -> 0x2EA81C + class xVec3 shockwavePos; // r29+0x50 + class NPCHazard * haz; // r16 + class zScene * zsc; // r18 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EA820 -> 0x002EAD0C +*/ +// Range: 0x2EA820 -> 0x2EAD0C +void zNPCTiki_InitFX() { + // Blocks + /* anonymous block */ { + // Range: 0x2EA820 -> 0x2EAD0C + class RwTexture * tex; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAD10 -> 0x002EAE10 +*/ +// Range: 0x2EAD10 -> 0x2EAE10 +void zNPCTiki_InitStacking(class zScene * zsc /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EAD10 -> 0x2EAE10 + signed int i; // r18 + class xNPCBasic * npc; // r17 + class zNPCTiki * tiki; // r2 + float dh; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAE10 -> 0x002EAE18 +*/ +// Range: 0x2EAE10 -> 0x2EAE18 +void ZNPC_Tiki_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2EAE10 -> 0x2EAE18 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAE20 -> 0x002EAE78 +*/ +// Range: 0x2EAE20 -> 0x2EAE78 +void ZNPC_Tiki_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2EAE20 -> 0x2EAE78 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeTiki.h b/dwarf/SB/Game/zNPCTypeTiki.h new file mode 100644 index 000000000..2b1772baa --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeTiki.h @@ -0,0 +1,154 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00156860 -> 0x0015686C +*/ +// Range: 0x156860 -> 0x15686C +signed int IsHealthy(class zNPCTiki * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x156860 -> 0x15686C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6910 -> 0x002E6918 +*/ +// Range: 0x2E6910 -> 0x2E6918 +signed int CanRope() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6910 -> 0x2E6918 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6920 -> 0x002E692C +*/ +// Range: 0x2E6920 -> 0x2E692C +unsigned int AnimPick() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6920 -> 0x2E692C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6930 -> 0x002E6938 +*/ +// Range: 0x2E6930 -> 0x2E6938 +void Move() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6930 -> 0x2E6938 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6940 -> 0x002E6948 +*/ +// Range: 0x2E6940 -> 0x2E6948 +void BUpdate(class zNPCTiki * this /* r2 */, class xVec3 * pos /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6940 -> 0x2E6948 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6950 -> 0x002E6964 +*/ +// Range: 0x2E6950 -> 0x2E6964 +signed int IsAlive(class zNPCTiki * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6950 -> 0x2E6964 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6970 -> 0x002E6978 +*/ +// Range: 0x2E6970 -> 0x2E6978 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6970 -> 0x2E6978 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6980 -> 0x002E6988 +*/ +// Range: 0x2E6980 -> 0x2E6988 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6980 -> 0x2E6988 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6990 -> 0x002E6998 +*/ +// Range: 0x2E6990 -> 0x2E6998 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6990 -> 0x2E6998 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E69A0 -> 0x002E69A8 +*/ +// Range: 0x2E69A0 -> 0x2E69A8 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E69A0 -> 0x2E69A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeTiki.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E69B0 -> 0x002E69B8 +*/ +// Range: 0x2E69B0 -> 0x2E69B8 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2E69B0 -> 0x2E69B8 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeVillager.cpp b/dwarf/SB/Game/zNPCTypeVillager.cpp new file mode 100644 index 000000000..76e5973a0 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeVillager.cpp @@ -0,0 +1,5105 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int g_hash_folkanim[26]; // size: 0x68, address: 0x5CD520 +char * g_strz_folkanim[26]; // size: 0x68, address: 0x4DF520 +static unsigned int g_hash_platanim[2]; // size: 0x8, address: 0x50FF70 +static char * g_strz_platanim[2]; // size: 0x8, address: 0x50F038 +static signed int g_npcmsglock; // size: 0x4, address: 0x0 +static class NPCMsg g_npcmsg; // size: 0x44, address: 0x0 +static class zParEmitter * g_pemit_aqualeak; // size: 0x4, address: 0x50FF78 +static class xParEmitterCustomSettings g_parf_aqualeak; // size: 0x16C, address: 0x5CD590 +float g_vilg_ds2_playernear; // size: 0x4, address: 0x50F040 +float g_vilg_ds2_playergoing; // size: 0x4, address: 0x50F044 +static signed int goalsWhichCheer[6]; // size: 0x18, address: 0x4DF650 +static float g_rad_cowercheck; // size: 0x4, address: 0x50F048 +static char * news_fish_audio[71]; // size: 0x11C, address: 0x4DF680 +static unsigned int news_fish_audio_hash[71]; // size: 0x11C, address: 0x5CD700 +class RwRaster * rast_shadBalloon; // size: 0x4, address: 0x50FF7C +unsigned int aid_fresnelTxtr; // size: 0x4, address: 0x50FF84 +unsigned int aid_enviroTxtr; // size: 0x4, address: 0x50FF88 +class RwTexture * txtr_fresnel; // size: 0x4, address: 0x50FF8C +class RwTexture * txtr_enviro; // size: 0x4, address: 0x50FF90 +class RwRaster * rast_fresnel; // size: 0x4, address: 0x50FF94 +class RwRaster * rast_enviro; // size: 0x4, address: 0x50FF98 +float alf_currBubBud; // size: 0x4, address: 0x50F04C +class xEnt * CruiseBubbleDoesBubbleBuddyToo; // size: 0x4, address: 0x50FF9C +static unsigned int bb_env_texture; // size: 0x4, address: 0x50FFA4 +static unsigned int bb_fresnel_texture; // size: 0x4, address: 0x50FFA8 +struct /* @anon10 */ { + // total size: 0xD0 +} __vt__15zNPCBubbleBuddy; // size: 0xD0, address: 0x50B760 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +float EnvMapShininess; // size: 0x4, address: 0x50E858 +class RpMaterial * MaterialSetShininess(class RpMaterial *, void *); // size: 0x0, address: 0x1EACD0 +class RpAtomic * (* gAtomicRenderCallBack)(class RpAtomic *); // size: 0x4, address: 0x50F9BC +unsigned int gFXSurfaceFlags; // size: 0x4, address: 0x50F4D8 +class RpAtomic * AtomicDefaultRenderCallBack(class RpAtomic *); // size: 0x0, address: 0x21F4C0 +class RpAtomic * NPC_BubBud_RenderCB(class RpAtomic *); // size: 0x0, address: 0x2EB140 +class xVec3 g_NY3; // size: 0xC, address: 0x4F8DC0 +class xLightKit * gLastLightKit; // size: 0x4, address: 0x50FFD4 +class xVec3 g_Y3; // size: 0xC, address: 0x4F8D90 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +signed int MERC_grul_goAlert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2EAED0 +signed int FOLK_grul_goAlert(class xGoal *, void *, enum en_trantype *, float, void *); // size: 0x0, address: 0x2EB0A0 +class NPCSndTrax g_sndTrax_VillagerGirl[]; // size: 0x0, address: 0x4DFFF0 +class NPCSndTrax g_sndTrax_VillagerBoy[]; // size: 0x0, address: 0x4DFFD0 +class NPCSndTrax g_sndTrax_VillagerEldess[]; // size: 0x0, address: 0x5CF9D8 +class NPCSndTrax g_sndTrax_VillagerElder[]; // size: 0x0, address: 0x5CF9C8 +class NPCSndTrax g_sndTrax_VillagerFemale[]; // size: 0x0, address: 0x5CF9B8 +class NPCSndTrax g_sndTrax_VillagerMale[]; // size: 0x0, address: 0x5CF9A8 +class NPCSndTrax g_sndTrax_Squidward[]; // size: 0x0, address: 0x4DFEC0 +class NPCSndTrax g_sndTrax_VillagerCoStar[]; // size: 0x0, address: 0x4DFF10 +class NPCSndTrax g_sndTrax_Villager[]; // size: 0x0, address: 0x4DFD70 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +struct /* @anon1 */ { + // total size: 0x10 +} __vt__7HiThere; // size: 0x10, address: 0x50B900 +struct /* @anon9 */ { + // total size: 0x10 +} __vt__Q28ztaskbox8callback; // size: 0x10, address: 0x50B910 +struct /* @anon5 */ { + // total size: 0xD0 +} __vt__12zNPCVillager; // size: 0xD0, address: 0x50BD30 +struct /* @anon6 */ { + // total size: 0xCC +} __vt__10zNPCCommon; // size: 0xCC, address: 0x50A6C0 +struct /* @anon8 */ { + // total size: 0x54 +} __vt__9xNPCBasic; // size: 0x54, address: 0x50BE30 +struct /* @anon4 */ { + // total size: 0xD0 +} __vt__14zNPCNewsFishTV; // size: 0xD0, address: 0x50B830 +struct /* @anon7 */ { + // total size: 0xD0 +} __vt__12zNPCNewsFish; // size: 0xD0, address: 0x50BAC0 +struct /* @anon2 */ { + // total size: 0xD0 +} __vt__15zNPCMerManChair; // size: 0xD0, address: 0x50BB90 +struct /* @anon3 */ { + // total size: 0xD0 +} __vt__15zNPCSandyBikini; // size: 0xD0, address: 0x50B9F0 +struct /* @anon11 */ { + // total size: 0xD0 +} __vt__14zNPCBalloonBoy; // size: 0xD0, address: 0x50B920 +struct /* @anon0 */ { + // total size: 0xD0 +} __vt__8zNPCFish; // size: 0xD0, address: 0x50BC60 +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zNPCBalloonBoy : public zNPCFish { + // total size: 0x354 +public: + signed int specialBalloon; // offset 0x348, size 0x4 + class zPlatform * plat_balloons; // offset 0x34C, size 0x4 + class xShadowCache * shadCache; // offset 0x350, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zNPCVillager : public zNPCCommon { + // total size: 0x2B0 +public: + class HiThere hithere; // offset 0x2A0, size 0x8 + class ztaskbox * converse; // offset 0x2A8, size 0x4 + signed int current_talk_anim; // offset 0x2AC, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zNPCNewsFish : public zNPCVillager { + // total size: 0x530 +public: + class say_data said[71]; // offset 0x2B0, size 0x238 + unsigned char was_reset; // offset 0x4E8, size 0x1 + unsigned int soundHandle; // offset 0x4EC, size 0x4 + unsigned int currSoundID; // offset 0x4F0, size 0x4 + unsigned int nextSoundID; // offset 0x4F4, size 0x4 + float jawTime; // offset 0x4F8, size 0x4 + void * jawData; // offset 0x4FC, size 0x4 + unsigned int newsfishFlags; // offset 0x500, size 0x4 + class xVec2 onScreenCoords; // offset 0x504, size 0x8 + class xVec2 offScreenCoords; // offset 0x50C, size 0x8 + class xVec2 screenCoords; // offset 0x514, size 0x8 + float screenSize; // offset 0x51C, size 0x4 + float screenRot; // offset 0x520, size 0x4 + float appearSpeed; // offset 0x524, size 0x4 + float disappearSpeed; // offset 0x528, size 0x4 + float screenLerp; // offset 0x52C, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xSFX : public xBase { + // total size: 0x1C +public: + class xSFXAsset * asset; // offset 0x10, size 0x4 + unsigned int sndID; // offset 0x14, size 0x4 + float cachedOuterDistSquared; // offset 0x18, size 0x4 +}; +class NPCAreaInfo { + // total size: 0x10 +public: + class zNPCCommon * npc_origin; // offset 0x0, size 0x4 + class xVec3 pos_origin; // offset 0x4, size 0xC +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0xD0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class NPCMsg { + // total size: 0x44 +public: + enum en_NPC_MSG_ID msgid; // offset 0x0, size 0x4 + unsigned int sendto; // offset 0x4, size 0x4 + unsigned int from; // offset 0x8, size 0x4 + enum en_NPC_MSG_DATA infotype; // offset 0xC, size 0x4 + union { // inferred + class NPCSysEvent sysevent; // offset 0x10, size 0x28 + class NPCBlastInfo blastarea; // offset 0x10, size 0x14 + class NPCChatInfo chatter; // offset 0x10, size 0x10 + class NPCSpawnInfo spawning; // offset 0x10, size 0x18 + class NPCTargetInfo target; // offset 0x10, size 0x10 + class NPCDamageInfo dmgdata; // offset 0x10, size 0x14 + class NPCStunInfo stundata; // offset 0x10, size 0xC + class NPCScriptInfo scriptdata; // offset 0x10, size 0x4 + class NPCMountInfo mountdata; // offset 0x10, size 0x8 + class NPCAreaInfo areadata; // offset 0x10, size 0x10 + }; + void * attached; // offset 0x38, size 0x4 + class NPCMsg * next; // offset 0x3C, size 0x4 + float tmr_delay; // offset 0x40, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x10 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xParGroup { + // total size: 0x0 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +enum en_NPC_MSG_DATA { + NPC_MDAT_BLANK = 0, + NPC_MDAT_SYSEVENT = 1, + NPC_MDAT_BLAST = 2, + NPC_MDAT_CHAT = 3, + NPC_MDAT_SPAWN = 4, + NPC_MDAT_TARGET = 5, + NPC_MDAT_DAMAGE = 6, + NPC_MDAT_STUN = 7, + NPC_MDAT_SCRIPT = 8, + NPC_MDAT_MOUNT = 9, + NPC_MDAT_AREANOTIFY = 10, + NPC_MDAT_NOMORE = 11, + NPC_MDAT_FORCE = 2147483647, +}; +class asset_type { + // total size: 0x0 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class callback { + // total size: 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class NPCChatInfo { + // total size: 0x10 +public: + class xVec3 pos_chat; // offset 0x0, size 0xC + float tym_chat; // offset 0xC, size 0x4 +}; +class zNPCFish : public zNPCVillager { + // total size: 0x348 +public: + class NPCTarget tgt_robonear; // offset 0x2B0, size 0x14 + float tmr_robonear; // offset 0x2C4, size 0x4 + float tmr_checkagain; // offset 0x2C8, size 0x4 + class xEntDrive raw_drvdata; // offset 0x2CC, size 0x7C +}; +class zNPCGoalCommon : public xGoal { + // total size: 0x4C +public: + signed int flg_npcgauto; // offset 0x3C, size 0x4 + signed int flg_npcgable; // offset 0x40, size 0x4 + unsigned int anid_played; // offset 0x44, size 0x4 + signed int flg_info : 16; // offset 0x48, size 0x4 + signed int flg_user : 16; // offset 0x48, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xSFXAsset : public xBaseAsset { + // total size: 0x30 +public: + unsigned short flagsSFX; // offset 0x8, size 0x2 + unsigned short freq; // offset 0xA, size 0x2 + float freqm; // offset 0xC, size 0x4 + unsigned int soundAssetID; // offset 0x10, size 0x4 + unsigned int attachID; // offset 0x14, size 0x4 + unsigned char loopCount; // offset 0x18, size 0x1 + unsigned char priority; // offset 0x19, size 0x1 + unsigned char volume; // offset 0x1A, size 0x1 + unsigned char pad; // offset 0x1B, size 0x1 + class xVec3 pos; // offset 0x1C, size 0xC + float innerRadius; // offset 0x28, size 0x4 + float outerRadius; // offset 0x2C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +enum say_enum { + INVALID_SAY = -1, + SAY_B101_01 = 0, + SAY_B101_02 = 1, + SAY_B101_03 = 2, + SAY_B101_04 = 3, + SAY_B101_05 = 4, + SAY_B101_06 = 5, + SAY_B101_07 = 6, + SAY_B101_08 = 7, + SAY_B101_09 = 8, + SAY_B101_10 = 9, + SAY_B101_11 = 10, + SAY_B101_12 = 11, + SAY_B101_13 = 12, + SAY_B101_14 = 13, + SAY_B101_15 = 14, + SAY_B101_16 = 15, + SAY_B201_01 = 16, + SAY_B201_02 = 17, + SAY_B201_03 = 18, + SAY_B201_04 = 19, + SAY_B201_05 = 20, + SAY_B201_06 = 21, + SAY_B201_07 = 22, + SAY_B303_INTRO_1 = 23, + SAY_B303_INTRO_2 = 24, + SAY_B303_FUSE_NEAR = 25, + SAY_B303_FUSE_HIT = 26, + SAY_B303_BRAIN_HELP_1 = 27, + SAY_B303_BRAIN_HELP_2 = 28, + SAY_B303_BRAIN_HELP_3 = 29, + SAY_HIT_PLAYER_1 = 30, + SAY_HIT_PLAYER_2 = 31, + SAY_HIT_PLAYER_3 = 32, + SAY_HIT_PLAYER_4 = 33, + SAY_HIT_PLAYER_5 = 34, + SAY_HIT_PLAYER_6 = 35, + SAY_BOWL_HIT_1 = 36, + SAY_BOWL_HIT_2 = 37, + SAY_BOWL_HIT_3 = 38, + SAY_BOWL_HIT_4 = 39, + SAY_BOWL_HIT_5 = 40, + SAY_BOWL_HELP = 41, + SAY_HIT_BOSS_1 = 42, + SAY_HIT_BOSS_2 = 43, + SAY_SANDY_SPLIT = 44, + SAY_SANDY_FLY = 45, + SAY_SB_VICTORY = 46, + SAY_SB_ROUGH_RIDE = 47, + SAY_SB_BACK = 48, + SAY_SB_HIT_FAIL_1 = 49, + SAY_SB_HIT_FAIL_2 = 50, + SAY_SB_HIT_BOSS_1 = 51, + SAY_SB_HIT_BOSS_2 = 52, + SAY_SB_HIT_BOSS_3 = 53, + SAY_SB_VULN_1 = 54, + SAY_SB_VULN_2 = 55, + SAY_SB_VULN_3 = 56, + SAY_SB_VULN_4 = 57, + SAY_SB_VULN_5 = 58, + SAY_ROBOT_TACTICS = 59, + SAY_ROBOT_HIT_FAIL = 60, + SAY_ROBOT_DIZZY = 61, + SAY_ROBOT_STUN_1 = 62, + SAY_ROBOT_STUN_2 = 63, + SAY_ROBOT_STUN_3 = 64, + SAY_ROBOT_HIT = 65, + SAY_ROBOT_VULN_1 = 66, + SAY_ROBOT_VULN_2 = 67, + SAY_SPIN = 68, + SAY_B302_INTRO = 69, + SAY_HIT_LAST = 70, + MAX_SAY = 71, +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xBehaveMgr : public RyzMemData { + // total size: 0x18 +public: + class xFactory * goalFactory; // offset 0x0, size 0x4 + class xPsyche * psypool; // offset 0x4, size 0x4 + class st_XORDEREDARRAY psylist; // offset 0x8, size 0x10 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +enum en_NPC_GOAL_SPOT { + NPC_GSPOT_START = 32, + NPC_GSPOT_RESUME = 33, + NPC_GSPOT_FINISH = 34, + NPC_GSPOT_STARTALT = 35, + NPC_GSPOT_ALTA = 36, + NPC_GSPOT_ALTB = 37, + NPC_GSPOT_PATROLPAUSE = 38, + NPC_GSPOT_NOMORE = 39, + NPC_GSPOT_FORCEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class zNPCMerManChair : public zNPCVillager { + // total size: 0x2B4 +public: + signed int flg_mermanchair; // offset 0x2B0, size 0x4 +}; +class zNPCGoalCheer : public zNPCGoalLoopAnim { + // total size: 0x6C +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +struct /* @anon2 */ { + // total size: 0xD0 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zEntHangable { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +enum en_NPC_CARRY_STATE { + zNPCCARRY_NONE = 0, + zNPCCARRY_PICKUP = 1, + zNPCCARRY_THROW = 2, + zNPCCARRY_ATTEMPTPICKUP = 3, + zNPCCARRY_FORCEINT = 2147483647, +}; +class NPCSpawnInfo { + // total size: 0x18 +public: + class xVec3 pos_spawn; // offset 0x0, size 0xC + class zMovePoint * nav_firstMovepoint; // offset 0xC, size 0x4 + class zMovePoint * nav_spawnReference; // offset 0x10, size 0x4 + signed int spawnSuccess; // offset 0x14, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +struct /* @anon3 */ { + // total size: 0xD0 +}; +enum RwCullMode { + rwCULLMODENACULLMODE = 0, + rwCULLMODECULLNONE = 1, + rwCULLMODECULLBACK = 2, + rwCULLMODECULLFRONT = 3, + rwCULLMODEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class zNPCSandyBikini : public zNPCVillager { + // total size: 0x2B4 +public: + float tmr_leakCycle; // offset 0x2B0, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0xD0 +}; +class xParSys { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zNPCBubbleBuddy : public zNPCFish { + // total size: 0x348 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +enum en_NPC_MSG_ID { + NPC_MID_NONE = 0, + NPC_MID_SYSEVENT = 1, + NPC_MID_RESPAWN = 2, + NPC_MID_DAMAGE = 3, + NPC_MID_EXPLOSION = 4, + NPC_MID_BUNNYHOP = 5, + NPC_MID_DTRON_NPCEMIT = 6, + NPC_MID_DTRON_NPCAVAIL = 7, + NPC_MID_DTRON_ISDEAD = 8, + NPC_MID_CHAT_REQUEST = 9, + NPC_MID_CHAT_DECLINE = 10, + NPC_MID_CHAT_ACCEPT = 11, + NPC_MID_CHAT_DONE = 12, + NPC_MID_CHAT_ABORT = 13, + NPC_MID_TALKSTART = 14, + NPC_MID_TALKON = 15, + NPC_MID_TALKOFF = 16, + NPC_MID_SAWPLYR = 17, + NPC_MID_NEEDMEDIC = 18, + NPC_MID_UNDERATTACK = 19, + NPC_MID_NPCDIED = 20, + NPC_MID_PLYRSPATULA = 21, + NPC_MID_BECOMESCARED = 22, + NPC_MID_NOLONGERSCARED = 23, + NPC_MID_CELEBRATE = 24, + NPC_MID_STUN = 25, + NPC_MID_SCRIPTBEGIN = 26, + NPC_MID_SCRIPTEND = 27, + NPC_MID_SCRIPTHALT = 28, + NPC_MID_DEV_ANIMSPIN = 29, + NPC_MID_DEV_ANIMCYCLE = 30, + NPC_MID_DEV_HEROMODE = 31, + NPC_MID_DEV_DONE = 32, + NPC_MID_NOMORE = 33, + NPC_MID_FORCE = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class NPCTargetInfo { + // total size: 0x10 +public: + class xBase * bas_tgt; // offset 0x0, size 0x4 + class xVec3 pos_tgt; // offset 0x4, size 0xC +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xCurveAsset { + // total size: 0x0 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zNPCGoalLoopAnim : public zNPCGoalCommon { + // total size: 0x6C +public: + signed int flg_loopanim; // offset 0x4C, size 0x4 + unsigned int anid_stage[3]; // offset 0x50, size 0xC + signed int cnt_loop; // offset 0x5C, size 0x4 + float lastAnimTime; // offset 0x60, size 0x4 + unsigned int origAnimFlags; // offset 0x64, size 0x4 + unsigned int animWeMolested; // offset 0x68, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +struct /* @anon5 */ { + // total size: 0xD0 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +struct /* @anon6 */ { + // total size: 0xCC +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +struct /* @anon7 */ { + // total size: 0xD0 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class HiThere : public callback { + // total size: 0x8 +public: + class zNPCCommon * npc; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class NPCSysEvent { + // total size: 0x28 +public: + signed int doLinkEvents; // offset 0x0, size 0x4 + signed int handled; // offset 0x4, size 0x4 + class xBase * from; // offset 0x8, size 0x4 + class xBase * to; // offset 0xC, size 0x4 + unsigned int toEvent; // offset 0x10, size 0x4 + float toParam[4]; // offset 0x14, size 0x10 + class xBase * toParamWidget; // offset 0x24, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class NPCDamageInfo { + // total size: 0x14 +public: + enum en_NPC_DAMAGE_TYPE dmg_type; // offset 0x0, size 0x4 + class xBase * dmg_from; // offset 0x4, size 0x4 + class xVec3 vec_dmghit; // offset 0x8, size 0xC +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zNPCGoalTalk : public zNPCGoalCommon { + // total size: 0x78 +public: + float tmr_cycleAnim; // offset 0x4C, size 0x4 + float tmr_minTalk; // offset 0x50, size 0x4 + signed int stopTalking; // offset 0x54, size 0x4 + signed int killAndExit; // offset 0x58, size 0x4 + class xSFX * sfx_curTalk; // offset 0x5C, size 0x4 + unsigned int aid_curSound; // offset 0x60, size 0x4 + class xVec3 pos_maintain; // offset 0x64, size 0xC + void * jawdata; // offset 0x70, size 0x4 + float jawtime; // offset 0x74, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xShadowPoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zNPCGoalSpeak : public zNPCGoalCommon { + // total size: 0x64 +public: + float tmr_cycleAnim; // offset 0x4C, size 0x4 + class xVec3 pos_maintain; // offset 0x50, size 0xC + void * jawdata; // offset 0x5C, size 0x4 + float jawtime; // offset 0x60, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +enum en_npctgt { + NPC_TGT_NONE = 0, + NPC_TGT_PLYR = 1, + NPC_TGT_ENT = 2, + NPC_TGT_BASE = 3, + NPC_TGT_POS = 4, + NPC_TGT_MVPT = 5, + NPC_TGT_NOMORE = 6, + NPC_TGT_FORCEINT = 2147483647, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class NPCStunInfo { + // total size: 0xC +public: + float tym_stuntime; // offset 0x0, size 0x4 + enum en_NPC_CARRY_STATE carrystate; // offset 0x4, size 0x4 + signed int allowStun; // offset 0x8, size 0x4 +}; +class say_data { + // total size: 0x8 +public: + signed int total; // offset 0x0, size 0x4 + signed int prev_total; // offset 0x4, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +struct /* @anon8 */ { + // total size: 0x54 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xShadowCache { + // total size: 0x3070 +public: + class xVec3 pos; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 + unsigned int entCount; // offset 0x10, size 0x4 + unsigned int polyCount; // offset 0x14, size 0x4 + float polyRayDepth[5]; // offset 0x18, size 0x14 + unsigned short castOnEnt; // offset 0x2C, size 0x2 + unsigned short castOnPoly; // offset 0x2E, size 0x2 + class xEnt * ent[16]; // offset 0x30, size 0x40 + class xShadowPoly poly[256]; // offset 0x70, size 0x3000 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon9 */ { + // total size: 0x10 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +struct /* @anon10 */ { + // total size: 0xD0 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class NPCScriptInfo { + // total size: 0x4 +public: + unsigned int aid_playanim; // offset 0x0, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum en_NPC_DAMAGE_TYPE { + DMGTYP_UNDECIDED = 0, + DMGTYP_ABOVE = 1, + DMGTYP_BELOW = 2, + DMGTYP_SIDE = 3, + DMGTYP_INSTAKILL = 4, + DMGTYP_KILLEVENT = 5, + DMGTYP_HITBYTOSS = 6, + DMGTYP_NPCATTACK = 7, + DMGTYP_ROPE = 8, + DMGTYP_CRUISEBUBBLE = 9, + DMGTYP_PROJECTILE = 10, + DMGTYP_BOULDER = 11, + DMGTYP_BUBBOWL = 12, + DMGTYP_THUNDER_TIKI_EXPLOSION = 13, + DMGTYP_DAMAGE_SURFACE = 14, + DMGTYP_BUNGEED = 15, + DMGTYP_SURFACE = 16, + DMGTYP_NOMORE = 17, + DMGTYP_FORCEINT = 2147483647, +}; +struct /* @anon11 */ { + // total size: 0xD0 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class NPCTarget { + // total size: 0x14 +public: + enum en_npctgt typ_target; // offset 0x0, size 0x4 + union { // inferred + class xEnt * ent_target; // offset 0x4, size 0x4 + class xBase * bas_target; // offset 0x4, size 0x4 + class xVec3 pos_target; // offset 0x4, size 0xC + class zMovePoint * nav_target; // offset 0x4, size 0x4 + }; + class zNPCCommon * npc_owner; // offset 0x10, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class NPCMountInfo { + // total size: 0x8 +public: + class xEnt * ent_toMount; // offset 0x0, size 0x4 + class xCollis * col_forMount; // offset 0x4, size 0x4 +}; +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +enum en_BBOY_PLATANIM { + BBOY_PLATANIM_MOVE = 0, + BBOY_PLATANIM_HIT = 1, + BBOY_PLATANIM_NOMORE = 2, + BBOY_PLATANIM_FORCE = 2147483647, +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class NPCBlastInfo { + // total size: 0x14 +public: + class xVec3 pos_blast; // offset 0x0, size 0xC + float rad_blast; // offset 0xC, size 0x4 + float spd_expand; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAED0 -> 0x002EB094 +*/ +// Range: 0x2EAED0 -> 0x2EB094 +static signed int MERC_grul_goAlert(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EAED0 -> 0x2EB094 + class zNPCVillager * npc; // r17 + class xVec3 dir_plyr; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB0A0 -> 0x002EB140 +*/ +// Range: 0x2EB0A0 -> 0x2EB140 +static signed int FOLK_grul_goAlert(class xGoal * rawgoal /* r2 */, enum en_trantype * trantype /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB0A0 -> 0x2EB140 + signed int nextgoal; // r18 + class zNPCVillager * npc; // r17 + class xVec3 vec; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB140 -> 0x002EB2C8 +*/ +// Range: 0x2EB140 -> 0x2EB2C8 +class RpAtomic * NPC_BubBud_RenderCB(class RpAtomic * atomic /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB140 -> 0x2EB2C8 + float fade; // r20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB2D0 -> 0x002EB358 +*/ +// Range: 0x2EB2D0 -> 0x2EB358 +void RenderExtra(class zNPCBubbleBuddy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB2D0 -> 0x2EB358 + enum RwCullMode old_cull_mode; // r29+0x2C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB360 -> 0x002EB390 +*/ +// Range: 0x2EB360 -> 0x2EB390 +void Reset(class zNPCBubbleBuddy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB360 -> 0x2EB390 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB390 -> 0x002EB474 +*/ +// Range: 0x2EB390 -> 0x2EB474 +void Setup(class zNPCBubbleBuddy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB390 -> 0x2EB474 + char * nam_fresTxtr; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB480 -> 0x002EB530 +*/ +// Range: 0x2EB480 -> 0x2EB530 +void Init(class zNPCBubbleBuddy * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB480 -> 0x2EB530 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB530 -> 0x002EB538 +*/ +// Range: 0x2EB530 -> 0x2EB538 +void PlatAnimSync(class zNPCBalloonBoy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB530 -> 0x2EB538 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB540 -> 0x002EB5A4 +*/ +// Range: 0x2EB540 -> 0x2EB5A4 +void PlatAnimSet(class zNPCBalloonBoy * this /* r2 */, enum en_BBOY_PLATANIM platanim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB540 -> 0x2EB5A4 + float fvals[4]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB5B0 -> 0x002EB72C +*/ +// Range: 0x2EB5B0 -> 0x2EB72C +signed int ParseSysEvent(class zNPCBalloonBoy * this /* r2 */, class NPCSysEvent * sed /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB5B0 -> 0x2EB72C + signed int handled; // r16 + class zPlatform * plat; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB730 -> 0x002EB810 +*/ +// Range: 0x2EB730 -> 0x2EB810 +signed int FolkHandleMail(class zNPCBalloonBoy * this /* r18 */, class NPCMsg * mail /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB730 -> 0x2EB810 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB810 -> 0x002EB968 +*/ +// Range: 0x2EB810 -> 0x2EB968 +unsigned int AnimPick(class zNPCBalloonBoy * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB810 -> 0x2EB968 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EB970 -> 0x002EBC18 +*/ +// Range: 0x2EB970 -> 0x2EBC18 +void PlatShadRend(class zNPCBalloonBoy * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EB970 -> 0x2EBC18 + float ds2_cam; // r20 + signed int fillit; // r16 + signed int needit; // r4 + class xMat4x3 mat_fake; // r29+0x40 + signed int takeThePain; // @ 0x0050FF80 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EBC20 -> 0x002EBC4C +*/ +// Range: 0x2EBC20 -> 0x2EBC4C +void Render(class zNPCBalloonBoy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EBC20 -> 0x2EBC4C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EBC50 -> 0x002EBCEC +*/ +// Range: 0x2EBC50 -> 0x2EBCEC +void SelfSetup(class zNPCBalloonBoy * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EBC50 -> 0x2EBCEC + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EBCF0 -> 0x002EBD24 +*/ +// Range: 0x2EBCF0 -> 0x2EBD24 +void Reset(class zNPCBalloonBoy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EBCF0 -> 0x2EBD24 + char * nam_texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EBD30 -> 0x002EBDCC +*/ +// Range: 0x2EBD30 -> 0x2EBDCC +void Init(class zNPCBalloonBoy * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EBD30 -> 0x2EBDCC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EBDD0 -> 0x002EC0B4 +*/ +// Range: 0x2EBDD0 -> 0x2EC0B4 +void VFXLeakyFaucet(class zNPCSandyBikini * this /* r18 */, float dt /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EBDD0 -> 0x2EC0B4 + float rat_tym; // r22 + class xVec3 pos_emit; // r29+0x70 + class xVec3 dir_emit; // r29+0x60 + float dist; // r24 + class xVec3 vec_boneOffset; // @ 0x004FEF58 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC0C0 -> 0x002EC12C +*/ +// Range: 0x2EC0C0 -> 0x2EC12C +void Process(class zNPCSandyBikini * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC0C0 -> 0x2EC12C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC130 -> 0x002EC1D8 +*/ +// Range: 0x2EC130 -> 0x2EC1D8 +void Reset(class zNPCSandyBikini * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC130 -> 0x2EC1D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC1E0 -> 0x002EC430 +*/ +// Range: 0x2EC1E0 -> 0x2EC430 +signed int say(class zNPCNewsFish * this /* r22 */, enum say_enum * s /* r21 */, unsigned int size /* r2 */, signed int flags /* r23 */, signed int max_say /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC1E0 -> 0x2EC430 + signed int min_say; // r30 + enum say_enum * it; // r5 + enum say_enum * end; // r20 + signed int total; // r16 + enum say_enum * it; // r5 + enum say_enum * end; // r2 + signed int played; // r19 + signed int which; // r18 + enum say_enum * it; // r17 + enum say_enum * end; // r2 + unsigned char last_changed; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC430 -> 0x002EC568 +*/ +// Range: 0x2EC430 -> 0x2EC568 +unsigned char say(class zNPCNewsFish * this /* r18 */, enum say_enum s /* r2 */, signed int flags /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC430 -> 0x2EC568 + unsigned int id; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC570 -> 0x002EC780 +*/ +// Range: 0x2EC570 -> 0x2EC780 +void Render(class zNPCNewsFish * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC570 -> 0x2EC780 + class xLightKit * lastLightKit; // r17 + enum _SDRenderState oldstate; // r16 + class xMat4x3 oldMat; // r29+0x50 + class basic_rect r; // r29+0x40 + class xVec3 from; // r29+0xA0 + class xVec3 to; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC780 -> 0x002EC7B0 +*/ +// Range: 0x2EC780 -> 0x2EC7B0 +void TalkOnScreen(class zNPCNewsFish * this /* r2 */, signed int talkOnScreen /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC780 -> 0x2EC7B0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC7B0 -> 0x002EC818 +*/ +// Range: 0x2EC7B0 -> 0x2EC818 +void SpeakStop(class zNPCNewsFish * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC7B0 -> 0x2EC818 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC820 -> 0x002EC910 +*/ +// Range: 0x2EC820 -> 0x2EC910 +void SpeakStart(class zNPCNewsFish * this /* r18 */, unsigned int sndid /* r17 */, unsigned int sndhandle /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC820 -> 0x2EC910 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EC910 -> 0x002ECA04 +*/ +// Range: 0x2EC910 -> 0x2ECA04 +void Reset(class zNPCNewsFish * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EC910 -> 0x2ECA04 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ECA10 -> 0x002ECD5C +*/ +// Range: 0x2ECA10 -> 0x2ECD5C +void Process(class zNPCNewsFish * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ECA10 -> 0x2ECD5C + class xModelInstance * minst; // r3 + class xVec3 delta; // r29+0x30 + float lerp; // r29+0x40 + float invLerp; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ECD60 -> 0x002ECD7C +*/ +// Range: 0x2ECD60 -> 0x2ECD7C +void PostSetup(class zNPCNewsFish * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ECD60 -> 0x2ECD7C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ECD80 -> 0x002ECE5C +*/ +// Range: 0x2ECD80 -> 0x2ECE5C +void Init(class zNPCNewsFish * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ECD80 -> 0x2ECE5C + signed int i; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ECE60 -> 0x002ECED0 +*/ +// Range: 0x2ECE60 -> 0x2ECED0 +void Process(class zNPCMerManChair * this /* r16 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ECE60 -> 0x2ECED0 + class xModelInstance * minst; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ECED0 -> 0x002ED0A4 +*/ +// Range: 0x2ECED0 -> 0x2ED0A4 +unsigned int AnimPick(class zNPCMerManChair * this /* r18 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ECED0 -> 0x2ED0A4 + signed int idx; // r17 + unsigned int da_anim; // r16 + signed int superfolk; // r3 + unsigned int which; // r3 + signed int choices[4]; // @ 0x004DF670 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED0B0 -> 0x002ED180 +*/ +// Range: 0x2ED0B0 -> 0x2ED180 +void SelfSetup(class zNPCMerManChair * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED0B0 -> 0x2ED180 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED180 -> 0x002ED27C +*/ +// Range: 0x2ED180 -> 0x2ED27C +void Reset(class zNPCMerManChair * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED180 -> 0x2ED27C + class ztaskbox * pat_converse; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED280 -> 0x002ED2D4 +*/ +// Range: 0x2ED280 -> 0x2ED2D4 +void Init(class zNPCMerManChair * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED280 -> 0x2ED2D4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED2E0 -> 0x002ED4C4 +*/ +// Range: 0x2ED2E0 -> 0x2ED4C4 +void MonitorCowering(class zNPCFish * this /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED2E0 -> 0x2ED4C4 + class xVec3 vec; // r29+0x50 + class NPCTarget * tgt; // r17 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED4D0 -> 0x002ED670 +*/ +// Range: 0x2ED4D0 -> 0x2ED670 +signed int FolkHandleMail(class zNPCFish * this /* r19 */, class NPCMsg * msg /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED4D0 -> 0x2ED670 + signed int handled; // r17 + class xPsyche * psy; // r16 + signed int cancheer; // r17 + signed int gid; // r2 + class zNPCGoalCheer * cheer; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED670 -> 0x002ED770 +*/ +// Range: 0x2ED670 -> 0x2ED770 +void Process(class zNPCFish * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED670 -> 0x2ED770 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED770 -> 0x002ED8D0 +*/ +// Range: 0x2ED770 -> 0x2ED8D0 +unsigned int AnimPick(class zNPCFish * this /* r2 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */, class xGoal * rawgoal /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED770 -> 0x2ED8D0 + signed int idx; // r16 + unsigned int da_anim; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED8D0 -> 0x002ED9C0 +*/ +// Range: 0x2ED8D0 -> 0x2ED9C0 +void SelfSetup(class zNPCFish * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED8D0 -> 0x2ED9C0 + class zNPCVillager * npc; // r2 + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002ED9C0 -> 0x002EDB34 +*/ +// Range: 0x2ED9C0 -> 0x2EDB34 +void FishSoundTables(class zNPCFish * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2ED9C0 -> 0x2EDB34 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDB40 -> 0x002EDB88 +*/ +// Range: 0x2EDB40 -> 0x2EDB88 +void ParseINI(class zNPCFish * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDB40 -> 0x2EDB88 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDB90 -> 0x002EDD9C +*/ +// Range: 0x2EDB90 -> 0x2EDD9C +void Reset(class zNPCFish * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDB90 -> 0x2EDD9C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDDA0 -> 0x002EDE2C +*/ +// Range: 0x2EDDA0 -> 0x2EDE2C +void Init(class zNPCFish * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDDA0 -> 0x2EDE2C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDE30 -> 0x002EDE38 +*/ +// Range: 0x2EDE30 -> 0x2EDE38 +void TossMyConverse(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDE30 -> 0x2EDE38 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDE40 -> 0x002EDEB8 +*/ +// Range: 0x2EDE40 -> 0x2EDEB8 +void FindMyConverse(class zNPCVillager * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDE40 -> 0x2EDEB8 + class xEntNPCAsset * nass; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDEC0 -> 0x002EDFD0 +*/ +// Range: 0x2EDEC0 -> 0x2EDFD0 +void AddTalking(class xPsyche * psy /* r16 */, signed int (* eval_plyrnear)(class xGoal *, void *, enum en_trantype *, float, void *) /* r20 */, signed int (* eval_talking)(class xGoal *, void *, enum en_trantype *, float, void *) /* r19 */, signed int (* eval_chatter)(class xGoal *, void *, enum en_trantype *, float, void *) /* r18 */, signed int (* eval_speak)(class xGoal *, void *, enum en_trantype *, float, void *) /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDEC0 -> 0x2EDFD0 + class xGoal * goal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EDFD0 -> 0x002EE120 +*/ +// Range: 0x2EDFD0 -> 0x2EE120 +signed int PlayerIsStaring(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EDFD0 -> 0x2EE120 + class xVec3 vec; // r29+0x10 + float dy; // r29+0x1C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE120 -> 0x002EE17C +*/ +// Range: 0x2EE120 -> 0x2EE17C +void SpeakStop(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE120 -> 0x2EE17C + class xGoal * goal; // r2 + class zNPCGoalTalk * talkgoal; // r2 + class zNPCGoalSpeak * talkgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE180 -> 0x002EE214 +*/ +// Range: 0x2EE180 -> 0x2EE214 +void SpeakStart(class zNPCVillager * this /* r2 */, unsigned int sndid /* r17 */, signed int anim /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE180 -> 0x2EE214 + class xGoal * goal; // r16 + class zNPCGoalTalk * talkgoal; // r2 + class zNPCGoalSpeak * talkgoal; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE220 -> 0x002EE270 +*/ +// Range: 0x2EE220 -> 0x2EE270 +void SpeakEnd(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE220 -> 0x2EE270 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE270 -> 0x002EE284 +*/ +// Range: 0x2EE270 -> 0x2EE284 +void SpeakBegin(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE270 -> 0x2EE284 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE290 -> 0x002EE390 +*/ +// Range: 0x2EE290 -> 0x2EE390 +signed int FolkHandleMail(class zNPCVillager * this /* r2 */, class NPCMsg * mail /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE290 -> 0x2EE390 + signed int handled; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE390 -> 0x002EE474 +*/ +// Range: 0x2EE390 -> 0x2EE474 +signed int NPCMessage(class zNPCVillager * this /* r19 */, class NPCMsg * mail /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE390 -> 0x2EE474 + class zNPCGoalCommon * curgoal; // r17 + class zNPCGoalCommon * recgoal; // r2 + class xPsyche * psy; // r16 + signed int handled; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE480 -> 0x002EE848 +*/ +// Range: 0x2EE480 -> 0x2EE848 +unsigned int AnimPick(class zNPCVillager * this /* r17 */, signed int gid /* r2 */, enum en_NPC_GOAL_SPOT gspot /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE480 -> 0x2EE848 + signed int idx; // r2 + unsigned int da_anim; // r16 + signed int superfolk; // r2 + signed int superfolk; // r4 + signed int choices[4]; // r29+0x40 + signed int superfolk; // r4 + signed int choices[4]; // r29+0x30 + signed int superfolk; // r2 + unsigned int which; // r3 + signed int choices[4]; // @ 0x004DF640 + signed int choices[4]; // @ 0x004DF610 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE850 -> 0x002EE92C +*/ +// Range: 0x2EE850 -> 0x2EE92C +void SelfSetup(class zNPCVillager * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE850 -> 0x2EE92C + class xBehaveMgr * bmgr; // r2 + class xPsyche * psy; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE930 -> 0x002EE9A4 +*/ +// Range: 0x2EE930 -> 0x2EE9A4 +void CollideReview(class zNPCVillager * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE930 -> 0x2EE9A4 + class zNPCGoalCommon * goal; // r2 + signed int goaldidit; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EE9B0 -> 0x002EEB90 +*/ +// Range: 0x2EE9B0 -> 0x2EEB90 +void ChkCheatSize(class zNPCVillager * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EE9B0 -> 0x2EEB90 + signed int cheats; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEB90 -> 0x002EEBF0 +*/ +// Range: 0x2EEB90 -> 0x2EEBF0 +void Process(class zNPCVillager * this /* r17 */, class xScene * xscn /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEB90 -> 0x2EEBF0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEBF0 -> 0x002EECF8 +*/ +// Range: 0x2EEBF0 -> 0x2EECF8 +void ParseNonRandTalk(class zNPCVillager * this /* r5 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEBF0 -> 0x2EECF8 + class NPCConfig * cfg; // r16 + float non_choices[4]; // r29+0x20 + signed int found; // r2 + signed int i; // r7 + unsigned char skip; // r6 + signed int j; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EED00 -> 0x002EED40 +*/ +// Range: 0x2EED00 -> 0x2EED40 +void ParseINI(class zNPCVillager * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EED00 -> 0x2EED40 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EED40 -> 0x002EEDE4 +*/ +// Range: 0x2EED40 -> 0x2EEDE4 +void Reset(class zNPCVillager * this /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EED40 -> 0x2EEDE4 + class NPCConfig * cfg; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEDF0 -> 0x002EEE20 +*/ +// Range: 0x2EEDF0 -> 0x2EEE20 +void Init(class zNPCVillager * this /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEDF0 -> 0x2EEE20 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEE20 -> 0x002EEE68 +*/ +// Range: 0x2EEE20 -> 0x2EEE68 +unsigned char PhysicsFlags(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEE20 -> 0x2EEE68 + signed int flags; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEE70 -> 0x002EEED8 +*/ +// Range: 0x2EEE70 -> 0x2EEED8 +unsigned char ColPenFlags(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEE70 -> 0x2EEED8 + signed int flags; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEEE0 -> 0x002EEF48 +*/ +// Range: 0x2EEEE0 -> 0x2EEF48 +unsigned char ColChkFlags(class zNPCVillager * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEEE0 -> 0x2EEF48 + signed int flags; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EEF50 -> 0x002EF31C +*/ +// Range: 0x2EEF50 -> 0x2EF31C +class xAnimTable * ZNPC_AnimTable_SuperFriend(class xAnimTable * callerTable /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EEF50 -> 0x2EF31C + class xAnimTable * table; // r17 + char * * names; // r16 + signed int ourAnims[10]; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF320 -> 0x002EF328 +*/ +// Range: 0x2EF320 -> 0x2EF328 +class xAnimTable * ZNPC_AnimTable_SuperFriend() { + // Blocks + /* anonymous block */ { + // Range: 0x2EF320 -> 0x2EF328 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF330 -> 0x002EF5F0 +*/ +// Range: 0x2EF330 -> 0x2EF5F0 +class xAnimTable * ZNPC_AnimTable_BalloonBoy(class xAnimTable * callerTable /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EF330 -> 0x2EF5F0 + class xAnimTable * table; // r17 + char * * names; // r16 + signed int ourAnims[7]; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF5F0 -> 0x002EF5F8 +*/ +// Range: 0x2EF5F0 -> 0x2EF5F8 +class xAnimTable * ZNPC_AnimTable_BalloonBoy() { + // Blocks + /* anonymous block */ { + // Range: 0x2EF5F0 -> 0x2EF5F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF600 -> 0x002EF98C +*/ +// Range: 0x2EF600 -> 0x2EF98C +class xAnimTable * ZNPC_AnimTable_Villager(class xAnimTable * callerTable /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EF600 -> 0x2EF98C + class xAnimTable * table; // r17 + char * * names; // r16 + signed int ourAnims[11]; // r29+0x50 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF990 -> 0x002EF998 +*/ +// Range: 0x2EF990 -> 0x2EF998 +class xAnimTable * ZNPC_AnimTable_Villager() { + // Blocks + /* anonymous block */ { + // Range: 0x2EF990 -> 0x2EF998 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF9A0 -> 0x002EF9C4 +*/ +// Range: 0x2EF9A0 -> 0x2EF9C4 +void ZNPC_Destroy_Villager(class xFactoryInst * inst /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EF9A0 -> 0x2EF9C4 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EF9D0 -> 0x002EFF60 +*/ +// Range: 0x2EF9D0 -> 0x2EFF60 +class xFactoryInst * ZNPC_Create_Villager(signed int who /* r16 */, class RyzMemGrow * growCtxt /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EF9D0 -> 0x2EFF60 + class zNPCVillager * vil; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EFF60 -> 0x002F0078 +*/ +// Range: 0x2EFF60 -> 0x2F0078 +void zNPCVillager_SceneTimestep(float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EFF60 -> 0x2F0078 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0080 -> 0x002F00F8 +*/ +// Range: 0x2F0080 -> 0x2F00F8 +void zNPCVillager_ScenePostInit() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0080 -> 0x2F00F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0100 -> 0x002F0108 +*/ +// Range: 0x2F0100 -> 0x2F0108 +void zNPCVillager_SceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0100 -> 0x2F0108 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0110 -> 0x002F0118 +*/ +// Range: 0x2F0110 -> 0x2F0118 +void zNPCVillager_SceneFinish() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0110 -> 0x2F0118 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0120 -> 0x002F0128 +*/ +// Range: 0x2F0120 -> 0x2F0128 +void zNPCVillager_ScenePrepare() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0120 -> 0x2F0128 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0130 -> 0x002F0138 +*/ +// Range: 0x2F0130 -> 0x2F0138 +void ZNPC_Villager_Shutdown() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0130 -> 0x2F0138 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0140 -> 0x002F01D0 +*/ +// Range: 0x2F0140 -> 0x2F01D0 +void ZNPC_Villager_Startup() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0140 -> 0x2F01D0 + signed int i; // r18 + } +} + diff --git a/dwarf/SB/Game/zNPCTypeVillager.h b/dwarf/SB/Game/zNPCTypeVillager.h new file mode 100644 index 000000000..8c8570080 --- /dev/null +++ b/dwarf/SB/Game/zNPCTypeVillager.h @@ -0,0 +1,224 @@ +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAE80 -> 0x002EAE90 +*/ +// Range: 0x2EAE80 -> 0x2EAE90 +void Render(class zNPCBubbleBuddy * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EAE80 -> 0x2EAE90 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAE90 -> 0x002EAE98 +*/ +// Range: 0x2EAE90 -> 0x2EAE98 +class xEntDrive * PRIV_GetDriverData(class zNPCFish * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2EAE90 -> 0x2EAE98 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAEA0 -> 0x002EAEA8 +*/ +// Range: 0x2EAEA0 -> 0x2EAEA8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2EAEA0 -> 0x2EAEA8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAEB0 -> 0x002EAEB8 +*/ +// Range: 0x2EAEB0 -> 0x2EAEB8 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2EAEB0 -> 0x2EAEB8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002EAEC0 -> 0x002EAED0 +*/ +// Range: 0x2EAEC0 -> 0x2EAED0 +float GenShadCacheRad() { + // Blocks + /* anonymous block */ { + // Range: 0x2EAEC0 -> 0x2EAED0 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F01D0 -> 0x002F01D8 +*/ +// Range: 0x2F01D0 -> 0x2F01D8 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F01D0 -> 0x2F01D8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F01E0 -> 0x002F01E8 +*/ +// Range: 0x2F01E0 -> 0x2F01E8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F01E0 -> 0x2F01E8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F01F0 -> 0x002F01F8 +*/ +// Range: 0x2F01F0 -> 0x2F01F8 +unsigned char ColChkByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F01F0 -> 0x2F01F8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0200 -> 0x002F0208 +*/ +// Range: 0x2F0200 -> 0x2F0208 +unsigned char ColPenByFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0200 -> 0x2F0208 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0210 -> 0x002F0218 +*/ +// Range: 0x2F0210 -> 0x2F0218 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0210 -> 0x2F0218 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0220 -> 0x002F024C +*/ +// Range: 0x2F0220 -> 0x2F024C +void on_talk_stop(class HiThere * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0220 -> 0x2F024C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0250 -> 0x002F027C +*/ +// Range: 0x2F0250 -> 0x2F027C +void on_talk_start(class HiThere * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2F0250 -> 0x2F027C + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F02A0 -> 0x002F02A8 +*/ +// Range: 0x2F02A0 -> 0x2F02A8 +void SelfSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x2F02A0 -> 0x2F02A8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F02B0 -> 0x002F02B8 +*/ +// Range: 0x2F02B0 -> 0x2F02B8 +unsigned char ColChkFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F02B0 -> 0x2F02B8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F02C0 -> 0x002F02C8 +*/ +// Range: 0x2F02C0 -> 0x2F02C8 +unsigned char ColPenFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F02C0 -> 0x2F02C8 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypeVillager.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F02D0 -> 0x002F02D8 +*/ +// Range: 0x2F02D0 -> 0x2F02D8 +unsigned char PhysicsFlags() { + // Blocks + /* anonymous block */ { + // Range: 0x2F02D0 -> 0x2F02D8 + } +} + diff --git a/dwarf/SB/Game/zNPCTypes.cpp b/dwarf/SB/Game/zNPCTypes.cpp new file mode 100644 index 000000000..e640eda7a --- /dev/null +++ b/dwarf/SB/Game/zNPCTypes.cpp @@ -0,0 +1,115 @@ +/* + Compile unit: C:\SB\Game\zNPCTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class RyzMemGrow { + // total size: 0x1C +public: + signed int flg_grow; // offset 0x0, size 0x4 + signed int amt; // offset 0x4, size 0x4 + char * ptr; // offset 0x8, size 0x4 + class xBase * user; // offset 0xC, size 0x4 + signed int amt_last; // offset 0x10, size 0x4 + char * ptr_last; // offset 0x14, size 0x4 + class xBase * user_last; // offset 0x18, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class XGOFTypeInfo { + // total size: 0xC +public: + signed int tid; // offset 0x0, size 0x4 + class xFactoryInst * (* creator)(signed int, class RyzMemGrow *, void *); // offset 0x4, size 0x4 + void (* destroyer)(class xFactoryInst *); // offset 0x8, size 0x4 +}; +class st_XORDEREDARRAY { + // total size: 0x10 +public: + void * * list; // offset 0x0, size 0x4 + signed int cnt; // offset 0x4, size 0x4 + signed int max; // offset 0x8, size 0x4 + signed int warnlvl; // offset 0xC, size 0x4 +}; +class xFactory : public RyzMemData { + // total size: 0x34 +public: + class XGOFTypeInfo * infopool; // offset 0x0, size 0x4 + class st_XORDEREDARRAY infolist; // offset 0x4, size 0x10 + class xFactoryInst * products; // offset 0x14, size 0x4 + class RyzMemGrow growContextData; // offset 0x18, size 0x1C +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; + +/* + Compile unit: C:\SB\Game\zNPCTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6800 -> 0x002E684C +*/ +// Range: 0x2E6800 -> 0x2E684C +void zNPCTypes_RegisterTypes(class xFactory * fac /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2E6800 -> 0x2E684C + class XGOFTypeInfo typelist[71]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E6850 -> 0x002E68AC +*/ +// Range: 0x2E6850 -> 0x2E68AC +void zNPCTypes_ShutdownTypes() { + // Blocks + /* anonymous block */ { + // Range: 0x2E6850 -> 0x2E68AC + } +} + +/* + Compile unit: C:\SB\Game\zNPCTypes.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002E68B0 -> 0x002E690C +*/ +// Range: 0x2E68B0 -> 0x2E690C +void zNPCTypes_StartupTypes() { + // Blocks + /* anonymous block */ { + // Range: 0x2E68B0 -> 0x2E690C + } +} + diff --git a/dwarf/SB/Game/zParCmd.cpp b/dwarf/SB/Game/zParCmd.cpp new file mode 100644 index 000000000..b873cdb45 --- /dev/null +++ b/dwarf/SB/Game/zParCmd.cpp @@ -0,0 +1,2669 @@ +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zVolume * sClipVolume[32]; // size: 0x80, address: 0x52EA80 +static signed int sClipVolumeTotal; // size: 0x4, address: 0x50F688 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +void xParCmdKillDistance_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18CAD0 +void xParCmdApplyCamMat_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18C320 +void xParCmdDamagePlayer_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18C6B0 +void xParCmdAnimalMagentism_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18C870 +void xParCmdClipVolumes_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18CA20 +void xParCmdCustom_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18C150 +void xParCmdPlayerCollision_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18CA10 +void xParCmdJet_Update(class xParCmd *, class xParGroup *, float); // size: 0x0, address: 0x18C560 +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xParCmdKillDistance : public xParCmdAsset { + // total size: 0x10 +public: + float dSqr; // offset 0x8, size 0x4 + unsigned int kill_greater_than; // offset 0xC, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xParCmdJet : public xParCmdAsset { + // total size: 0x2C +public: + class xVec3 center; // offset 0x8, size 0xC + class xVec3 acc; // offset 0x14, size 0xC + float gravity; // offset 0x20, size 0x4 + float epsilon; // offset 0x24, size 0x4 + float radiusSqr; // offset 0x28, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class xParCmdApplyCamMat : public xParCmdAsset { + // total size: 0x14 +public: + class xVec3 apply; // offset 0x8, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xVolumeAsset : public xBaseAsset { + // total size: 0x64 +public: + unsigned int flags; // offset 0x8, size 0x4 + class xBound bound; // offset 0xC, size 0x4C + float rot; // offset 0x58, size 0x4 + float xpivot; // offset 0x5C, size 0x4 + float zpivot; // offset 0x60, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xParCmdDamagePlayer : public xParCmdAsset { + // total size: 0x10 +public: + signed int damage; // offset 0x8, size 0x4 + signed int granular; // offset 0xC, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zVolume : public xVolume { + // total size: 0x14 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C150 -> 0x0018C31C +*/ +// Range: 0x18C150 -> 0x18C31C +void xParCmdCustom_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18C150 -> 0x18C31C + class xPar * p; // r7 + float mdt; // r12 + float rSqr; // r29+0x10 + float oorSqr; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C320 -> 0x0018C478 +*/ +// Range: 0x18C320 -> 0x18C478 +void xParCmdApplyCamMat_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18C320 -> 0x18C478 + class xPar * p; // r3 + class xParCmdApplyCamMat * cmd; // r6 + class xMat4x3 * mat; // r4 + float mul; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C480 -> 0x0018C560 +*/ +// Range: 0x18C480 -> 0x18C560 +void xParCmdCustom_Grass_Update(class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18C480 -> 0x18C560 + class xPar * p; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C560 -> 0x0018C6A8 +*/ +// Range: 0x18C560 -> 0x18C6A8 +void xParCmdJet_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18C560 -> 0x18C6A8 + class xPar * p; // r5 + class xParCmdJet * cmd; // r6 + float mdt; // r29 + float rSqr; // r2 + float oorSqr; // r10 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C6B0 -> 0x0018C870 +*/ +// Range: 0x18C6B0 -> 0x18C870 +void xParCmdDamagePlayer_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18C6B0 -> 0x18C870 + class xPar * p; // r18 + class xParCmdDamagePlayer * cmd; // r17 + class xBound * pbound; // r16 + signed int last_idx; // r3 + signed int i; // r5 + class xCollis collis; // @ 0x0052EB00 + class xBound bnd_fake; // @ 0x0052EB50 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018C870 -> 0x0018CA04 +*/ +// Range: 0x18C870 -> 0x18CA04 +void xParCmdAnimalMagentism_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */, float dt /* r29+0x70 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18C870 -> 0x18CA04 + class xPar * p; // r18 + class xVec3 pos; // r29+0x60 + float mul; // r22 + class xVec3 vec; // r29+0x50 + float dist; // r29+0x70 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CA10 -> 0x0018CA18 +*/ +// Range: 0x18CA10 -> 0x18CA18 +void xParCmdPlayerCollision_Update() { + // Blocks + /* anonymous block */ { + // Range: 0x18CA10 -> 0x18CA18 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CA20 -> 0x0018CAC8 +*/ +// Range: 0x18CA20 -> 0x18CAC8 +void xParCmdClipVolumes_Update(class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18CA20 -> 0x18CAC8 + class xPar * p; // r18 + signed int i; // r17 + class xCollis collis; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CAD0 -> 0x0018CBB0 +*/ +// Range: 0x18CAD0 -> 0x18CBB0 +void xParCmdKillDistance_Update(class xParCmd * c /* r2 */, class xParGroup * ps /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18CAD0 -> 0x18CBB0 + class xPar * p; // r5 + class xParCmdKillDistance * cmd; // r6 + class xVec3 * camera_pos; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CBB0 -> 0x0018CC44 +*/ +// Range: 0x18CBB0 -> 0x18CC44 +void zParCmdFindClipVolumes() { + // Blocks + /* anonymous block */ { + // Range: 0x18CBB0 -> 0x18CC44 + char findname[64]; // r29+0x10 + class zVolume * vol; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParCmd.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CC50 -> 0x0018CD0C +*/ +// Range: 0x18CC50 -> 0x18CD0C +void zParCmdInit() { + // Blocks + /* anonymous block */ { + // Range: 0x18CC50 -> 0x18CD0C + } +} + diff --git a/dwarf/SB/Game/zParEmitter.cpp b/dwarf/SB/Game/zParEmitter.cpp new file mode 100644 index 000000000..f60bb8dcd --- /dev/null +++ b/dwarf/SB/Game/zParEmitter.cpp @@ -0,0 +1,2260 @@ +/* + Compile unit: C:\SB\Game\zParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class rxReq { + // total size: 0x0 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CD10 -> 0x0018CD88 +*/ +// Range: 0x18CD10 -> 0x18CD88 +class zParEmitter * zParEmitterFind(char * asset_name /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18CD10 -> 0x18CD88 + unsigned int asset_id; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParEmitter.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CD90 -> 0x0018CDF0 +*/ +// Range: 0x18CD90 -> 0x18CDF0 +class zParEmitter * zParEmitterFind(unsigned int asset_id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18CD90 -> 0x18CDF0 + class zScene * s; // r3 + class zParEmitter * pe; // r2 + signed int i; // r5 + } +} + diff --git a/dwarf/SB/Game/zParPTank.cpp b/dwarf/SB/Game/zParPTank.cpp new file mode 100644 index 000000000..40c8e6692 --- /dev/null +++ b/dwarf/SB/Game/zParPTank.cpp @@ -0,0 +1,2625 @@ +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int gPTankDisable; // size: 0x4, address: 0x505BB8 +static unsigned int sNumPTanks; // size: 0x4, address: 0x5101F8 +static class zParPTank sPTank[7]; // size: 0x8C, address: 0x5E5500 +static class zParPTank * sSparklePTank; // size: 0x4, address: 0x5101FC +static class zParPTank * sBubblePTank; // size: 0x4, address: 0x510200 +static class zParPTank * sMenuBubblePTank; // size: 0x4, address: 0x510204 +static class zParPTank * sSnowPTank; // size: 0x4, address: 0x510208 +static class zParPTank * sSteamPTank; // size: 0x4, address: 0x51020C +static class zParPTank * sExplosionPTank; // size: 0x4, address: 0x0 +static class RwV2d sparkle_size; // size: 0x8, address: 0x505BC0 +static float sSparkleAnimTime; // size: 0x4, address: 0x510210 +static class BubbleData * sBubbleData; // size: 0x4, address: 0x510214 +static class BubbleData * sMenuBubbleData; // size: 0x4, address: 0x510218 +static class RwRGBA bubble_color; // size: 0x4, address: 0x505BC8 +class RwRGBA snow_color; // size: 0x4, address: 0x0 +static class snow_particle_data * snow_particles; // size: 0x4, address: 0x51021C +static class ptank_pool__pos_color_size_uv2 snow_pool; // size: 0x38, address: 0x5E5590 +static class RwV2d steam_size; // size: 0x8, address: 0x505BD0 +static float sSteamAnimTime; // size: 0x4, address: 0x510220 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +void zParPTankSnowUpdate(class zParPTank *, float); // size: 0x0, address: 0x39A770 +void zParPTankSteamUpdate(class zParPTank *, float); // size: 0x0, address: 0x39A1B0 +void zParPTankBubbleUpdate(class zParPTank *, float); // size: 0x0, address: 0x39B150 +void zParPTankSparkleUpdate(class zParPTank *, float); // size: 0x0, address: 0x39BCF0 +signed int _rpPTankAtomicDataOffset; // size: 0x4, address: 0x50F128 +float snow_life; // size: 0x4, address: 0x50E82C +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RwCamera * sGameScreenTransCam; // size: 0x4, address: 0x50F590 +signed int gGameState; // size: 0x4, address: 0x50E728 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class RwCamera * sGameScreenTransCam; // size: 0x4, address: 0x50F590 +class snow_particle_data { + // total size: 0x30 +public: + class xVec3 loc; // offset 0x0, size 0xC + float size; // offset 0xC, size 0x4 + class xVec3 vel; // offset 0x10, size 0xC + float life; // offset 0x1C, size 0x4 + float u; // offset 0x20, size 0x4 + float pad[3]; // offset 0x24, size 0xC +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zParPTank { + // total size: 0x14 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* update)(class zParPTank *, float); // offset 0x4, size 0x4 + class RpAtomic * ptank; // offset 0x8, size 0x4 + unsigned int num_particles; // offset 0xC, size 0x4 + unsigned int max_particles; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class BubbleData { + // total size: 0x10 +public: + class xVec3 vel; // offset 0x0, size 0xC + float life; // offset 0xC, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class ptank_pool { + // total size: 0x24 +public: + class render_state rs; // offset 0x0, size 0x10 + unsigned int used; // offset 0x10, size 0x4 + class RpAtomic * ptank; // offset 0x14, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + } hide; // offset 0x18, size 0xC +}; +class xParGroup { + // total size: 0x0 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xSurface { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class zPlatform { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpPTankLockStruct { + // total size: 0x8 +public: + unsigned char * data; // offset 0x0, size 0x4 + signed int stride; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class ptank_pool__pos_color_size_uv2 : public ptank_pool { + // total size: 0x38 +public: + class xVec3 * pos; // offset 0x24, size 0x4 + class iColor_tag * color; // offset 0x28, size 0x4 + class xVec2 * size; // offset 0x2C, size 0x4 + class xVec2 * uv; // offset 0x30, size 0x4 + signed int stride; // offset 0x34, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class render_state { + // total size: 0x10 +public: + class RwTexture * texture; // offset 0x0, size 0x4 + unsigned int src_blend; // offset 0x4, size 0x4 + unsigned int dst_blend; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00399C80 -> 0x00399D7C +*/ +// Range: 0x399C80 -> 0x399D7C +signed int zParPTankConvertEmitRate(class xParEmitter * pe /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x399C80 -> 0x399D7C + class xParEmitterPropsAsset * prop; // r3 + signed int rate_has_elapsed; // r2 + float rate; // r29+0x30 + signed int count; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00399D80 -> 0x00399E54 +*/ +// Range: 0x399D80 -> 0x399E54 +void zParPTankRender() { + // Blocks + /* anonymous block */ { + // Range: 0x399D80 -> 0x399E54 + class zParPTank * zp; // r17 + unsigned int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00399E60 -> 0x00399F04 +*/ +// Range: 0x399E60 -> 0x399F04 +void zParPTankUpdate(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x399E60 -> 0x399F04 + signed int paused; // r18 + class zParPTank * zp; // r17 + unsigned int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00399F10 -> 0x00399FCC +*/ +// Range: 0x399F10 -> 0x399FCC +void zParPTankExit() { + // Blocks + /* anonymous block */ { + // Range: 0x399F10 -> 0x399FCC + class zParPTank * zp; // r18 + unsigned int i; // r17 + class RwFrame * tmpframe; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00399FD0 -> 0x00399FD8 +*/ +// Range: 0x399FD0 -> 0x399FD8 +void zParPTankSceneExit() { + // Blocks + /* anonymous block */ { + // Range: 0x399FD0 -> 0x399FD8 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00399FE0 -> 0x0039A0A4 +*/ +// Range: 0x399FE0 -> 0x39A0A4 +void zParPTankSceneEnter() { + // Blocks + /* anonymous block */ { + // Range: 0x399FE0 -> 0x39A0A4 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039A0B0 -> 0x0039A1A8 +*/ +// Range: 0x39A0B0 -> 0x39A1A8 +void zParPTankInit() { + // Blocks + /* anonymous block */ { + // Range: 0x39A0B0 -> 0x39A1A8 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039A1B0 -> 0x0039A3B0 +*/ +// Range: 0x39A1B0 -> 0x39A3B0 +static void zParPTankSteamUpdate(class zParPTank * zp /* r16 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39A1B0 -> 0x39A3B0 + class RpPTankLockStruct plock; // r29+0x28 + class RpPTankLockStruct uvlock; // r29+0x20 + unsigned int plock_base; // r6 + unsigned int uvlock_base; // r5 + unsigned int i; // r4 + class RwTexCoords * uv; // r11 + class RwTexCoords * end_uv; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039A3B0 -> 0x0039A5FC +*/ +// Range: 0x39A3B0 -> 0x39A5FC +static void zParPTankSteamCreate(class zParPTank * zp /* r17 */, unsigned int max_particles /* r2 */, void (* update)(class zParPTank *, float) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39A3B0 -> 0x39A5FC + class RwTexture * tex; // r16 + class RwRGBA defaultColor; // r29+0x3C + class RwFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039A600 -> 0x0039A76C +*/ +// Range: 0x39A600 -> 0x39A76C +void zParPTankSpawnSnow(class xVec3 * pos /* r19 */, class xVec3 * vel /* r18 */, unsigned int count /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39A600 -> 0x39A76C + unsigned int old_size; // r7 + class snow_particle_data * it; // r17 + class snow_particle_data * end; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039A770 -> 0x0039ACE8 +*/ +// Range: 0x39A770 -> 0x39ACE8 +static void zParPTankSnowUpdate(class zParPTank * zp /* r18 */, float dt /* r24 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39A770 -> 0x39ACE8 + class snow_particle_data * end; // r17 + float fadein_life; // r23 + float fadeout_life; // r22 + float ilife; // r1 + float ifadein; // r21 + float ifadeout; // r20 + class snow_particle_data * it; // r16 + class xVec4 * _loc; // r2 + float par_dist; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039ACF0 -> 0x0039AD04 +*/ +// Range: 0x39ACF0 -> 0x39AD04 +void zParPTankSpawnMenuBubbles(class xVec3 * pos /* r2 */, class xVec3 * vel /* r2 */, unsigned int count /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39ACF0 -> 0x39AD04 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039AD10 -> 0x0039AD24 +*/ +// Range: 0x39AD10 -> 0x39AD24 +signed int zParPTankBubblesAvailable() { + // Blocks + /* anonymous block */ { + // Range: 0x39AD10 -> 0x39AD24 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039AD30 -> 0x0039AD9C +*/ +// Range: 0x39AD30 -> 0x39AD9C +void zParPTankSpawnBubbles(class xVec3 * pos /* r18 */, class xVec3 * vel /* r17 */, unsigned int count /* r16 */, float scale /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39AD30 -> 0x39AD9C + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039ADA0 -> 0x0039B14C +*/ +// Range: 0x39ADA0 -> 0x39B14C +static void zParPTankSpawnBubbles(class xVec3 * pos /* r20 */, class xVec3 * vel /* r19 */, unsigned int count /* r23 */, float scale /* r20 */, class zParPTank * zp /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39ADA0 -> 0x39B14C + class RpPTankLockStruct plock; // r29+0xF8 + class RpPTankLockStruct clock; // r29+0xF0 + class RpPTankLockStruct slock; // r29+0xE8 + class RpPTankLockStruct uvlock; // r29+0xE0 + unsigned int plock_base; // r29+0xD0 + unsigned int clock_base; // r29+0xC0 + unsigned int slock_base; // r29+0xB0 + unsigned int uvlock_base; // r30 + class xVec3 * ref_pos; // r17 + class RwCamera * camera; // r4 + unsigned int i; // r16 + class RwTexCoords * uv; // r2 + class RwV2d * size; // r21 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039B150 -> 0x0039B7D4 +*/ +// Range: 0x39B150 -> 0x39B7D4 +static void zParPTankBubbleUpdate(class zParPTank * zp /* r20 */, float dt /* r22 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39B150 -> 0x39B7D4 + class RpPTankLockStruct plock; // r29+0x108 + class RpPTankLockStruct clock; // r29+0x100 + class RpPTankLockStruct slock; // r29+0xF8 + class RpPTankLockStruct uvlock; // r29+0xF0 + unsigned int plock_base; // r29+0xE0 + unsigned int clock_base; // r29+0xD0 + unsigned int slock_base; // r29+0xC0 + unsigned int uvlock_base; // r29+0xB0 + float damp; // r21 + class BubbleData * base_xp; // r21 + class BubbleData * xp; // r19 + unsigned int i; // r18 + class xVec3 * pos; // r17 + class RwTexCoords * uv; // r5 + class RwRGBA * color; // r16 + class RwTexCoords * uv; // r4 + class RwTexCoords * end_uv; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039B7E0 -> 0x0039B954 +*/ +// Range: 0x39B7E0 -> 0x39B954 +static void zParPTankMenuBubbleCreate(class zParPTank * zp /* r17 */, unsigned int max_particles /* r2 */, void (* update)(class zParPTank *, float) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39B7E0 -> 0x39B954 + class RwTexture * tex; // r16 + class RwFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039B960 -> 0x0039BAD4 +*/ +// Range: 0x39B960 -> 0x39BAD4 +static void zParPTankBubbleCreate(class zParPTank * zp /* r17 */, unsigned int max_particles /* r2 */, void (* update)(class zParPTank *, float) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39B960 -> 0x39BAD4 + class RwTexture * tex; // r16 + class RwFrame * frame; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039BAE0 -> 0x0039BCE8 +*/ +// Range: 0x39BAE0 -> 0x39BCE8 +void zParPTankSpawnSparkles(class xVec3 * pos /* r18 */, unsigned int count /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39BAE0 -> 0x39BCE8 + class zParPTank * zp; // r16 + class RpPTankLockStruct posLock; // r29+0x48 + class RpPTankLockStruct vtx2TexCoordsLock; // r29+0x40 + unsigned int poslock_base; // r5 + unsigned int uvlock_base; // r4 + class xVec3 * ref_pos; // r3 + class RwCamera * camera; // r7 + unsigned int i; // r2 + class RwTexCoords * uv; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039BCF0 -> 0x0039BEC0 +*/ +// Range: 0x39BCF0 -> 0x39BEC0 +static void zParPTankSparkleUpdate(class zParPTank * zp /* r16 */, float dt /* r29+0x30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39BCF0 -> 0x39BEC0 + class RpPTankLockStruct plock; // r29+0x28 + class RpPTankLockStruct uvlock; // r29+0x20 + unsigned int plock_base; // r6 + unsigned int uvlock_base; // r5 + unsigned int i; // r4 + class RwTexCoords * uv; // r11 + class RwTexCoords * end_uv; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zParPTank.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039BEC0 -> 0x0039C10C +*/ +// Range: 0x39BEC0 -> 0x39C10C +static void zParPTankSparkleCreate(class zParPTank * zp /* r17 */, unsigned int max_particles /* r2 */, void (* update)(class zParPTank *, float) /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39BEC0 -> 0x39C10C + class RwTexture * tex; // r16 + class RwRGBA defaultColor; // r29+0x3C + class RwFrame * frame; // r2 + } +} + diff --git a/dwarf/SB/Game/zPendulum.cpp b/dwarf/SB/Game/zPendulum.cpp new file mode 100644 index 000000000..f351b2ba5 --- /dev/null +++ b/dwarf/SB/Game/zPendulum.cpp @@ -0,0 +1,2366 @@ +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void zPendulumTranslate(class xEnt *, class xVec3 *, class xMat4x3 *); // size: 0x0, address: 0x18D060 +signed int zPendulumEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x18CDF0 +void zPendulum_Move(class _zPendulum *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x18D0B0 +void zPendulum_Update(class _zPendulum *, class xScene *, float); // size: 0x0, address: 0x18D0C0 +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class _zPendulum : public zEnt { + // total size: 0x170 +public: + class xEntMotion motion; // offset 0xE0, size 0x80 + float lt; // offset 0x160, size 0x4 + float q1t; // offset 0x164, size 0x4 + float q3t; // offset 0x168, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class zFrag { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class rxReq { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class xSurface { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xMovePoint { + // total size: 0x0 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018CDF0 -> 0x0018D060 +*/ +// Range: 0x18CDF0 -> 0x18D060 +signed int zPendulumEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18CDF0 -> 0x18D060 + class _zPendulum * pend; // r5 + class FloatAndVoid dist; // r29+0x1C + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D060 -> 0x0018D0AC +*/ +// Range: 0x18D060 -> 0x18D0AC +static void zPendulumTranslate(class xEnt * xent /* r2 */, class xVec3 * dpos /* r18 */, class xMat4x3 * dmat /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D060 -> 0x18D0AC + class _zPendulum * pend; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D0B0 -> 0x0018D0B8 +*/ +// Range: 0x18D0B0 -> 0x18D0B8 +void zPendulum_Move(class _zPendulum * pend /* r2 */, class xScene * s /* r2 */, float dt /* r29 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D0B0 -> 0x18D0B8 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D0C0 -> 0x0018D168 +*/ +// Range: 0x18D0C0 -> 0x18D168 +void zPendulum_Update(class _zPendulum * pend /* r16 */, class xScene * sc /* r2 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D0C0 -> 0x18D168 + class xEntMotionPenData * aspen; // r3 + float t; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D170 -> 0x0018D2BC +*/ +// Range: 0x18D170 -> 0x18D2BC +void zPendulum_Reset(class _zPendulum * pend /* r16 */, class xScene * sc /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D170 -> 0x18D2BC + class xEntMotionPenData * aspen; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D2C0 -> 0x0018D2C8 +*/ +// Range: 0x18D2C0 -> 0x18D2C8 +void zPendulum_Setup(class _zPendulum * pend /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D2C0 -> 0x18D2C8 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D2D0 -> 0x0018D2D8 +*/ +// Range: 0x18D2D0 -> 0x18D2D8 +void zPendulum_Load(class _zPendulum * pend /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D2D0 -> 0x18D2D8 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D2E0 -> 0x0018D2E8 +*/ +// Range: 0x18D2E0 -> 0x18D2E8 +void zPendulum_Save(class _zPendulum * pend /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D2E0 -> 0x18D2E8 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D2F0 -> 0x0018D394 +*/ +// Range: 0x18D2F0 -> 0x18D394 +void zPendulum_Init(class _zPendulum * pend /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D2F0 -> 0x18D394 + class xEntMotionAsset * motionAsset; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zPendulum.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D3A0 -> 0x0018D3A8 +*/ +// Range: 0x18D3A0 -> 0x18D3A8 +void zPendulum_Init(void * pend /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D3A0 -> 0x18D3A8 + } +} + diff --git a/dwarf/SB/Game/zPickupTable.cpp b/dwarf/SB/Game/zPickupTable.cpp new file mode 100644 index 000000000..932d9de35 --- /dev/null +++ b/dwarf/SB/Game/zPickupTable.cpp @@ -0,0 +1,2036 @@ +/* + Compile unit: C:\SB\Game\zPickupTable.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class PickupTranslEntry ptranstbl[20]; // size: 0xF0, address: 0x4DCD20 +static unsigned int ptranstbl_size; // size: 0x4, address: 0x50EF38 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zAssetPickup { + // total size: 0x14 +public: + unsigned int pickupHash; // offset 0x0, size 0x4 + unsigned char pickupType; // offset 0x4, size 0x1 + unsigned char pickupIndex; // offset 0x5, size 0x1 + unsigned short pickupFlags; // offset 0x6, size 0x2 + unsigned int quantity; // offset 0x8, size 0x4 + unsigned int modelID; // offset 0xC, size 0x4 + unsigned int animID; // offset 0x10, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class PickupTranslEntry { + // total size: 0xC +public: + char * tname; // offset 0x0, size 0x4 + unsigned int hval; // offset 0x4, size 0x4 + unsigned char type; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned short flags; // offset 0xA, size 0x2 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x8 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int Count; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; + +/* + Compile unit: C:\SB\Game\zPickupTable.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0029E500 -> 0x0029E5E0 +*/ +// Range: 0x29E500 -> 0x29E5E0 +void zPickupTableInit() { + // Blocks + /* anonymous block */ { + // Range: 0x29E500 -> 0x29E5E0 + class zAssetPickup * ptbl; // r18 + unsigned int i; // r17 + unsigned int j; // r8 + } +} + diff --git a/dwarf/SB/Game/zPlatform.cpp b/dwarf/SB/Game/zPlatform.cpp new file mode 100644 index 000000000..e239c8935 --- /dev/null +++ b/dwarf/SB/Game/zPlatform.cpp @@ -0,0 +1,3323 @@ +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zParEmitter * sEmitTremble; // size: 0x4, address: 0x50F68C +static class zParEmitter * sEmitBreakaway; // size: 0x4, address: 0x50F690 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +unsigned int xUpdateCull_AlwaysTrueCB(void *, void *); // size: 0x0, address: 0x329920 +void xFFXShakeUpdateEnt(class xEnt *, class xScene *, float, void *); // size: 0x0, address: 0x1DAA70 +class xVec3 g_O3; // size: 0xC, address: 0x4F8D70 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +unsigned int gxAnimUseGrowAlloc; // size: 0x4, address: 0x50FB9C +void xAnimDefaultBeforeEnter(class xAnimPlay *, class xAnimState *); // size: 0x0, address: 0x213A90 +void genericPlatRender(class xEnt *); // size: 0x0, address: 0x1916E0 +void zPlatformTranslate(class xEnt *, class xVec3 *, class xMat4x3 *); // size: 0x0, address: 0x18E3D0 +signed int zPlatformEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x18D3B0 +void zPlatform_Move(class xEnt *, class xScene *, float, class xEntFrame *); // size: 0x0, address: 0x18E720 +void zPlatform_Update(class xEnt *, class xScene *, float); // size: 0x0, address: 0x18E780 +class xPlatformConvBeltData { + // total size: 0x4 +public: + float speed; // offset 0x0, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xPlatformFMData { + // total size: 0x4 +public: + signed int nothingyet; // offset 0x0, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xPlatformFallingData { + // total size: 0x8 +public: + float speed; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xPlatformFRData { + // total size: 0x10 +public: + float fspeed; // offset 0x0, size 0x4 + float rspeed; // offset 0x4, size 0x4 + float ret_delay; // offset 0x8, size 0x4 + float post_ret_delay; // offset 0xC, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class rxReq { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPlatformBreakawayData { + // total size: 0x10 +public: + float ba_delay; // offset 0x0, size 0x4 + unsigned int bustModelID; // offset 0x4, size 0x4 + float reset_delay; // offset 0x8, size 0x4 + unsigned int breakflags; // offset 0xC, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xPlatformERData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xFFXShakeState { + // total size: 0x24 +public: + class xVec3 disp; // offset 0x0, size 0xC + float dur; // offset 0xC, size 0x4 + float freq; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float alpha; // offset 0x18, size 0x4 + float lval; // offset 0x1C, size 0x4 + class xFFXShakeState * next; // offset 0x20, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xPlatformAsset { + // total size: 0x3C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char pad; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xPlatformERData er; // offset 0x4, size 0x4 + class xPlatformOrbitData orb; // offset 0x4, size 0x4 + class xPlatformSplineData spl; // offset 0x4, size 0x4 + class xPlatformMPData mp; // offset 0x4, size 0x4 + class xPlatformMechData mech; // offset 0x4, size 0x4 + class xPlatformPenData pen; // offset 0x4, size 0x4 + class xPlatformConvBeltData cb; // offset 0x4, size 0x4 + class xPlatformFallingData fall; // offset 0x4, size 0x8 + class xPlatformFRData fr; // offset 0x4, size 0x10 + class xPlatformBreakawayData ba; // offset 0x4, size 0x10 + class xPlatformSpringboardData sb; // offset 0x4, size 0x2C + class xPlatformTeeterData teet; // offset 0x4, size 0xC + class xPlatformPaddleData paddle; // offset 0x4, size 0x38 + class xPlatformFMData fm; // offset 0x4, size 0x4 + }; +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xPlatformOrbitData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xPlatformSpringboardData { + // total size: 0x2C +public: + float jmph[3]; // offset 0x0, size 0xC + float jmpbounce; // offset 0xC, size 0x4 + unsigned int animID[3]; // offset 0x10, size 0xC + class xVec3 jmpdir; // offset 0x1C, size 0xC + unsigned int springflags; // offset 0x28, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xPlatformPaddleData { + // total size: 0x38 +public: + signed int startOrient; // offset 0x0, size 0x4 + signed int countOrient; // offset 0x4, size 0x4 + float orientLoop; // offset 0x8, size 0x4 + float orient[6]; // offset 0xC, size 0x18 + unsigned int paddleFlags; // offset 0x24, size 0x4 + float rotateSpeed; // offset 0x28, size 0x4 + float accelTime; // offset 0x2C, size 0x4 + float decelTime; // offset 0x30, size 0x4 + float hubRadius; // offset 0x34, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xPlatformSplineData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xFFX { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* doEffect)(class xEnt *, class xScene *, float, void *); // offset 0x4, size 0x4 + void * fdata; // offset 0x8, size 0x4 + class xFFX * next; // offset 0xC, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xPlatformTeeterData { + // total size: 0xC +public: + float itilt; // offset 0x0, size 0x4 + float maxtilt; // offset 0x4, size 0x4 + float invmass; // offset 0x8, size 0x4 +}; +class xPlatformMPData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xPlatformMechData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xPlatformPenData { + // total size: 0x4 +public: + signed int nodata; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018D3B0 -> 0x0018E2EC +*/ +// Range: 0x18D3B0 -> 0x18E2EC +signed int zPlatformEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18D3B0 -> 0x18E2EC + class zPlatform * plat; // r16 + signed int iParam0; // r2 + signed int destctr; // r4 + float tp[4]; // r29+0xA0 + float tp[4]; // r29+0x90 + float tp[4]; // r29+0x80 + float tp[4]; // r29+0x70 + float tp[4]; // r29+0x60 + float tp[4]; // r29+0x50 + float mt; // r29+0xC0 + float mt; // r29+0xC0 + class FloatAndVoid dist; // r29+0xBC + class zShrapnelAsset * shrap; // r2 + class xVec3 currVel; // r29+0xB0 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E2F0 -> 0x0018E3D0 +*/ +// Range: 0x18E2F0 -> 0x18E3D0 +static void zPlatFM_EventSetup(class zPlatform * plat /* r2 */, float * toParam /* r2 */, signed int idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E2F0 -> 0x18E3D0 + class zPlatFMRunTime * fmrt; // r8 + float ds; // r5 + float ttm; // r4 + float atm; // r1 + float dtm; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E3D0 -> 0x0018E41C +*/ +// Range: 0x18E3D0 -> 0x18E41C +static void zPlatformTranslate(class xEnt * xent /* r2 */, class xVec3 * dpos /* r18 */, class xMat4x3 * dmat /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E3D0 -> 0x18E41C + class zPlatform * plat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E420 -> 0x0018E450 +*/ +// Range: 0x18E420 -> 0x18E450 +void zPlatform_Dismount(class zPlatform * plat /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E420 -> 0x18E450 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E450 -> 0x0018E508 +*/ +// Range: 0x18E450 -> 0x18E508 +void zPlatform_Mount(class zPlatform * plat /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E450 -> 0x18E508 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E510 -> 0x0018E650 +*/ +// Range: 0x18E510 -> 0x18E650 +static void zPlatform_Tremble(class zPlatform * plat /* r16 */, float ampl /* r22 */, float freq /* r21 */, float dur /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E510 -> 0x18E650 + class xFFXShakeState * ss; // r17 + class xFFX * sfkt; // r2 + class xParEmitterCustomSettings info; // r29+0x40 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E650 -> 0x0018E714 +*/ +// Range: 0x18E650 -> 0x18E714 +void zPlatform_Shake(class zPlatform * plat /* r17 */, float ampl /* r21 */, float freq /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E650 -> 0x18E714 + class xFFXShakeState * ss; // r16 + class xFFX * sfkt; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E720 -> 0x0018E774 +*/ +// Range: 0x18E720 -> 0x18E774 +void zPlatform_Move(class xEnt * entplat /* r2 */, class xScene * s /* r17 */, float dt /* r20 */, class xEntFrame * frame /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E720 -> 0x18E774 + class zPlatform * plat; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018E780 -> 0x0018F518 +*/ +// Range: 0x18E780 -> 0x18F518 +void zPlatform_Update(class xEnt * entplat /* r2 */, class xScene * sc /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18E780 -> 0x18F518 + class zPlatform * plat; // r17 + unsigned short state; // r4 + unsigned short state; // r16 + class xEntMotionMechData * mkasst; // r4 + class xEntDrive * drv; // r4 + float s; // r1 + class xEnt * p; // r6 + class xEntDrive * drv; // r4 + float ctilt; // r4 + float itilt; // r3 + float dtilt; // r2 + class xVec3 * scale; // r2 + float s; // r21 + class xEnt * p; // r2 + class xVec3 lpos; // r29+0x220 + float cangle; // r7 + float dangle; // r2 + float mangle; // r6 + float eangle; // r1 + float tangle; // r1 + class xVec3 * scale; // r2 + float time[3]; // r29+0x210 + float orient; // r29+0x230 + class xMat3x3 orientrot; // r29+0x1E0 + class xMat3x3 origrot; // r29+0x1B0 + class xVec3 * scale; // r2 + class xMovePoint * src; // r16 + signed int moving; // r16 + class xVec3 * opos; // r8 + class xVec3 * pos; // r7 + class xVec3 * orot; // r6 + class xVec3 * rot; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0018F520 -> 0x00190484 +*/ +// Range: 0x18F520 -> 0x190484 +static void zPlatFM_Update(class zPlatform * plat /* r19 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x18F520 -> 0x190484 + signed int i; // r18 + class zPlatFMRunTime * fmrt; // r17 + float tm; // r29+0x180 + float ttm; // r4 + float atm; // r8 + float dtm; // r2 + float vm; // r1 + float ds; // r29+0x180 + float etm; // r29+0x180 + float p; // r6 + float cfacc; // r29+0x180 + float cfcs; // r5 + float cfdec; // r4 + float p; // r7 + float cfacc; // r29+0x180 + float cfcs; // r6 + float cfdec; // r2 + float p; // r6 + float cfacc; // r29+0x180 + float cfcs; // r4 + float p; // r4 + float cfacc; // r29+0x180 + float cfcs; // r29+0x180 + float p; // r6 + float cfacc; // r29+0x180 + float cfcs; // r4 + float p; // r3 + float cfcs; // r29+0x180 + float cfdec; // r29+0x180 + float cfcs; // r5 + float cfdec; // r29+0x180 + class xMat4x3 * pmat; // r16 + float translx; // r3 + float transly; // r2 + float translz; // r1 + float translx; // r3 + float transly; // r2 + float translz; // r1 + float translx; // r3 + float transly; // r2 + float translz; // r1 + class xMat3x3 preR; // r29+0x150 + class xMat3x3 preR; // r29+0x120 + class xMat3x3 preR; // r29+0xF0 + class xMat3x3 postR; // r29+0xC0 + class xMat3x3 postR; // r29+0x90 + class xMat3x3 postR; // r29+0x60 + float rts; // r3 + float ups; // r2 + float ats; // r1 + float inv_t; // r29+0x180 + float inv_t; // r29+0x180 + float len; // r5 + float len2; // r7 + float len_inv; // r4 + float inv_t; // r29+0x180 + float len2; // r6 + float len_inv; // r4 + float rdotu; // r7 + float len2; // r6 + float len_inv; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00190490 -> 0x00190A10 +*/ +// Range: 0x190490 -> 0x190A10 +unsigned int zPlatform_PaddleCollide(class xCollis * coll /* r4 */, class xVec3 * hitsource /* r17 */, class xVec3 * hitvel /* r16 */, unsigned int worldSpaceNorm /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x190490 -> 0x190A10 + class zPlatform * plat; // r18 + class xVec3 locnorm; // r29+0x100 + class xVec3 lochitsrc; // r29+0xF0 + class xVec3 lochitvel; // r29+0xE0 + float hitdot; // r1 + class xVec3 hitsrcbot; // r29+0xD0 + class xVec3 hitsrctop; // r29+0xC0 + class xRay3 hitsrcray; // r29+0x90 + class xCollis hitsrccoll; // r29+0x40 + signed int posX; // r3 + signed int posZ; // r2 + signed int direction; // r17 + signed int stutter; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00190A10 -> 0x00190AF4 +*/ +// Range: 0x190A10 -> 0x190AF4 +void zPlatform_PaddleStartRotate(class xEnt * entplat /* r2 */, signed int direction /* r2 */, signed int stutter /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x190A10 -> 0x190AF4 + class zPlatform * plat; // r16 + float time[3]; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00190B00 -> 0x00190FA8 +*/ +// Range: 0x190B00 -> 0x190FA8 +static float SolvePaddleMotion(class zPlatform * plat /* r2 */, float * time /* r2 */, float tmr /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x190B00 -> 0x190FA8 + class xPlatformPaddleData * paddle; // r2 + float destOrient; // r29 + float srcOrient; // r4 + float absDelta; // r3 + float stutterAmount; // r1 + float A; // r2 + float D; // r1 + float distA; // r8 + float distC; // r7 + float distD; // r7 + float lerp; // r1 + float ttot; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00190FB0 -> 0x00191230 +*/ +// Range: 0x190FB0 -> 0x191230 +void zPlatform_Reset(class zPlatform * plat /* r16 */, class xScene * sc /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x190FB0 -> 0x191230 + signed int i; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191230 -> 0x00191238 +*/ +// Range: 0x191230 -> 0x191238 +void zPlatform_Load(class zPlatform * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191230 -> 0x191238 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191240 -> 0x00191248 +*/ +// Range: 0x191240 -> 0x191248 +void zPlatform_Save(class zPlatform * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191240 -> 0x191248 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191250 -> 0x001912C0 +*/ +// Range: 0x191250 -> 0x1912C0 +void zPlatform_Setup(class zPlatform * plat /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191250 -> 0x1912C0 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001912C0 -> 0x001916D0 +*/ +// Range: 0x1912C0 -> 0x1916D0 +void zPlatform_Init(class zPlatform * plat /* r16 */, class xEntAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1912C0 -> 0x1916D0 + class xPlatformAsset * passet; // r17 + class xEntMotionAsset * emasset; // r20 + void * buf; // r2 + unsigned int size; // r29+0x8C + class xAnimFile * spring_file; // r19 + class xAnimFile * idle_file; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001916D0 -> 0x001916D8 +*/ +// Range: 0x1916D0 -> 0x1916D8 +void zPlatform_Init(void * plat /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1916D0 -> 0x1916D8 + } +} + +/* + Compile unit: C:\SB\Game\zPlatform.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001916E0 -> 0x0019172C +*/ +// Range: 0x1916E0 -> 0x19172C +static void genericPlatRender(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1916E0 -> 0x19172C + } +} + diff --git a/dwarf/SB/Game/zPortal.cpp b/dwarf/SB/Game/zPortal.cpp new file mode 100644 index 000000000..da524fc42 --- /dev/null +++ b/dwarf/SB/Game/zPortal.cpp @@ -0,0 +1,2052 @@ +/* + Compile unit: C:\SB\Game\zPortal.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zPortalEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x191730 +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xSurface { + // total size: 0x0 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xFFX { + // total size: 0x0 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; + +/* + Compile unit: C:\SB\Game\zPortal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191730 -> 0x00191798 +*/ +// Range: 0x191730 -> 0x191798 +signed int zPortalEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191730 -> 0x191798 + } +} + +/* + Compile unit: C:\SB\Game\zPortal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001917A0 -> 0x001917A8 +*/ +// Range: 0x1917A0 -> 0x1917A8 +void zPortalLoad(class _zPortal * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1917A0 -> 0x1917A8 + } +} + +/* + Compile unit: C:\SB\Game\zPortal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001917B0 -> 0x001917B8 +*/ +// Range: 0x1917B0 -> 0x1917B8 +void zPortalSave(class _zPortal * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1917B0 -> 0x1917B8 + } +} + +/* + Compile unit: C:\SB\Game\zPortal.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001917C0 -> 0x0019181C +*/ +// Range: 0x1917C0 -> 0x19181C +void zPortalInit(void * portal /* r17 */, void * passet /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1917C0 -> 0x19181C + } +} + diff --git a/dwarf/SB/Game/zRenderState.cpp b/dwarf/SB/Game/zRenderState.cpp new file mode 100644 index 000000000..486852d1e --- /dev/null +++ b/dwarf/SB/Game/zRenderState.cpp @@ -0,0 +1,77 @@ +/* + Compile unit: C:\SB\Game\zRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static enum _SDRenderState sRS; // size: 0x4, address: 0x50F694 +enum _SDRenderState { + SDRS_Unknown = 0, + SDRS_Default = 1, + SDRS_OpaqueModels = 2, + SDRS_AlphaModels = 3, + SDRS_Bubble = 4, + SDRS_Projectile = 5, + SDRS_Font = 6, + SDRS_HUD = 7, + SDRS_Particles = 8, + SDRS_Lightning = 9, + SDRS_Streak = 10, + SDRS_SkyBack = 11, + SDRS_Environment = 12, + SDRS_Fill = 13, + SDRS_NPCVisual = 14, + SDRS_OOBFade = 15, + SDRS_OOBPlayerZ = 16, + SDRS_OOBPlayerAlpha = 17, + SDRS_OOBHand = 18, + SDRS_Glare = 19, + SDRS_Newsfish = 20, + SDRS_CruiseHUD = 21, + SDRS_DiscoFloorGlow = 22, + SDRS_Total = -1, +}; + +/* + Compile unit: C:\SB\Game\zRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191820 -> 0x00191C80 +*/ +// Range: 0x191820 -> 0x191C80 +void zRenderState(enum _SDRenderState next /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191820 -> 0x191C80 + } +} + +/* + Compile unit: C:\SB\Game\zRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191C80 -> 0x00191C88 +*/ +// Range: 0x191C80 -> 0x191C88 +enum _SDRenderState zRenderStateCurrent() { + // Blocks + /* anonymous block */ { + // Range: 0x191C80 -> 0x191C88 + } +} + +/* + Compile unit: C:\SB\Game\zRenderState.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191C90 -> 0x00191C98 +*/ +// Range: 0x191C90 -> 0x191C98 +void zRenderStateInit() { + // Blocks + /* anonymous block */ { + // Range: 0x191C90 -> 0x191C98 + } +} + diff --git a/dwarf/SB/Game/zRumble.cpp b/dwarf/SB/Game/zRumble.cpp new file mode 100644 index 000000000..a88bc509c --- /dev/null +++ b/dwarf/SB/Game/zRumble.cpp @@ -0,0 +1,2099 @@ +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +enum _tagSDRumbleType { + SDR_None = 0, + SDR_Test = 1, + SDR_Damage = 2, + SDR_Bounce = 3, + SDR_EventLight = 4, + SDR_EventMedium = 5, + SDR_EventHeavy = 6, + SDR_DustDestroyedObj = 7, + SDR_XploDestroyedObj = 8, + SDR_WebDestroyed = 9, + SDR_Tiki = 10, + SDR_LassoDestroy = 11, + SDR_DamageByEGen = 12, + SDR_BounceHit = 13, + SDR_CruiseBubbleLaunch = 14, + SDR_CruiseBubbleExplode = 15, + SDR_TeleportStart = 16, + SDR_Teleport = 17, + SDR_TeleportEject = 18, + SDR_Total = 19, +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class rxReq { + // total size: 0x0 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xSurface { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xFFX { + // total size: 0x0 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191CA0 -> 0x00191CBC +*/ +// Range: 0x191CA0 -> 0x191CBC +signed int zPadAddRumble(enum _tagRumbleType type /* r4 */, float time /* r29 */, signed int replace /* r2 */, unsigned int fxflags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191CA0 -> 0x191CBC + } +} + +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191CC0 -> 0x00191D2C +*/ +// Range: 0x191CC0 -> 0x191D2C +void zRumbleStartDistance(signed int pad_id /* r2 */, float real_dist /* r29+0x10 */, float max_dist /* r29+0x10 */, enum _tagRumbleType type /* r2 */, float maxTime /* r29+0x10 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191CC0 -> 0x191D2C + float rumble_it; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191D30 -> 0x00191D48 +*/ +// Range: 0x191D30 -> 0x191D48 +void zRumbleStart(enum _tagSDRumbleType rumble_type /* r2 */, class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191D30 -> 0x191D48 + } +} + +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191D50 -> 0x00191D64 +*/ +// Range: 0x191D50 -> 0x191D64 +void zRumbleStart(enum _tagSDRumbleType rumble_type /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191D50 -> 0x191D64 + } +} + +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191D70 -> 0x00191D78 +*/ +// Range: 0x191D70 -> 0x191D78 +void zRumbleStart(signed int pad_id /* r2 */, enum _tagSDRumbleType rumble_type /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191D70 -> 0x191D78 + } +} + +/* + Compile unit: C:\SB\Game\zRumble.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00191D80 -> 0x00192188 +*/ +// Range: 0x191D80 -> 0x192188 +void zRumbleStart(signed int pad_id /* r16 */, enum _tagSDRumbleType rumble_type /* r2 */, class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x191D80 -> 0x192188 + } +} + diff --git a/dwarf/SB/Game/zSaveLoad.cpp b/dwarf/SB/Game/zSaveLoad.cpp new file mode 100644 index 000000000..c170d471f --- /dev/null +++ b/dwarf/SB/Game/zSaveLoad.cpp @@ -0,0 +1,3282 @@ +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static unsigned int saveSuccess; // size: 0x4, address: 0x50F698 +static float time_elapsed; // size: 0x4, address: 0x50E7B4 +static float time_last; // size: 0x4, address: 0x50F69C +static float time_current; // size: 0x4, address: 0x50F6A0 +static signed long t0; // size: 0x4, address: 0x50F6A8 +static signed long t1; // size: 0x4, address: 0x50F6B0 +static signed int currentCard; // size: 0x4, address: 0x50E7B8 +static signed int currentGame; // size: 0x4, address: 0x50E7BC +static signed int promptSel; // size: 0x4, address: 0x50F6B8 +static signed int badCard; // size: 0x4, address: 0x50F6BC +static signed int sAvailable; // size: 0x4, address: 0x50F6C0 +static signed int sNeeded; // size: 0x4, address: 0x50F6C4 +static signed int sAccessType; // size: 0x4, address: 0x50F6C8 +static float dontPoll; // size: 0x4, address: 0x50E7C0 +static signed int sLastCard; // size: 0x4, address: 0x0 +static signed int sLastGame; // size: 0x4, address: 0x0 +static signed int autoSaveCard; // size: 0x4, address: 0x50E7C4 +static char currSceneStr[32]; // size: 0x20, address: 0x415D10 +static char sceneRead[32]; // size: 0x20, address: 0x415D30 +class zSaveLoadUI zSaveLoadUITable[62]; // size: 0x2E8, address: 0x415D50 +char * thumbIconMap[15]; // size: 0x3C, address: 0x416040 +class zSaveLoadGame zSaveLoadGameTable[3]; // size: 0x144, address: 0x52EBA0 +static unsigned char preAutoSaving; // size: 0x1, address: 0x50F6CC +static signed int ps2Result; // size: 0x4, address: 0x50F6D0 +static signed int ps2Formatted; // size: 0x4, address: 0x50F6D4 +static signed int ps2CardType; // size: 0x4, address: 0x50F6D8 +static signed int ps2FreeSpace; // size: 0x4, address: 0x50F6DC +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xSndGlobals gSnd; // size: 0x13A0, address: 0x5B7800 +enum eGameMode gGameMode; // size: 0x4, address: 0x50F5E0 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +signed int gGameState; // size: 0x4, address: 0x50E728 +signed int xSGT_LoadPrefsCB(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // size: 0x0, address: 0x1921E0 +signed int xSGT_LoadLoadCB(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // size: 0x0, address: 0x1922D0 +signed int xSGT_SaveProcPrefsCB(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // size: 0x0, address: 0x1923A0 +signed int xSGT_SaveInfoPrefsCB(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // size: 0x0, address: 0x192450 +signed int xSGT_SaveProcCB(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // size: 0x0, address: 0x192470 +signed int xSGT_SaveInfoCB(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // size: 0x0, address: 0x192530 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +float sTimeElapsed; // size: 0x4, address: 0x50F504 +signed long sTimeLast; // size: 0x4, address: 0x50F508 +signed long sTimeCurrent; // size: 0x4, address: 0x50F510 +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zSaveLoadGame { + // total size: 0x6C +public: + char label[64]; // offset 0x0, size 0x40 + char date[32]; // offset 0x40, size 0x20 + signed int progress; // offset 0x60, size 0x4 + unsigned int size; // offset 0x64, size 0x4 + char thumbIconIndex; // offset 0x68, size 0x1 +}; +enum sound_category { + SND_CAT_INVALID = -1, + SND_CAT_GAME = 0, + SND_CAT_DIALOG = 1, + SND_CAT_MUSIC = 2, + SND_CAT_CUTSCENE = 3, + SND_CAT_UI = 4, + SND_CAT_NUM_CATEGORIES = 5, +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class st_XSAVEGAME_READCONTEXT { + // total size: 0x0 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class XSGAutoData { + // total size: 0x14 +public: + signed int flg_autodata; // offset 0x0, size 0x4 + signed int lastTarg; // offset 0x4, size 0x4 + signed int lastGame; // offset 0x8, size 0x4 + signed int lastPhysicalSlot; // offset 0xC, size 0x4 + class st_ISGSESSION * isg_monitor; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class st_XSAVEGAME_DATA { + // total size: 0x20F0 +public: + signed int gfile_idx; // offset 0x0, size 0x4 + enum en_SAVEGAME_MODE mode; // offset 0x4, size 0x4 + unsigned int stage; // offset 0x8, size 0x4 + signed int gslot; // offset 0xC, size 0x4 + char label[64]; // offset 0x10, size 0x40 + signed int progress; // offset 0x50, size 0x4 + signed int thumbIconIdx; // offset 0x54, size 0x4 + signed long playtime; // offset 0x58, size 0x4 + char * membuf; // offset 0x60, size 0x4 + signed int memsize; // offset 0x64, size 0x4 + char * buf_curpos; // offset 0x68, size 0x4 + char * buf_sizespot; // offset 0x6C, size 0x4 + char * buf_cksmspot; // offset 0x70, size 0x4 + signed int totamt; // offset 0x74, size 0x4 + unsigned int chksum; // offset 0x78, size 0x4 + unsigned int upd_tally; // offset 0x7C, size 0x4 + signed int cltneed; // offset 0x80, size 0x4 + signed int cltmax; // offset 0x84, size 0x4 + signed int chdrneed; // offset 0x88, size 0x4 + signed int stkcnt; // offset 0x8C, size 0x4 + class st_XSAVEGAME_CLIENT cltstk[128]; // offset 0x90, size 0x2000 + class st_XSAVEGAME_CLIENT dfltloadclt; // offset 0x2090, size 0x40 + unsigned int file_chksum; // offset 0x20D0, size 0x4 + unsigned int read_chksum; // offset 0x20D4, size 0x4 + signed int readsize; // offset 0x20D8, size 0x4 + char * loadbuf; // offset 0x20DC, size 0x4 + signed int loadsize; // offset 0x20E0, size 0x4 + char * walkpos; // offset 0x20E4, size 0x4 + signed int walkremain; // offset 0x20E8, size 0x4 + class st_ISGSESSION * isgsess; // offset 0x20EC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class st_XSAVEGAME_WRITECONTEXT { + // total size: 0x0 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xFFX { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class iSndInfo { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + class iSndVol vol; // offset 0x4, size 0x4 + unsigned int pitch; // offset 0x8, size 0x4 + signed int lastStreamBuffer; // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum en_SAVEGAME_MODE { + XSG_MODE_LOAD = 10, + XSG_MODE_SAVE = 11, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum sound_listener_game_mode { + SND_LISTENER_MODE_PLAYER = 0, + SND_LISTENER_MODE_CAMERA = 1, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xSndVoiceInfo { + // total size: 0x64 +public: + unsigned int assetID; // offset 0x0, size 0x4 + unsigned int sndID; // offset 0x4, size 0x4 + unsigned int parentID; // offset 0x8, size 0x4 + class xVec3 * parentPos; // offset 0xC, size 0x4 + signed int internalID; // offset 0x10, size 0x4 + unsigned int flags; // offset 0x14, size 0x4 + unsigned short pad; // offset 0x18, size 0x2 + unsigned short priority; // offset 0x1A, size 0x2 + float vol; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + unsigned int sample_rate; // offset 0x24, size 0x4 + unsigned int deadct; // offset 0x28, size 0x4 + enum sound_category category; // offset 0x2C, size 0x4 + class xVec3 actualPos; // offset 0x30, size 0xC + class xVec3 playPos; // offset 0x3C, size 0xC + float innerRadius2; // offset 0x48, size 0x4 + float outerRadius2; // offset 0x4C, size 0x4 + unsigned int lock_owner; // offset 0x50, size 0x4 + class iSndInfo ps; // offset 0x54, size 0x10 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +enum en_XSGASYNC_STATUS { + XSG_ASTAT_NOOP = 0, + XSG_ASTAT_INPROG = 1, + XSG_ASTAT_SUCCESS = 2, + XSG_ASTAT_FAILED = 3, +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class st_ISGSESSION { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class st_XSAVEGAME_CLIENT { + // total size: 0x40 +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int (* cltinfo)(void *, class st_XSAVEGAME_DATA *, signed int *, signed int *); // offset 0x4, size 0x4 + signed int (* cltproc)(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_WRITECONTEXT *); // offset 0x8, size 0x4 + signed int (* cltload)(void *, class st_XSAVEGAME_DATA *, class st_XSAVEGAME_READCONTEXT *, unsigned int, signed int); // offset 0xC, size 0x4 + void * cltdata; // offset 0x10, size 0x4 + signed int needamt; // offset 0x14, size 0x4 + signed int maxamt; // offset 0x18, size 0x4 + signed int realamt; // offset 0x1C, size 0x4 + char * buf_sizepos; // offset 0x20, size 0x4 + char * buf_maxpos; // offset 0x24, size 0x4 + signed int blokact; // offset 0x28, size 0x4 + signed int blokmax; // offset 0x2C, size 0x4 + char * blokpos; // offset 0x30, size 0x4 + char * readpos; // offset 0x34, size 0x4 + signed int readamt; // offset 0x38, size 0x4 + signed int readremain; // offset 0x3C, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zSaveLoadUI { + // total size: 0xC +public: + unsigned int entry; // offset 0x0, size 0x4 + unsigned int nameID; // offset 0x4, size 0x4 + char * name; // offset 0x8, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +enum en_XSG_WHYFAIL { + XSG_WHYERR_NONE = 0, + XSG_WHYERR_NOCARD = 1, + XSG_WHYERR_NOROOM = 2, + XSG_WHYERR_DAMAGE = 3, + XSG_WHYERR_CARDYANKED = 4, + XSG_WHYERR_OTHER = 5, + XSG_WHYERR_NOMORE = 6, +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class iSndVol { + // total size: 0x4 +public: + signed short volL; // offset 0x0, size 0x2 + signed short volR; // offset 0x2, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class xSndGlobals { + // total size: 0x13A0 +public: + unsigned int stereo; // offset 0x0, size 0x4 + unsigned int SndCount; // offset 0x4, size 0x4 + float categoryVolFader[5]; // offset 0x8, size 0x14 + class xSndVoiceInfo voice[48]; // offset 0x1C, size 0x12C0 + class xMat4x3 listenerMat[2]; // offset 0x12E0, size 0x80 + enum sound_listener_game_mode listenerMode; // offset 0x1360, size 0x4 + unsigned int suspendCD; // offset 0x1364, size 0x4 + class xVec3 right; // offset 0x1368, size 0xC + class xVec3 up; // offset 0x1374, size 0xC + class xVec3 at; // offset 0x1380, size 0xC + class xVec3 pos; // offset 0x138C, size 0xC +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192190 -> 0x001921D8 +*/ +// Range: 0x192190 -> 0x1921D8 +unsigned int zSaveLoad_slotIsEmpty(unsigned int i /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x192190 -> 0x1921D8 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001921E0 -> 0x001922C8 +*/ +// Range: 0x1921E0 -> 0x1922C8 +signed int xSGT_LoadPrefsCB(class st_XSAVEGAME_DATA * xsgdata /* r17 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1921E0 -> 0x1922C8 + char bigbuf[32]; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001922D0 -> 0x0019239C +*/ +// Range: 0x1922D0 -> 0x19239C +signed int xSGT_LoadLoadCB(class st_XSAVEGAME_DATA * xsgdata /* r18 */, class st_XSAVEGAME_READCONTEXT * rctxt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1922D0 -> 0x19239C + char bigbuf[32]; // r29+0x40 + signed int compdiff; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001923A0 -> 0x0019244C +*/ +// Range: 0x1923A0 -> 0x19244C +signed int xSGT_SaveProcPrefsCB(class st_XSAVEGAME_DATA * xsgdata /* r18 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1923A0 -> 0x19244C + signed int amy; // r2 + signed int sum; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192450 -> 0x0019246C +*/ +// Range: 0x192450 -> 0x19246C +signed int xSGT_SaveInfoPrefsCB(signed int * need /* r2 */, signed int * most /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x192450 -> 0x19246C + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192470 -> 0x00192530 +*/ +// Range: 0x192470 -> 0x192530 +signed int xSGT_SaveProcCB(class st_XSAVEGAME_DATA * xsgdata /* r18 */, class st_XSAVEGAME_WRITECONTEXT * wctxt /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x192470 -> 0x192530 + signed int amy; // r2 + signed int sum; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192530 -> 0x0019257C +*/ +// Range: 0x192530 -> 0x19257C +signed int xSGT_SaveInfoCB(signed int * need /* r17 */, signed int * most /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x192530 -> 0x19257C + signed int slen; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192580 -> 0x00192658 +*/ +// Range: 0x192580 -> 0x192658 +void zSaveLoad_DispatchCB(unsigned int dispatchEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x192580 -> 0x192658 + class st_XSAVEGAME_DATA * inst; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192660 -> 0x00192C88 +*/ +// Range: 0x192660 -> 0x192C88 +unsigned int zSaveLoad_SaveLoop() { + // Blocks + /* anonymous block */ { + // Range: 0x192660 -> 0x192C88 + signed int result; // r2 + signed int state; // r16 + signed int tmp; // r2 + class xBase * sendTo; // r2 + class xBase * sendTo; // r2 + signed int tmp; // r2 + class xBase * sendTo; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00192C90 -> 0x00193054 +*/ +// Range: 0x192C90 -> 0x193054 +unsigned int zSaveLoad_LoadLoop() { + // Blocks + /* anonymous block */ { + // Range: 0x192C90 -> 0x193054 + signed int state; // r16 + signed int tmp; // r2 + signed int tmp; // r2 + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193060 -> 0x00193334 +*/ +// Range: 0x193060 -> 0x193334 +signed int zSaveLoad_LoadGame() { + // Blocks + /* anonymous block */ { + // Range: 0x193060 -> 0x193334 + signed int success; // r20 + signed int teststat; // r19 + signed int rc; // r2 + enum en_XSGASYNC_STATUS asstat; // r18 + signed int use_tgt; // r17 + enum en_XSG_WHYFAIL whyFail; // r29+0x7C + class XSGAutoData * asg; // r18 + signed int use_game; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193340 -> 0x00193788 +*/ +// Range: 0x193340 -> 0x193788 +signed int zSaveLoad_SaveGame() { + // Blocks + /* anonymous block */ { + // Range: 0x193340 -> 0x193788 + signed int success; // r22 + signed int teststat; // r20 + signed int rc; // r2 + enum en_XSGASYNC_STATUS asstat; // r19 + signed int use_tgt; // r18 + signed int use_game; // r17 + unsigned int progress; // r21 + char label[64]; // r29+0x80 + char * area; // r2 + enum en_XSG_WHYFAIL whyFail; // r29+0xCC + class XSGAutoData * asg; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193790 -> 0x00193AE4 +*/ +// Range: 0x193790 -> 0x193AE4 +signed int zSaveLoad_DoAutoSave() { + // Blocks + /* anonymous block */ { + // Range: 0x193790 -> 0x193AE4 + signed int success; // r23 + signed int teststat; // r20 + signed int rc; // r2 + enum en_XSGASYNC_STATUS asstat; // r19 + class st_XSAVEGAME_DATA * svinst; // r18 + class XSGAutoData * autodata; // r17 + signed int use_tgt; // r16 + unsigned int progress; // r22 + char label[64]; // r29+0x90 + char * area; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193AF0 -> 0x00193D30 +*/ +// Range: 0x193AF0 -> 0x193D30 +void zSaveLoadAutoSaveUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x193AF0 -> 0x193D30 + class xBase * sendTo; // r2 + class XSGAutoData * autodata; // r2 + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193D30 -> 0x00193D38 +*/ +// Range: 0x193D30 -> 0x193D38 +void zSaveLoadPreAutoSave(unsigned char onOff /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x193D30 -> 0x193D38 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193D40 -> 0x00193D48 +*/ +// Range: 0x193D40 -> 0x193D48 +unsigned char zSaveLoadGetPreAutoSave() { + // Blocks + /* anonymous block */ { + // Range: 0x193D40 -> 0x193D48 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00193D50 -> 0x00194640 +*/ +// Range: 0x193D50 -> 0x194640 +signed int zSaveLoad_GameSelect(signed int mode /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x193D50 -> 0x194640 + signed int done; // r20 + signed int i; // r19 + class st_XSAVEGAME_DATA * svinst; // r18 + signed int use_tgt; // r30 + signed int emptyCount; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00194640 -> 0x00194744 +*/ +// Range: 0x194640 -> 0x194744 +void zSaveLoad_BuildName(char * name_txt /* r21 */, signed int idx /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x194640 -> 0x194744 + char desired[128]; // r29+0xF0 + char current_name[128]; // r29+0x70 + signed int counter; // r19 + signed int i; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00194750 -> 0x00194968 +*/ +// Range: 0x194750 -> 0x194968 +static void BuildIt(char * build_txt /* r18 */, signed int i /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x194750 -> 0x194968 + char date1[32]; // r29+0x180 + char date2[32]; // r29+0x160 + char biggerbuf[256]; // r29+0x60 + char displaySizeUnit[32]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00194970 -> 0x00194F28 +*/ +// Range: 0x194970 -> 0x194F28 +signed int zSaveLoad_CardPick(signed int mode /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x194970 -> 0x194F28 + signed int done; // r17 + unsigned char formatDone; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00194F30 -> 0x00195190 +*/ +// Range: 0x194F30 -> 0x195190 +signed int zSaveLoad_CardCheckSlotOverwrite(signed int cardNumber /* r2 */, signed int gameNumber /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x194F30 -> 0x195190 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195190 -> 0x00195324 +*/ +// Range: 0x195190 -> 0x195324 +signed int zSaveLoad_CardCheckGames(signed int cardNumber /* r17 */, signed int mode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195190 -> 0x195324 + signed int result; // r2 + signed int tmp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195330 -> 0x001954C4 +*/ +// Range: 0x195330 -> 0x1954C4 +signed int zSaveLoad_CardCheckSpace(signed int cardNumber /* r17 */, signed int mode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195330 -> 0x1954C4 + signed int result; // r2 + signed int tmp; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001954D0 -> 0x00195504 +*/ +// Range: 0x1954D0 -> 0x195504 +signed int zSaveLoad_CardCheckValid(signed int cardNumber /* r2 */, signed int mode /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1954D0 -> 0x195504 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195510 -> 0x001956FC +*/ +// Range: 0x195510 -> 0x1956FC +signed int zSaveLoad_CardCheckFormatted(signed int cardNumber /* r17 */, signed int mode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195510 -> 0x1956FC + signed int result; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195700 -> 0x00195794 +*/ +// Range: 0x195700 -> 0x195794 +signed int zSaveLoad_CardCheck(signed int cardNumber /* r17 */, signed int mode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195700 -> 0x195794 + signed int result; // r2 + signed int cardResult; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001957A0 -> 0x00195898 +*/ +// Range: 0x1957A0 -> 0x195898 +signed int zSaveLoad_CardCheckSlotEmpty_hasGame(signed int num /* r19 */, signed int game /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1957A0 -> 0x195898 + class st_XSAVEGAME_DATA * ldinst; // r17 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x5C + signed int rc; // r16 + signed int tgtslot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001958A0 -> 0x001959D4 +*/ +// Range: 0x1958A0 -> 0x1959D4 +signed int zSaveLoad_CardCheckSlotEmpty_hasGame_doCheck(class st_XSAVEGAME_DATA * xsgdata /* r18 */, signed int num /* r17 */, signed int game /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1958A0 -> 0x1959D4 + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001959E0 -> 0x00195B3C +*/ +// Range: 0x1959E0 -> 0x195B3C +signed int zSaveLoad_CardCheckGamesSingle(signed int num /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1959E0 -> 0x195B3C + class st_XSAVEGAME_DATA * ldinst; // r17 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x4C + signed int rc; // r16 + signed int tgtslot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195B40 -> 0x00195C1C +*/ +// Range: 0x195B40 -> 0x195C1C +signed int zSaveLoad_CardCheckSpaceSingle(signed int num /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195B40 -> 0x195C1C + class st_XSAVEGAME_DATA * ldinst; // r17 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x4C + signed int rc; // r16 + signed int tgtslot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195C20 -> 0x00195CAC +*/ +// Range: 0x195C20 -> 0x195CAC +signed int zSaveLoad_CardCheckSpaceSingle_doCheck(class st_XSAVEGAME_DATA * xsgdata /* r17 */, signed int num /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195C20 -> 0x195CAC + signed int rc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195CB0 -> 0x00195DEC +*/ +// Range: 0x195CB0 -> 0x195DEC +signed int zSaveLoad_CardCheckFormattedSingle(signed int num /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195CB0 -> 0x195DEC + class st_XSAVEGAME_DATA * ldinst; // r17 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x4C + signed int rc; // r2 + signed int tgtslot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195DF0 -> 0x00195EB0 +*/ +// Range: 0x195DF0 -> 0x195EB0 +signed int zSaveLoad_CardCheckSingle(signed int num /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195DF0 -> 0x195EB0 + class st_XSAVEGAME_DATA * ldinst; // r17 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x4C + signed int tgtslot; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00195EB0 -> 0x00196054 +*/ +// Range: 0x195EB0 -> 0x196054 +signed int zSaveLoad_CardPrompt(signed int mode /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x195EB0 -> 0x196054 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196060 -> 0x001960FC +*/ +// Range: 0x196060 -> 0x1960FC +signed int CardtoTgt(signed int card /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196060 -> 0x1960FC + class st_XSAVEGAME_DATA * ldinst; // r16 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196100 -> 0x001965E0 +*/ +// Range: 0x196100 -> 0x1965E0 +signed int format(signed int num /* r19 */, signed int mode /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196100 -> 0x1965E0 + signed int tgtcnt; // r2 + signed int tgtmax; // r29+0x5C + signed int rc; // r17 + signed int tgtslot; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001965E0 -> 0x001965E8 +*/ +// Range: 0x1965E0 -> 0x1965E8 +signed int zSaveLoadGetAutoSaveCard() { + // Blocks + /* anonymous block */ { + // Range: 0x1965E0 -> 0x1965E8 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001965F0 -> 0x001965F8 +*/ +// Range: 0x1965F0 -> 0x1965F8 +signed int zSaveLoad_getMCAccessType() { + // Blocks + /* anonymous block */ { + // Range: 0x1965F0 -> 0x1965F8 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196600 -> 0x00196608 +*/ +// Range: 0x196600 -> 0x196608 +signed int zSaveLoad_getMCneeded() { + // Blocks + /* anonymous block */ { + // Range: 0x196600 -> 0x196608 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196610 -> 0x00196618 +*/ +// Range: 0x196610 -> 0x196618 +signed int zSaveLoad_getMCavailable() { + // Blocks + /* anonymous block */ { + // Range: 0x196610 -> 0x196618 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196620 -> 0x00196628 +*/ +// Range: 0x196620 -> 0x196628 +signed int zSaveLoad_getcard() { + // Blocks + /* anonymous block */ { + // Range: 0x196620 -> 0x196628 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196630 -> 0x00196638 +*/ +// Range: 0x196630 -> 0x196638 +signed int zSaveLoad_getgame() { + // Blocks + /* anonymous block */ { + // Range: 0x196630 -> 0x196638 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196640 -> 0x00196830 +*/ +// Range: 0x196640 -> 0x196830 +void zSaveLoad_Tick() { + // Blocks + /* anonymous block */ { + // Range: 0x196640 -> 0x196830 + class xMat4x3 playerMat; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zSaveLoad.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196830 -> 0x00196A54 +*/ +// Range: 0x196830 -> 0x196A54 +void zUpdateThumbIcon() { + // Blocks + /* anonymous block */ { + // Range: 0x196830 -> 0x196A54 + signed int i; // r20 + class _zUI * gameSlot; // r2 + signed int start; // r19 + signed int end; // r21 + unsigned int id; // r2 + class _zUI * thumbIcon; // r2 + signed int index; // r2 + } +} + diff --git a/dwarf/SB/Game/zScene.cpp b/dwarf/SB/Game/zScene.cpp new file mode 100644 index 000000000..6dbb5e405 --- /dev/null +++ b/dwarf/SB/Game/zScene.cpp @@ -0,0 +1,3968 @@ +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +unsigned char HACK_BASETYPE; // size: 0x1, address: 0x50F6E0 +static signed int roomCnt; // size: 0x4, address: 0x0 +static signed int bytesNeeded; // size: 0x4, address: 0x50F6E4 +static signed int availOnDisk; // size: 0x4, address: 0x50F6E8 +static signed int neededFiles; // size: 0x4, address: 0x50F6EC +static float offsetx; // size: 0x4, address: 0x50F6F0 +static float offsety; // size: 0x4, address: 0x50F6F4 +static unsigned int enableScreenAdj; // size: 0x4, address: 0x50F6F8 +static float oldOffsetx; // size: 0x4, address: 0x50F6FC +static float oldOffsety; // size: 0x4, address: 0x50F700 +static signed int sMemDepthSceneStart; // size: 0x4, address: 0x50E7C8 +static signed int sMemDepthJustHIPStart; // size: 0x4, address: 0x50E7CC +static class zSceneLevel sLevelTable[15]; // size: 0x78, address: 0x416080 +static class zSceneObjectInstanceDesc sInitTable[37]; // size: 0x40C, address: 0x416100 +static class dynamic_type_data dynamic_types[14]; // size: 0x118, address: 0x4F60B0 +class _tagClimate gClimate; // size: 0x24, address: 0x52ECF0 +class _zEnv * gCurEnv; // size: 0x4, address: 0x50F704 +unsigned int gTransitionSceneID; // size: 0x4, address: 0x50F708 +static signed int lasttally; // size: 0x4, address: 0x0 +float gSceneUpdateTime; // size: 0x4, address: 0x50F70C +static class xVec3 sOldPosPlayer; // size: 0xC, address: 0x52ED18 +static class xVec3 sOldPosCamera; // size: 0xC, address: 0x52ED28 +static unsigned int sSuddenMove; // size: 0x4, address: 0x50F710 +static class IDBasePair * scobj_idbps; // size: 0x4, address: 0x50F714 +static signed int scobj_size; // size: 0x4, address: 0x50E7D8 +static signed int nidbps; // size: 0x4, address: 0x50E7DC +class xVec3 scale; // size: 0xC, address: 0x416510 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +float sTimeElapsed; // size: 0x4, address: 0x50F504 +float ShadowStrength; // size: 0x4, address: 0x50E8B0 +unsigned int gShadowFlags; // size: 0x4, address: 0x50FB2C +class zUIMgr gUIMgr; // size: 0x20, address: 0x52FCB0 +unsigned int xUpdateCull_DistanceSquaredCB(void *, void *); // size: 0x0, address: 0x3298A0 +void DeactivateCB(class xBase *); // size: 0x0, address: 0x1990A0 +void ActivateCB(class xBase *); // size: 0x0, address: 0x1990B0 +class xQCControl xqc_def_ctrl; // size: 0x3C, address: 0x5A1710 +signed int zSceneSetup_serialTraverseCB(unsigned int, class xSerial *); // size: 0x0, address: 0x197F40 +signed int gOccludeCount; // size: 0x4, address: 0x50F788 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +unsigned char oob_player_teleported; // size: 0x1, address: 0x50FFE0 +unsigned int gLevelChanged; // size: 0x4, address: 0x50F518 +signed int xModelInstStaticAlloc; // size: 0x4, address: 0x50FA60 +void xModelBucket_InsertBucket(class RpAtomic *, unsigned int, unsigned int); // size: 0x0, address: 0x3116D0 +void xModelBucket_PreCountBucket(class RpAtomic *, unsigned int, unsigned int); // size: 0x0, address: 0x311E00 +void PipeAddStuffCB(class RpAtomic *, unsigned int, unsigned int); // size: 0x0, address: 0x19B9C0 +signed int xModelLookupCount; // size: 0x4, address: 0x50FA58 +class xModelPipeLookup * xModelLookupList; // size: 0x4, address: 0x50FA5C +void PipeCountStuffCB(class RpAtomic *, unsigned int, unsigned int); // size: 0x0, address: 0x19BA10 +signed int xModelPipeNumTables; // size: 0x4, address: 0x50FA54 +class xModelPipeInfo * xModelPipeData[]; // size: 0x0, address: 0x568C30 +signed int xModelPipeCount[]; // size: 0x0, address: 0x568BF0 +class xScene * g_xSceneCur; // size: 0x4, address: 0x50FAB4 +char * zSceneGetName(class xBase *); // size: 0x0, address: 0x196F70 +char * zSceneGetName(unsigned int); // size: 0x0, address: 0x196FB0 +class xBase * zSceneFindObject(unsigned int); // size: 0x0, address: 0x197110 +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zUIFontAsset : public zUIAsset { + // total size: 0xA4 +public: + unsigned short uiFontFlags; // offset 0x80, size 0x2 + unsigned char mode; // offset 0x82, size 0x1 + unsigned char fontID; // offset 0x83, size 0x1 + unsigned int textAssetID; // offset 0x84, size 0x4 + unsigned char bcolor[4]; // offset 0x88, size 0x4 + unsigned char color[4]; // offset 0x8C, size 0x4 + unsigned short inset[4]; // offset 0x90, size 0x8 + unsigned short space[2]; // offset 0x98, size 0x4 + unsigned short cdim[2]; // offset 0x9C, size 0x4 + unsigned int max_height; // offset 0xA0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zEntHangable : public zEnt { + // total size: 0x12C +public: + class xEntHangableAsset * hangInfo; // offset 0xD4, size 0x4 + class xVec3 pivot; // offset 0xD8, size 0xC + class xVec3 endpos; // offset 0xE4, size 0xC + class xVec3 vel; // offset 0xF0, size 0xC + class xVec3 swingplane; // offset 0xFC, size 0xC + float grabTimer; // offset 0x108, size 0x4 + float spin; // offset 0x10C, size 0x4 + unsigned int state; // offset 0x110, size 0x4 + class zEnt * shaggy; // offset 0x114, size 0x4 + signed int enabled; // offset 0x118, size 0x4 + class zEnt * follow; // offset 0x11C, size 0x4 + signed int moving; // offset 0x120, size 0x4 + float candle_timer; // offset 0x124, size 0x4 + signed int candle_state; // offset 0x128, size 0x4 +}; +class xModelPipeLookup { + // total size: 0x8 +public: + class RpAtomic * model; // offset 0x0, size 0x4 + unsigned int PipeFlags; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zSceneObjectInstanceDesc { + // total size: 0x1C +public: + char * name; // offset 0x0, size 0x4 + signed int baseType; // offset 0x4, size 0x4 + unsigned int assetType; // offset 0x8, size 0x4 + unsigned int sizeRuntime; // offset 0xC, size 0x4 + unsigned int (* func)(class zScene *, class zSceneObjectInstanceDesc *, unsigned int); // offset 0x10, size 0x4 + void (* objectInitFunc)(void *, void *); // offset 0x14, size 0x4 + unsigned int (* querySubObjects)(void *); // offset 0x18, size 0x4 +}; +class zAssetPickup { + // total size: 0x0 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class st_ZDISPATCH_DATA { + // total size: 0x0 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xPar { + // total size: 0x60 +public: + class xPar * m_next; // offset 0x0, size 0x4 + class xPar * m_prev; // offset 0x4, size 0x4 + float m_lifetime; // offset 0x8, size 0x4 + unsigned char m_c[4]; // offset 0xC, size 0x4 + class xVec3 m_pos; // offset 0x10, size 0xC + float m_size; // offset 0x1C, size 0x4 + class xVec3 m_vel; // offset 0x20, size 0xC + float m_sizeVel; // offset 0x2C, size 0x4 + unsigned char m_flag; // offset 0x30, size 0x1 + unsigned char m_mode; // offset 0x31, size 0x1 + unsigned char m_texIdx[2]; // offset 0x32, size 0x2 + unsigned char m_rotdeg[3]; // offset 0x34, size 0x3 + unsigned char pad8; // offset 0x37, size 0x1 + float totalLifespan; // offset 0x38, size 0x4 + class xParEmitterAsset * m_asset; // offset 0x3C, size 0x4 + float m_cvel[4]; // offset 0x40, size 0x10 + float m_cfl[4]; // offset 0x50, size 0x10 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class IDBasePair { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + class xBase * base; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class zUIMgr : public xMgr { + // total size: 0x20 +public: + signed int m_preUpdateStart; // offset 0x0, size 0x4 + signed int m_preUpdateEnd; // offset 0x4, size 0x4 + unsigned int m_preUpdateMax; // offset 0x8, size 0x4 + class _zUI * * m_preUpdate; // offset 0xC, size 0x4 + signed int m_updateStart; // offset 0x10, size 0x4 + signed int m_updateEnd; // offset 0x14, size 0x4 + unsigned int m_updateMax; // offset 0x18, size 0x4 + class _zUI * * m_update; // offset 0x1C, size 0x4 +}; +class xParSysAsset : public xBaseAsset { + // total size: 0x20 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned int parentParSysID; // offset 0xC, size 0x4 + unsigned int textureID; // offset 0x10, size 0x4 + unsigned char parFlags; // offset 0x14, size 0x1 + unsigned char priority; // offset 0x15, size 0x1 + unsigned short maxPar; // offset 0x16, size 0x2 + unsigned char renderFunc; // offset 0x18, size 0x1 + unsigned char renderSrcBlendMode; // offset 0x19, size 0x1 + unsigned char renderDstBlendMode; // offset 0x1A, size 0x1 + unsigned char cmdCount; // offset 0x1B, size 0x1 + unsigned int cmdSize; // offset 0x1C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class zCamMarker : public xBase { + // total size: 0x14 +public: + class xCamAsset * asset; // offset 0x10, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xParCmd { + // total size: 0x8 +public: + unsigned int flag; // offset 0x0, size 0x4 + class xParCmdAsset * tasset; // offset 0x4, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xEntHangableAsset { + // total size: 0x20 +public: + unsigned int flags; // offset 0x0, size 0x4 + float pivotOffset; // offset 0x4, size 0x4 + float leverArm; // offset 0x8, size 0x4 + float gravity; // offset 0xC, size 0x4 + float accel; // offset 0x10, size 0x4 + float decay; // offset 0x14, size 0x4 + float grabDelay; // offset 0x18, size 0x4 + float stopDecel; // offset 0x1C, size 0x4 +}; +class xParSys : public xBase { + // total size: 0x2C +public: + class xParSysAsset * tasset; // offset 0x10, size 0x4 + unsigned int cmdCount; // offset 0x14, size 0x4 + class xParCmd * cmd; // offset 0x18, size 0x4 + class xParSys * parent; // offset 0x1C, size 0x4 + class xParGroup * group; // offset 0x20, size 0x4 + unsigned char visible; // offset 0x24, size 0x1 + class RwTexture * txtr_particle; // offset 0x28, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xParGroup { + // total size: 0x24 +public: + class xPar * m_root; // offset 0x0, size 0x4 + class xPar * m_dead; // offset 0x4, size 0x4 + signed int m_num_of_particles; // offset 0x8, size 0x4 + unsigned char m_alive; // offset 0xC, size 0x1 + unsigned char m_killWhenDead; // offset 0xD, size 0x1 + unsigned char m_active; // offset 0xE, size 0x1 + unsigned char m_visible; // offset 0xF, size 0x1 + unsigned char m_culled; // offset 0x10, size 0x1 + unsigned char m_priority; // offset 0x11, size 0x1 + unsigned char m_flags; // offset 0x12, size 0x1 + unsigned char m_regidx; // offset 0x13, size 0x1 + class xParGroup * m_next; // offset 0x14, size 0x4 + class xParGroup * m_prev; // offset 0x18, size 0x4 + void (* draw)(void *, class xParGroup *); // offset 0x1C, size 0x4 + class xParCmdTex * m_cmdTex; // offset 0x20, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xParCmdTex : public xParCmdAsset { + // total size: 0x24 +public: + float x1; // offset 0x8, size 0x4 + float y1; // offset 0xC, size 0x4 + float x2; // offset 0x10, size 0x4 + float y2; // offset 0x14, size 0x4 + unsigned char birthMode; // offset 0x18, size 0x1 + unsigned char rows; // offset 0x19, size 0x1 + unsigned char cols; // offset 0x1A, size 0x1 + unsigned char unit_count; // offset 0x1B, size 0x1 + float unit_width; // offset 0x1C, size 0x4 + float unit_height; // offset 0x20, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xPlatformAsset { + // total size: 0x0 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xCamAsset { + // total size: 0x0 +}; +class xRay3 { + // total size: 0x24 +public: + class xVec3 origin; // offset 0x0, size 0xC + class xVec3 dir; // offset 0xC, size 0xC + float min_t; // offset 0x18, size 0x4 + float max_t; // offset 0x1C, size 0x4 + signed int flags; // offset 0x20, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xFFX { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + void (* doEffect)(class xEnt *, class xScene *, float, void *); // offset 0x4, size 0x4 + void * fdata; // offset 0x8, size 0x4 + class xFFX * next; // offset 0xC, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zSceneLevel { + // total size: 0x8 +public: + char * desc; // offset 0x0, size 0x4 + char * prefix; // offset 0x4, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class dynamic_type_data { + // total size: 0x14 +public: + char * name; // offset 0x0, size 0x4 + signed int type; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + unsigned char is_ent; // offset 0xC, size 0x1 + void (* load)(class xBase &, class xDynAsset &, unsigned int); // offset 0x10, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xModelPipeInfo { + // total size: 0xC +public: + unsigned int ModelHashID; // offset 0x0, size 0x4 + unsigned int SubObjectBits; // offset 0x4, size 0x4 + unsigned int PipeFlags; // offset 0x8, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class _tagRain { + // total size: 0x10 +public: + signed int rain; // offset 0x0, size 0x4 + float strength; // offset 0x4, size 0x4 + class zParEmitter * rain_emitter; // offset 0x8, size 0x4 + class zParEmitter * snow_emitter; // offset 0xC, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class zEntPickup : public zEnt { + // total size: 0x268 +public: + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + unsigned int state; // offset 0x16C, size 0x4 + class zAssetPickup * p; // offset 0x170, size 0x4 + void * anim; // offset 0x174, size 0x4 + float animTime; // offset 0x178, size 0x4 + float timer; // offset 0x17C, size 0x4 + float shake_timer; // offset 0x180, size 0x4 + class xVec3 shake_pos; // offset 0x184, size 0xC + signed int snackGateInfoDisplayed; // offset 0x190, size 0x4 + float fx_timer; // offset 0x194, size 0x4 + class xPar * fx_par; // offset 0x198, size 0x4 + class zParEmitter * fx_emit; // offset 0x19C, size 0x4 + float fx_scale; // offset 0x1A0, size 0x4 + class xVec3 grab_pos; // offset 0x1A4, size 0xC + unsigned int flyflags; // offset 0x1B0, size 0x4 + signed int flg_opts; // offset 0x1B4, size 0x4 + class xVec3 vel; // offset 0x1B8, size 0xC + class xVec3 droppos; // offset 0x1C4, size 0xC + class xBase * followTarget; // offset 0x1D0, size 0x4 + class xVec3 followOffset; // offset 0x1D4, size 0xC + class xBase * dropParent; // offset 0x1E0, size 0x4 + class xEnt * useThisEntPos; // offset 0x1E4, size 0x4 + class xEntDrive drv; // offset 0x1E8, size 0x7C + unsigned short pickupFlags; // offset 0x264, size 0x2 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +enum eGameMode { + eGameMode_Boot = 0, + eGameMode_Intro = 1, + eGameMode_Title = 2, + eGameMode_Start = 3, + eGameMode_Load = 4, + eGameMode_Options = 5, + eGameMode_Save = 6, + eGameMode_Pause = 7, + eGameMode_Stall = 8, + eGameMode_WorldMap = 9, + eGameMode_MonsterGallery = 10, + eGameMode_ConceptArtGallery = 11, + eGameMode_Game = 12, + eGameMode_Count = 13, +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xParCmdAsset { + // total size: 0x8 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned char enabled; // offset 0x4, size 0x1 + unsigned char mode; // offset 0x5, size 0x1 + unsigned char pad[2]; // offset 0x6, size 0x2 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xQCControl { + // total size: 0x3C +public: + float world_xmin; // offset 0x0, size 0x4 + float world_ymin; // offset 0x4, size 0x4 + float world_zmin; // offset 0x8, size 0x4 + float world_xmax; // offset 0xC, size 0x4 + float world_ymax; // offset 0x10, size 0x4 + float world_zmax; // offset 0x14, size 0x4 + float world_xsz; // offset 0x18, size 0x4 + float world_ysz; // offset 0x1C, size 0x4 + float world_zsz; // offset 0x20, size 0x4 + float scale_x; // offset 0x24, size 0x4 + float scale_y; // offset 0x28, size 0x4 + float scale_z; // offset 0x2C, size 0x4 + float center_x; // offset 0x30, size 0x4 + float center_y; // offset 0x34, size 0x4 + float center_z; // offset 0x38, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zParSys : public xParSys { + // total size: 0x2C +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class _tagWind { + // total size: 0x14 +public: + float strength; // offset 0x0, size 0x4 + float angle; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class zUIFont : public _zUI { + // total size: 0xFC +public: + class zUIFontAsset * fasset; // offset 0xE4, size 0x4 + unsigned short uiFontFlags; // offset 0xE8, size 0x2 + unsigned short uiFontHackFlags; // offset 0xEA, size 0x2 + unsigned int text_id; // offset 0xEC, size 0x4 + float yscroll; // offset 0xF0, size 0x4 + unsigned int text_index; // offset 0xF4, size 0x4 + char * text; // offset 0xF8, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zLODTable { + // total size: 0x20 +public: + class xModelBucket * * baseBucket; // offset 0x0, size 0x4 + float noRenderDist; // offset 0x4, size 0x4 + class xModelBucket * * lodBucket[3]; // offset 0x8, size 0xC + float lodDist[3]; // offset 0x14, size 0xC +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class _tagClimate { + // total size: 0x24 +public: + class _tagRain rain; // offset 0x0, size 0x10 + class _tagWind wind; // offset 0x10, size 0x14 +}; +class xMgr { + // total size: 0x1 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class FloatAndVoid { + // total size: 0x4 +public: + union { // inferred + float f; // offset 0x0, size 0x4 + void * v; // offset 0x0, size 0x4 + }; +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196A60 -> 0x00196C3C +*/ +// Range: 0x196A60 -> 0x196C3C +void zSceneSpawnRandomBubbles() { + // Blocks + /* anonymous block */ { + // Range: 0x196A60 -> 0x196C3C + class RwCamera * currentCamera; // r16 + class RwMatrixTag * mat; // r18 + float floatRand; // r20 + class xVec3 pos; // r29+0x50 + float r; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196C40 -> 0x00196C48 +*/ +// Range: 0x196C40 -> 0x196C48 +unsigned int zScene_ScreenAdjustMode() { + // Blocks + /* anonymous block */ { + // Range: 0x196C40 -> 0x196C48 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196C50 -> 0x00196C64 +*/ +// Range: 0x196C50 -> 0x196C64 +void zSceneSetOldScreenAdj() { + // Blocks + /* anonymous block */ { + // Range: 0x196C50 -> 0x196C64 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196C70 -> 0x00196C78 +*/ +// Range: 0x196C70 -> 0x196C78 +void zSceneEnableScreenAdj(unsigned int enable /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196C70 -> 0x196C78 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196C80 -> 0x00196D40 +*/ +// Range: 0x196C80 -> 0x196D40 +void zSceneEnableVisited(class zScene * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196C80 -> 0x196D40 + unsigned int uiNameID; // r2 + char uiName[64]; // r29+0x20 + char * sceneName; // r2 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196D40 -> 0x00196D50 +*/ +// Range: 0x196D40 -> 0x196D50 +void zSceneCardCheckStartup_set(signed int needed /* r2 */, signed int available /* r2 */, signed int files /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196D40 -> 0x196D50 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196D50 -> 0x00196D64 +*/ +// Range: 0x196D50 -> 0x196D64 +void zScene_UpdateFlyToInterface(float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196D50 -> 0x196D64 + class zScene * s; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196D70 -> 0x00196D7C +*/ +// Range: 0x196D70 -> 0x196D7C +unsigned int zSceneCalcProgress() { + // Blocks + /* anonymous block */ { + // Range: 0x196D70 -> 0x196D7C + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196D80 -> 0x00196D8C +*/ +// Range: 0x196D80 -> 0x196D8C +char * zSceneGetAreaname() { + // Blocks + /* anonymous block */ { + // Range: 0x196D80 -> 0x196D8C + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196D90 -> 0x00196DBC +*/ +// Range: 0x196D90 -> 0x196DBC +char * zSceneGetLevelPrefix(unsigned int index /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196D90 -> 0x196DBC + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196DC0 -> 0x00196E30 +*/ +// Range: 0x196DC0 -> 0x196E30 +unsigned int zSceneGetLevelIndex() { + // Blocks + /* anonymous block */ { + // Range: 0x196DC0 -> 0x196E30 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196E30 -> 0x00196EA0 +*/ +// Range: 0x196E30 -> 0x196EA0 +char * zSceneGetLevelName(unsigned int sceneID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196E30 -> 0x196EA0 + char c1; // r2 + char c2; // r2 + signed int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196EA0 -> 0x00196EA8 +*/ +// Range: 0x196EA0 -> 0x196EA8 +void zSceneMemLvlChkCB() { + // Blocks + /* anonymous block */ { + // Range: 0x196EA0 -> 0x196EA8 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196EB0 -> 0x00196F64 +*/ +// Range: 0x196EB0 -> 0x196F64 +void zSceneForAllBase(class xBase * (* func)(class xBase *, class zScene *, void *) /* r21 */, signed int baseType /* r20 */, void * data /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196EB0 -> 0x196F64 + class zScene * s; // r18 + unsigned short i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196F70 -> 0x00196FAC +*/ +// Range: 0x196F70 -> 0x196FAC +char * zSceneGetName(class xBase * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196F70 -> 0x196FAC + char * n; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00196FB0 -> 0x0019707C +*/ +// Range: 0x196FB0 -> 0x19707C +char * zSceneGetName(unsigned int gameID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x196FB0 -> 0x19707C + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197080 -> 0x00197110 +*/ +// Range: 0x197080 -> 0x197110 +class xBase * zSceneGetObject(signed int type /* r2 */, signed int idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x197080 -> 0x197110 + class zScene * s; // r2 + unsigned int i; // r9 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197110 -> 0x00197190 +*/ +// Range: 0x197110 -> 0x197190 +class xBase * zSceneFindObject(unsigned int gameID /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x197110 -> 0x197190 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197190 -> 0x00197208 +*/ +// Range: 0x197190 -> 0x197208 +static void zSceneObjHashtableAdd(unsigned int id /* r2 */, class xBase * base /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x197190 -> 0x197208 + signed int k; // r10 + signed int chkd; // r9 + class IDBasePair * idbp; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197210 -> 0x00197240 +*/ +// Range: 0x197210 -> 0x197240 +void zSceneRender() { + // Blocks + /* anonymous block */ { + // Range: 0x197210 -> 0x197240 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197240 -> 0x00197480 +*/ +// Range: 0x197240 -> 0x197480 +static void zSceneRenderPostFX() { + // Blocks + /* anonymous block */ { + // Range: 0x197240 -> 0x197480 + enum eGameMode mode; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197480 -> 0x00197838 +*/ +// Range: 0x197480 -> 0x197838 +static void zSceneRenderPreFX() { + // Blocks + /* anonymous block */ { + // Range: 0x197480 -> 0x197838 + class zScene * s; // r20 + class xScene * sc; // r2 + unsigned int shadowHackCase; // r19 + class xEnt * * entptr; // r18 + class xEnt * * entlast; // r17 + class xEnt * ent; // r16 + class xLightKit * objLightKit; // r16 + class zParSys * psys; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197840 -> 0x00197F34 +*/ +// Range: 0x197840 -> 0x197F34 +void zSceneUpdate(float elapsedSec /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x197840 -> 0x197F34 + unsigned int i; // r20 + signed int isPaused; // r19 + class zScene * s; // r18 + class xBase * * b; // r17 + class zUIFont * ui; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00197F40 -> 0x00198060 +*/ +// Range: 0x197F40 -> 0x198060 +signed int zSceneSetup_serialTraverseCB(unsigned int clientID /* r16 */, class xSerial * xser /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x197F40 -> 0x198060 + char uiName[16]; // r29+0x20 + signed int val; // r29+0x3C + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00198060 -> 0x00199094 +*/ +// Range: 0x198060 -> 0x199094 +void zSceneSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x198060 -> 0x199094 + class zScene * s; // r20 + unsigned int dontcaresize; // r29+0xEC + unsigned int i; // r17 + unsigned int i; // r17 + unsigned int i; // r19 + class xEnt * ent; // r18 + class zLODTable * lod; // r2 + class RpAtomic * tryshad; // r17 + signed int max_drivensort_iters; // r4 + unsigned int driven_swapped; // r3 + unsigned int i; // r2 + unsigned int j; // r11 + class xEnt * bdriven; // r10 + class xBase * btmp; // r7 + signed int i; // r19 + unsigned int f; // r8 + class xEnvAsset * easset; // r16 + class xLightKit * objLightKit; // r2 + class zScene * zsc; // r7 + class xEnt * tgtent; // r6 + signed int lkitCount; // r21 + class xLightKit * lkit; // r18 + class xGroup * group; // r22 + unsigned int j; // r17 + unsigned int nitam; // r16 + class xBase * itamz; // r2 + class xEnt * entitam; // r2 + class xEnt * * entList; // r29+0xC0 + unsigned int entCount; // r29+0xB0 + unsigned int i; // r3 + unsigned int j; // r19 + unsigned int k; // r18 + unsigned int numPrimeMovers; // r17 + unsigned int numDriven; // r16 + class xEnt * ent; // r3 + unsigned int numGroups; // r30 + class xGroup * grp; // r21 + unsigned int gcnt; // r22 + class xBase * gbase; // r2 + class xEnt * gent; // r2 + class xGroup * driveGroupList; // r18 + unsigned int allocsize; // r16 + class xGroupAsset * grpAssetList; // r7 + class xBase * * grpBaseList; // r11 + class xEnt * ent; // r10 + class xGroupAsset * gasset; // r9 + class xEnt * other; // r14 + class xGroup * * tempGrpList; // r16 + class xGroup * * tempGrpCurr; // r4 + class xGroup * grp; // r11 + class FloatAndVoid defaultDist; // r29+0xE8 + class FloatAndVoid lodDist; // r29+0xE4 + class zLODTable * lod; // r2 + class iColor_tag black; // r29+0xE0 + class iColor_tag clear; // r29+0xDC + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001990A0 -> 0x001990B0 +*/ +// Range: 0x1990A0 -> 0x1990B0 +static void DeactivateCB(class xBase * base /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1990A0 -> 0x1990B0 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001990B0 -> 0x001990C0 +*/ +// Range: 0x1990B0 -> 0x1990C0 +static void ActivateCB(class xBase * base /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1990B0 -> 0x1990C0 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001990C0 -> 0x00199498 +*/ +// Range: 0x1990C0 -> 0x199498 +void zSceneReset() { + // Blocks + /* anonymous block */ { + // Range: 0x1990C0 -> 0x199498 + class zScene * s; // r19 + unsigned int i; // r18 + class _zEnv * env; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001994A0 -> 0x00199C38 +*/ +// Range: 0x1994A0 -> 0x199C38 +void zSceneLoad(class zScene * ent /* r21 */, class xSerial * s /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1994A0 -> 0x199C38 + class xSerial xser; // r29+0x90 + signed int sceneExist; // r29+0xAC + signed int i; // r17 + char tempString[32]; // r29+0x70 + char c; // r19 + signed int i; // r18 + unsigned int id; // r2 + unsigned short i; // r17 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00199C50 -> 0x0019A398 +*/ +// Range: 0x199C50 -> 0x19A398 +void zSceneSave(class zScene * ent /* r21 */, class xSerial * s /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x199C50 -> 0x19A398 + unsigned int i; // r17 + class xSerial xser; // r29+0x90 + char tempString[32]; // r29+0x70 + char c; // r19 + unsigned int id; // r2 + unsigned int i; // r17 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019A3B0 -> 0x0019A888 +*/ +// Range: 0x19A3B0 -> 0x19A888 +void zSceneSwitch(class _zPortal * p /* r2 */, signed int forceSameScene /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19A3B0 -> 0x19A888 + class xPortalAsset * passet; // r16 + char * id; // r2 + unsigned int nextSceneID; // r4 + unsigned int PlayerMarkerStartID; // r2 + unsigned int PlayerMarkerStartCamID; // r9 + float PlayerStartAngle; // r20 + class xMarkerAsset * marker; // r2 + class xEnt & player; // r11 + class xVec3 & loc; // r2 + class xVec3 offset; // r29+0x98 + unsigned int size; // r29+0xAC + class xMarkerAsset * m; // r2 + class xEntFrame * frame; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019A890 -> 0x0019A8A4 +*/ +// Range: 0x19A890 -> 0x19A8A4 +void zSceneUpdateSFXWidgets() { + // Blocks + /* anonymous block */ { + // Range: 0x19A890 -> 0x19A8A4 + class zScene * s; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019A8B0 -> 0x0019ABE8 +*/ +// Range: 0x19A8B0 -> 0x19ABE8 +void zSceneExit(signed int beginReload /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19A8B0 -> 0x19ABE8 + class zScene * s; // r20 + class RpWorld * world; // r16 + char nextScene[8]; // r29+0x78 + char curScene[8]; // r29+0x70 + class zParSys * ps; // r17 + unsigned int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019ABF0 -> 0x0019B714 +*/ +// Range: 0x19ABF0 -> 0x19B714 +void zSceneInit(unsigned int theSceneID /* r16 */, signed int reloadInProgress /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19ABF0 -> 0x19B714 + float pdone; // r20 + class zScene * s; // r20 + unsigned int i; // r4 + unsigned char rgba_bkgrd[4]; // r29+0x9C + char b[5]; // r29+0x90 + signed int ver_hop; // r2 + signed long time; // r17 + signed int i; // r18 + void * data; // r2 + signed int total_npcs; // r2 + unsigned int typeCount; // r19 + unsigned int j; // r18 + unsigned int base_idx; // r2 + signed int lkitCount; // r17 + void * lkitData; // r2 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019B720 -> 0x0019B7F0 +*/ +// Range: 0x19B720 -> 0x19B7F0 +static unsigned int BaseTypeNeedsUpdate(unsigned char baseType /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19B720 -> 0x19B7F0 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019B7F0 -> 0x0019B9C0 +*/ +// Range: 0x19B7F0 -> 0x19B9C0 +static void PipeForAllSceneModels(void (* pipeCB)(class RpAtomic *, unsigned int, unsigned int) /* r30 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19B7F0 -> 0x19B9C0 + signed int i; // r29+0xB0 + signed int j; // r20 + signed int k; // r19 + signed int numModels; // r29+0xAC + class RpAtomic * model; // r23 + class st_PKR_ASSET_TOCINFO ainfo; // r29+0xC0 + unsigned int numSubObjects; // r16 + unsigned int remainSubObjBits; // r18 + unsigned int currSubObjBits; // r17 + class RpAtomic * tempmodel; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019B9C0 -> 0x0019BA08 +*/ +// Range: 0x19B9C0 -> 0x19BA08 +static void PipeAddStuffCB(class RpAtomic * data /* r2 */, unsigned int pipeFlags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19B9C0 -> 0x19BA08 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BA10 -> 0x0019BA30 +*/ +// Range: 0x19BA10 -> 0x19BA30 +static void PipeCountStuffCB(unsigned int pipeFlags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BA10 -> 0x19BA30 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BA30 -> 0x0019BB30 +*/ +// Range: 0x19BA30 -> 0x19BB30 +static unsigned int zSceneInitFunc_Dispatcher(class zScene * s /* r17 */, class zSceneObjectInstanceDesc * desc /* r16 */, unsigned int base_idx /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BA30 -> 0x19BB30 + signed int count; // r20 + class st_ZDISPATCH_DATA * dpat_pool; // r19 + signed int idx; // r18 + class xBase * b; // r17 + class xEntAsset * asset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BB30 -> 0x0019BB38 +*/ +// Range: 0x19BB30 -> 0x19BB38 +static unsigned int zSceneInitFunc_LobMaster(unsigned int base_idx /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BB30 -> 0x19BB38 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BB40 -> 0x0019BC1C +*/ +// Range: 0x19BB40 -> 0x19BC1C +static unsigned int zSceneInitFunc_Volume(class zScene * s /* r16 */, class zSceneObjectInstanceDesc * desc /* r17 */, unsigned int base_idx /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BB40 -> 0x19BC1C + signed int count; // r19 + signed int idx; // r18 + class xBase * b; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BC20 -> 0x0019BCE8 +*/ +// Range: 0x19BC20 -> 0x19BCE8 +static unsigned int zSceneInitFunc_Gust(class zScene * s /* r16 */, class zSceneObjectInstanceDesc * desc /* r17 */, unsigned int base_idx /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BC20 -> 0x19BCE8 + signed int count; // r18 + signed int idx; // r17 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BCF0 -> 0x0019BDB0 +*/ +// Range: 0x19BCF0 -> 0x19BDB0 +static unsigned int zSceneInitFunc_Surface(class zScene * s /* r16 */, class zSceneObjectInstanceDesc * desc /* r17 */, unsigned int base_idx /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BCF0 -> 0x19BDB0 + signed int count; // r18 + signed int idx; // r17 + class xBase * b; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BDB0 -> 0x0019BEA4 +*/ +// Range: 0x19BDB0 -> 0x19BEA4 +static unsigned int zSceneInitFunc_Camera(class zScene * s /* r17 */, class zSceneObjectInstanceDesc * desc /* r16 */, unsigned int base_idx /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BDB0 -> 0x19BEA4 + signed int count; // r19 + class zCamMarker * camBlock; // r2 + signed int idx; // r18 + class xBase * b; // r17 + class xCamAsset * assetCam; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BEB0 -> 0x0019BFDC +*/ +// Range: 0x19BEB0 -> 0x19BFDC +static unsigned int zSceneInitFunc_Player(class zScene * s /* r16 */, class zSceneObjectInstanceDesc * desc /* r17 */, unsigned int base_idx /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BEB0 -> 0x19BFDC + signed int count; // r20 + class zEnt * entBlock; // r2 + signed int idx; // r19 + class xBase * b; // r18 + class xEntAsset * asset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019BFE0 -> 0x0019C0DC +*/ +// Range: 0x19BFE0 -> 0x19C0DC +static unsigned int zSceneInitFunc_SBNPC(class zScene * s /* r21 */, class zSceneObjectInstanceDesc * desc /* r2 */, unsigned int base_idx /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19BFE0 -> 0x19C0DC + signed int count; // r19 + signed int i; // r18 + class xEnt * npc; // r17 + class xEntAsset * assdat; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C0E0 -> 0x0019C1E8 +*/ +// Range: 0x19C0E0 -> 0x19C1E8 +static unsigned int zSceneInitFunc_MovePoint(class zScene * s /* r17 */, class zSceneObjectInstanceDesc * desc /* r16 */, unsigned int base_idx /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C0E0 -> 0x19C1E8 + signed int count; // r20 + unsigned int assetSize; // r29+0x7C + class zMovePoint * movpBlock; // r2 + signed int idx; // r19 + class xBase * b; // r18 + class xBaseAsset * basset; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C1F0 -> 0x0019C310 +*/ +// Range: 0x19C1F0 -> 0x19C310 +static unsigned int zSceneInitFunc_Default(class zScene * s /* r19 */, class zSceneObjectInstanceDesc * desc /* r18 */, unsigned int base_idx /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C1F0 -> 0x19C310 + unsigned char * block; // r22 + signed int count; // r16 + unsigned int assetSize; // r29+0x9C + unsigned int offset; // r23 + class xBase * b; // r21 + signed int i; // r20 + void * asset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C310 -> 0x0019C44C +*/ +// Range: 0x19C310 -> 0x19C44C +static unsigned int zSceneInitFunc_DefaultEnt(class zScene * s /* r18 */, class zSceneObjectInstanceDesc * desc /* r22 */, unsigned int base_idx /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C310 -> 0x19C44C + unsigned char * block; // r23 + signed int count; // r16 + unsigned int assetSize; // r29+0xAC + unsigned int offset; // r30 + class xBase * b; // r21 + signed int i; // r20 + void * asset; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zScene.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C450 -> 0x0019C628 +*/ +// Range: 0x19C450 -> 0x19C628 +static unsigned int init_dynamic_type(class zScene & s /* r18 */, unsigned int index /* r17 */, class dynamic_type_data & d /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C450 -> 0x19C628 + unsigned int count; // r3 + unsigned int type; // r29+0xA8 + signed int dyn_size; // r30 + signed int i; // r22 + signed int cnt; // r23 + unsigned int asset_size; // r29+0xAC + class xDynAsset * a; // r21 + class xBase * b; // r20 + } +} + diff --git a/dwarf/SB/Game/zScript.cpp b/dwarf/SB/Game/zScript.cpp new file mode 100644 index 000000000..1aaa4f21d --- /dev/null +++ b/dwarf/SB/Game/zScript.cpp @@ -0,0 +1,2380 @@ +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zScriptEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x19C7F0 +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xScriptAsset : public xBaseAsset { + // total size: 0x10 +public: + float scriptStartTime; // offset 0x8, size 0x4 + unsigned int eventCount; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xScriptEventAsset { + // total size: 0x20 +public: + float time; // offset 0x0, size 0x4 + unsigned int widget; // offset 0x4, size 0x4 + unsigned int paramEvent; // offset 0x8, size 0x4 + float param[4]; // offset 0xC, size 0x10 + unsigned int paramWidget; // offset 0x1C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class _zScript : public xBase { + // total size: 0x1C +public: + class xScriptAsset * tasset; // offset 0x10, size 0x4 + unsigned char state; // offset 0x14, size 0x1 + unsigned char more; // offset 0x15, size 0x1 + unsigned char pad[2]; // offset 0x16, size 0x2 + float time; // offset 0x18, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C630 -> 0x0019C6DC +*/ +// Range: 0x19C630 -> 0x19C6DC +void zScriptUpdate(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C630 -> 0x19C6DC + class _zScript * t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C6E0 -> 0x0019C7EC +*/ +// Range: 0x19C6E0 -> 0x19C7EC +static void zScriptExecuteEvents(class _zScript * t /* r18 */, float start /* r21 */, float end /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C6E0 -> 0x19C7EC + class xScriptEventAsset * a; // r17 + unsigned int i; // r16 + class xBase * b; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C7F0 -> 0x0019C8E4 +*/ +// Range: 0x19C7F0 -> 0x19C8E4 +signed int zScriptEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C7F0 -> 0x19C8E4 + class _zScript * t; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C8F0 -> 0x0019C8F8 +*/ +// Range: 0x19C8F0 -> 0x19C8F8 +void zScriptLoad(class _zScript * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C8F0 -> 0x19C8F8 + } +} + +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C900 -> 0x0019C908 +*/ +// Range: 0x19C900 -> 0x19C908 +void zScriptSave(class _zScript * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C900 -> 0x19C908 + } +} + +/* + Compile unit: C:\SB\Game\zScript.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C910 -> 0x0019C9A0 +*/ +// Range: 0x19C910 -> 0x19C9A0 +void zScriptInit(void * b /* r16 */, void * tasset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C910 -> 0x19C9A0 + } +} + diff --git a/dwarf/SB/Game/zShrapnel.cpp b/dwarf/SB/Game/zShrapnel.cpp new file mode 100644 index 000000000..cb73dfea7 --- /dev/null +++ b/dwarf/SB/Game/zShrapnel.cpp @@ -0,0 +1,3162 @@ +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class xMat4x3 tmpMat; // size: 0x40, address: 0x5CFA30 +static signed int sNumActiveFrags; // size: 0x4, address: 0x51005C +static class zFrag sFragPool[150]; // size: 0x4D58, address: 0x5CFA70 +static class zFrag sFirstFreeFrag; // size: 0x84, address: 0x5D47D0 +static class zFrag sFirstActiveFrag; // size: 0x84, address: 0x5D4860 +static class zFrag sProjectileList; // size: 0x84, address: 0x5D48F0 +static class zFrag sLightningList; // size: 0x84, address: 0x5D4980 +static class zFrag sParticleList; // size: 0x84, address: 0x5D4A10 +static class zFrag sSoundList; // size: 0x84, address: 0x5D4AA0 +static class _tagLightningAdd sLightningAddInfo; // size: 0x40, address: 0x5D4B30 +static class zFragProjectileAsset sCinProj; // size: 0x90, address: 0x5D4B70 +static class RpAtomic * sCinModel; // size: 0x4, address: 0x510060 +static class zShrapnelInitTable sShrapnelTable[6]; // size: 0x48, address: 0x4E03C0 +static void (* sCinCB)(class zFrag *, class zFragAsset *); // size: 0x4, address: 0x510064 +static class zFrag * sCinFrag; // size: 0x4, address: 0x510068 +void BB03FloorChildCB(class zFrag *, class zFragAsset *); // size: 0x0, address: 0x312540 +void zFrag_DefaultProjectileUpdate(class zFrag *, float); // size: 0x0, address: 0x314120 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void zFrag_DefaultSoundUpdate(class zFrag *, float); // size: 0x0, address: 0x313390 +void zFrag_DefaultParticleUpdate(class zFrag *, float); // size: 0x0, address: 0x3148B0 +void zFrag_DefaultLightningUpdate(class zFrag *, float); // size: 0x0, address: 0x3136A0 +unsigned char xClumpColl_FilterFlags; // size: 0x1, address: 0x50F070 +class xMat4x3 g_I3; // size: 0x40, address: 0x5688C0 +void CinFragCB(class zFrag *, class zFragAsset *); // size: 0x0, address: 0x3159B0 +void zShrapnel_DefaultInit(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // size: 0x0, address: 0x315A10 +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zShrapnelParentList { + // total size: 0x8 +public: + unsigned int parentID; // offset 0x0, size 0x4 + class xModelInstance * parentModel; // offset 0x4, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xFFX { + // total size: 0x0 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xCurveAsset { + // total size: 0x14 +public: + enum xCurveType type; // offset 0x0, size 0x4 + enum xCurveClamp clamp; // offset 0x4, size 0x4 + float delta; // offset 0x8, size 0x4 + signed int numPoints; // offset 0xC, size 0x4 + float * points; // offset 0x10, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zShrapnelInitTable { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class ParabolaData { + // total size: 0x14 +public: + class zFragProjectile * proj; // offset 0x0, size 0x4 + class xVec3 N; // offset 0x4, size 0xC + float d; // offset 0x10, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class _tagLightningAdd { + // total size: 0x40 +public: + unsigned int type; // offset 0x0, size 0x4 + float setup_degrees; // offset 0x4, size 0x4 + float move_degrees; // offset 0x8, size 0x4 + float rot_radius; // offset 0xC, size 0x4 + class xVec3 * start; // offset 0x10, size 0x4 + class xVec3 * end; // offset 0x14, size 0x4 + signed short total_points; // offset 0x18, size 0x2 + signed short end_points; // offset 0x1A, size 0x2 + float time; // offset 0x1C, size 0x4 + float arc_height; // offset 0x20, size 0x4 + float thickness; // offset 0x24, size 0x4 + class iColor_tag color; // offset 0x28, size 0x4 + float rand_radius; // offset 0x2C, size 0x4 + unsigned int flags; // offset 0x30, size 0x4 + float zeus_normal_offset; // offset 0x34, size 0x4 + float zeus_back_offset; // offset 0x38, size 0x4 + float zeus_side_offset; // offset 0x3C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class xSurface { + // total size: 0x0 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zPlatform { + // total size: 0x0 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +enum xCurveType { + xCVT_BAKED = 0, +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +enum xCurveClamp { + xCC_CONSTANT = 0, + xCC_CYCLE = 1, + xCC_OSCILLATE = 2, +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00311FB0 -> 0x003122CC +*/ +// Range: 0x311FB0 -> 0x3122CC +static void zShrapnel_SpongebobInit(class zShrapnelAsset * shrap /* r23 */, class xModelInstance * parent /* r18 */, class xVec3 * initVel /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x311FB0 -> 0x3122CC + class zShrapnelParentList * plist; // r16 + class zFrag * frag; // r22 + class zFragAsset * fasset; // r21 + signed int i; // r20 + signed int j; // r8 + signed int k; // r7 + class xVec3 spawn; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003122D0 -> 0x00312528 +*/ +// Range: 0x3122D0 -> 0x312528 +static void zShrapnel_GlobalRobotInit(class zShrapnelAsset * shrap /* r18 */, class xModelInstance * parent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3122D0 -> 0x312528 + class zShrapnelParentList * plist; // r16 + class zFrag * frag; // r22 + class zFragAsset * fasset; // r21 + signed int i; // r20 + signed int j; // r8 + signed int k; // r7 + class xVec3 spawn; // r29+0x80 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00312530 -> 0x0031253C +*/ +// Range: 0x312530 -> 0x31253C +static void zShrapnel_BB03FloorChildInit(class zShrapnelAsset * shrap /* r2 */, class xModelInstance * parent /* r2 */, class xVec3 * initVel /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x312530 -> 0x31253C + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00312540 -> 0x003125E0 +*/ +// Range: 0x312540 -> 0x3125E0 +static void BB03FloorChildCB(class zFrag * frag /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x312540 -> 0x3125E0 + class zFragProjectile * proj; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003125E0 -> 0x00312AD8 +*/ +// Range: 0x3125E0 -> 0x312AD8 +static void zShrapnel_BB03FloorInit(class zShrapnelAsset * shrap /* r2 */, class xModelInstance * parent /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3125E0 -> 0x312AD8 + class zFrag * frag; // r2 + class zFragProjectileAsset * fasset[3]; // r29+0xD0 + class zFragSoundAsset * sndasset; // r18 + signed int i; // r19 + signed int j; // r18 + class xVec3 origin; // r29+0xC0 + class xVec3 b1; // r29+0xB0 + class xVec3 b2; // r29+0xA0 + signed int k; // r17 + class RpAtomic * m; // r2 + float x; // r29+0xE0 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00312AE0 -> 0x00313298 +*/ +// Range: 0x312AE0 -> 0x313298 +static void zShrapnel_DestructObjInit(class zShrapnelAsset * shrap /* r22 */, class xModelInstance * parent /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x312AE0 -> 0x313298 + class zFrag * frag; // r20 + class zFragProjectile * proj; // r19 + class zFragProjectileAsset * fasset; // r18 + signed int i; // r17 + signed int j; // r3 + class xMat4x3 orientation; // r29+0xC0 + float invScale; // r16 + float rad; // r27 + signed int numFrags; // r16 + class RpAtomic * m; // r2 + class xVec3 back; // r29+0x100 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003132A0 -> 0x00313390 +*/ +// Range: 0x3132A0 -> 0x313390 +void zFrag_ProjectileRenderer() { + // Blocks + /* anonymous block */ { + // Range: 0x3132A0 -> 0x313390 + class zFrag * frag; // r16 + class zFragProjectile * proj; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00313390 -> 0x00313498 +*/ +// Range: 0x313390 -> 0x313498 +void zFrag_DefaultSoundUpdate(class zFrag * frag /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x313390 -> 0x313498 + class zFragSound * sound; // r18 + class zFragSoundAsset * sasset; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003134A0 -> 0x00313698 +*/ +// Range: 0x3134A0 -> 0x313698 +void zFrag_LightningManager(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3134A0 -> 0x313698 + class zFrag * frag; // r20 + class zFragLightning * ligh; // r2 + class zFragLightningAsset * lasset; // r19 + class zLightning * inst; // r18 + class zFrag * next; // r17 + class xVec3 start; // r29+0xB0 + class xVec3 end; // r29+0xA0 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003136A0 -> 0x00313784 +*/ +// Range: 0x3136A0 -> 0x313784 +void zFrag_DefaultLightningUpdate(class zFrag * frag /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3136A0 -> 0x313784 + class zFragLightningAsset * lasset; // r17 + class xVec3 start; // r29+0x40 + class xVec3 end; // r29+0x30 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00313790 -> 0x00314118 +*/ +// Range: 0x313790 -> 0x314118 +void zFrag_ProjectileManager(float dt /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x313790 -> 0x314118 + class zFrag * frag; // r20 + class zFragProjectile * proj; // r19 + class zFrag * next; // r18 + signed int killed; // r17 + float percent; // r29+0x1B0 + float minScale; // r3 + float newScale; // r20 + class xVec3 back; // r29+0x1A0 + class xMat3x3 spin; // r29+0x150 + unsigned int numBubbles; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00314120 -> 0x003146B4 +*/ +// Range: 0x314120 -> 0x3146B4 +void zFrag_DefaultProjectileUpdate(class zFrag * frag /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x314120 -> 0x3146B4 + class zFragProjectileAsset * passet; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00314750 -> 0x003148AC +*/ +// Range: 0x314750 -> 0x3148AC +void zFrag_ParticleManager(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x314750 -> 0x3148AC + class zFrag * frag; // r18 + class zFrag * next; // r17 + class zFragParticleAsset * passet; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003148B0 -> 0x00314964 +*/ +// Range: 0x3148B0 -> 0x314964 +void zFrag_DefaultParticleUpdate(class zFrag * frag /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3148B0 -> 0x314964 + class zFragParticleAsset * passet; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00314970 -> 0x003150BC +*/ +// Range: 0x314970 -> 0x3150BC +void zFrag_DefaultInit(class zFrag * frag /* r16 */, class zFragAsset * fasset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x314970 -> 0x3150BC + class zFragProjectileAsset * passet; // r18 + class RpAtomic * m; // r2 + class zFragLightningAsset * lasset; // r17 + class zFragParticleAsset * prasset; // r17 + class zFragSoundAsset * sasset; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003150C0 -> 0x003152F0 +*/ +// Range: 0x3150C0 -> 0x3152F0 +void zFragLoc_InitDir(class zFragLocation * loc /* r18 */, class xVec3 * vec /* r17 */, class xModelInstance * parent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3150C0 -> 0x3152F0 + signed int index; // r3 + class xMat4x3 tmpMat; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003152F0 -> 0x00315528 +*/ +// Range: 0x3152F0 -> 0x315528 +void zFragLoc_InitVec(class zFragLocation * loc /* r18 */, class xVec3 * vec /* r17 */, class xModelInstance * parent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3152F0 -> 0x315528 + class xMat4x3 tmpMat; // r29+0x40 + signed int index; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315530 -> 0x00315758 +*/ +// Range: 0x315530 -> 0x315758 +void zFragLoc_InitMat(class zFragLocation * loc /* r18 */, class xMat4x3 * mat /* r17 */, class xModelInstance * parent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x315530 -> 0x315758 + signed int index; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315760 -> 0x003157AC +*/ +// Range: 0x315760 -> 0x3157AC +void zFragLoc_Setup(class zFragLocation * loc /* r7 */, class xModelInstance * parent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x315760 -> 0x3157AC + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003157B0 -> 0x003159A4 +*/ +// Range: 0x3157B0 -> 0x3159A4 +void zShrapnel_CinematicInit(class zShrapnelAsset * shrap /* r21 */, class RpAtomic * cinModel /* r17 */, class RwMatrixTag * animMat /* r16 */, class xVec3 * initVel /* r22 */, void (* cb)(class zFrag *, class zFragAsset *) /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3157B0 -> 0x3159A4 + signed int i; // r20 + class zFrag * frag; // r19 + class xModelInstance * model; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003159B0 -> 0x00315A0C +*/ +// Range: 0x3159B0 -> 0x315A0C +static void CinFragCB(class zFrag * frag /* r2 */, class zFragAsset * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3159B0 -> 0x315A0C + float time; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315A10 -> 0x00315C60 +*/ +// Range: 0x315A10 -> 0x315C60 +void zShrapnel_DefaultInit(class zShrapnelAsset * shrap /* r30 */, class xModelInstance * parent /* r22 */, class xVec3 * initVel /* r21 */, void (* cb)(class zFrag *, class zFragAsset *) /* r23 */) { + // Blocks + /* anonymous block */ { + // Range: 0x315A10 -> 0x315C60 + class zShrapnelParentList * plist; // r20 + class zFrag * frag; // r19 + class zFragAsset * fasset; // r18 + signed int i; // r17 + signed int j; // r8 + signed int k; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315C60 -> 0x00315C94 +*/ +// Range: 0x315C60 -> 0x315C94 +void zShrapnel_Render() { + // Blocks + /* anonymous block */ { + // Range: 0x315C60 -> 0x315C94 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315CA0 -> 0x00315D74 +*/ +// Range: 0x315CA0 -> 0x315D74 +void zShrapnel_Reset() { + // Blocks + /* anonymous block */ { + // Range: 0x315CA0 -> 0x315D74 + class zFrag * frag; // r17 + class zFrag * next; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315D80 -> 0x00315F38 +*/ +// Range: 0x315D80 -> 0x315F38 +void zShrapnel_Update(float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x315D80 -> 0x315F38 + class zFrag * curr; // r2 + class zFrag * next; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00315F40 -> 0x00316368 +*/ +// Range: 0x315F40 -> 0x316368 +void zShrapnel_SceneInit() { + // Blocks + /* anonymous block */ { + // Range: 0x315F40 -> 0x316368 + signed int i; // r6 + signed int numShrapnel; // r20 + signed int j; // r19 + class zShrapnelAsset * sa; // r18 + class zFragAsset * fa; // r17 + class zFragProjectileAsset * projAss; // r2 + class zFragParticleAsset * partAss; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316370 -> 0x00316534 +*/ +// Range: 0x316370 -> 0x316534 +void zShrapnel_GameInit() { + // Blocks + /* anonymous block */ { + // Range: 0x316370 -> 0x316534 + class zShrapnelInitTable * curr; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zShrapnel.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00316540 -> 0x003165E0 +*/ +// Range: 0x316540 -> 0x3165E0 +class zFrag * zFrag_Alloc(enum zFragType type /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x316540 -> 0x3165E0 + class zFrag * result; // r2 + } +} + diff --git a/dwarf/SB/Game/zSurface.cpp b/dwarf/SB/Game/zSurface.cpp new file mode 100644 index 000000000..be2279e8d --- /dev/null +++ b/dwarf/SB/Game/zSurface.cpp @@ -0,0 +1,1702 @@ +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zSurfaceProps * zsps; // size: 0x4, address: 0x50F718 +static signed int sMapperCount; // size: 0x4, address: 0x50F71C +static class zMaterialMapAsset * sMapper[1]; // size: 0x4, address: 0x50F720 +static class xSurface sDef_surf; // size: 0x28, address: 0x52ED40 +static class zSurfaceProps sDef_surf_props; // size: 0x10C, address: 0x52ED70 +static class zSurfAssetBase sDef_surf_asset; // size: 0x12C, address: 0x52EE80 +unsigned int gFrameCount; // size: 0x4, address: 0x50F94C +signed int zSurfaceEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x19CC10 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xFFX { + // total size: 0x0 +}; +class zMaterialMapAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned int count; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class zMaterialMapEntry { + // total size: 0x8 +public: + unsigned int surfaceAssetID; // offset 0x0, size 0x4 + unsigned int materialIndex; // offset 0x4, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xSerial { + // total size: 0x0 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C9A0 -> 0x0019C9AC +*/ +// Range: 0x19C9A0 -> 0x19C9AC +class xSurface & zSurfaceGetDefault() { + // Blocks + /* anonymous block */ { + // Range: 0x19C9A0 -> 0x19C9AC + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019C9B0 -> 0x0019CC0C +*/ +// Range: 0x19C9B0 -> 0x19CC0C +void zSurfaceGetName(signed int type /* r2 */, char * buffer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19C9B0 -> 0x19CC0C + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019CC10 -> 0x0019CF6C +*/ +// Range: 0x19CC10 -> 0x19CF6C +static signed int zSurfaceEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19CC10 -> 0x19CF6C + class xSurface * t; // r16 + class zSurfaceProps * p; // r3 + class zSurfaceProps * p; // r3 + class zSurfaceProps * p; // r4 + class zSurfaceProps * p; // r4 + class zSurfaceProps * p; // r5 + class zSurfaceProps * p; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019CF70 -> 0x0019D760 +*/ +// Range: 0x19CF70 -> 0x19D760 +void zSurfaceUpdate(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19CF70 -> 0x19D760 + signed int j; // r18 + class zSurfaceProps * moprops; // r19 + class zSurfacePropUVFX & sfx; // r17 + float uTime; // r3 + signed int uTimeInt; // r3 + float vTime; // r3 + signed int vTimeInt; // r3 + class xGroup * g; // r2 + signed int max; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D760 -> 0x0019D7C4 +*/ +// Range: 0x19D760 -> 0x19D7C4 +void zSurfaceSetup(class xSurface * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D760 -> 0x19D7C4 + class zSurfaceProps * pp; // r17 + signed int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D7D0 -> 0x0019D7D8 +*/ +// Range: 0x19D7D0 -> 0x19D7D8 +void zSurfaceLoad(class xSurface * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D7D0 -> 0x19D7D8 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D7E0 -> 0x0019D7E8 +*/ +// Range: 0x19D7E0 -> 0x19D7E8 +void zSurfaceSave(class xSurface * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D7E0 -> 0x19D7E8 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D7F0 -> 0x0019D7F8 +*/ +// Range: 0x19D7F0 -> 0x19D7F8 +float zSurfaceGetDamping(class xSurface * surf /* r2 */, float min_vel /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D7F0 -> 0x19D7F8 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D800 -> 0x0019D828 +*/ +// Range: 0x19D800 -> 0x19D828 +signed int zSurfaceGetSlickness(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D800 -> 0x19D828 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D830 -> 0x0019D858 +*/ +// Range: 0x19D830 -> 0x19D858 +float zSurfaceGetOutOfBoundsDelay(class xSurface & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D830 -> 0x19D858 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D860 -> 0x0019D868 +*/ +// Range: 0x19D860 -> 0x19D868 +float zSurfaceGetFriction(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D860 -> 0x19D868 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D870 -> 0x0019D8A4 +*/ +// Range: 0x19D870 -> 0x19D8A4 +unsigned int zSurfaceGetStandOn(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D870 -> 0x19D8A4 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D8B0 -> 0x0019D8D4 +*/ +// Range: 0x19D8B0 -> 0x19D8D4 +unsigned int zSurfaceGetSticky(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D8B0 -> 0x19D8D4 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D8E0 -> 0x0019D908 +*/ +// Range: 0x19D8E0 -> 0x19D908 +unsigned int zSurfaceGetDamagePassthrough(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D8E0 -> 0x19D908 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D910 -> 0x0019D934 +*/ +// Range: 0x19D910 -> 0x19D934 +signed int zSurfaceGetDamageType(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D910 -> 0x19D934 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D940 -> 0x0019D968 +*/ +// Range: 0x19D940 -> 0x19D968 +unsigned int zSurfaceGetMatchOrient(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D940 -> 0x19D968 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019D970 -> 0x0019D9F4 +*/ +// Range: 0x19D970 -> 0x19D9F4 +float zSurfaceGetSlideStopAngle(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19D970 -> 0x19D9F4 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DA00 -> 0x0019DA84 +*/ +// Range: 0x19DA00 -> 0x19DA84 +float zSurfaceGetSlideStartAngle(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DA00 -> 0x19DA84 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DA90 -> 0x0019DABC +*/ +// Range: 0x19DA90 -> 0x19DABC +unsigned char zSurfaceOutOfBounds(class xSurface & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DA90 -> 0x19DABC + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DAC0 -> 0x0019DAE8 +*/ +// Range: 0x19DAC0 -> 0x19DAE8 +unsigned int zSurfaceGetStep(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DAC0 -> 0x19DAE8 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DAF0 -> 0x0019DB18 +*/ +// Range: 0x19DAF0 -> 0x19DB18 +unsigned int zSurfaceGetSlide(class xSurface * surf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DAF0 -> 0x19DB18 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DB20 -> 0x0019DB7C +*/ +// Range: 0x19DB20 -> 0x19DB7C +class xSurface * zSurfaceGetSurface(class xCollis * coll /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DB20 -> 0x19DB7C + class xSurface * surf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DB80 -> 0x0019DCA4 +*/ +// Range: 0x19DB80 -> 0x19DCA4 +class xSurface * zSurfaceGetSurface(unsigned int mat_id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DB80 -> 0x19DCA4 + signed int map; // r21 + class zMaterialMapAsset * mapper; // r20 + unsigned short i; // r19 + class zMaterialMapEntry * entry; // r18 + unsigned short nsurfs; // r22 + unsigned short j; // r17 + class xSurface * surf; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DCB0 -> 0x0019DCD0 +*/ +// Range: 0x19DCB0 -> 0x19DCD0 +void zSurfaceExit() { + // Blocks + /* anonymous block */ { + // Range: 0x19DCB0 -> 0x19DCD0 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DCD0 -> 0x0019DD30 +*/ +// Range: 0x19DCD0 -> 0x19DD30 +void zSurfaceRegisterMapper(unsigned int assetId /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19DCD0 -> 0x19DD30 + } +} + +/* + Compile unit: C:\SB\Game\zSurface.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019DD30 -> 0x0019E04C +*/ +// Range: 0x19DD30 -> 0x19E04C +void zSurfaceInit() { + // Blocks + /* anonymous block */ { + // Range: 0x19DD30 -> 0x19E04C + unsigned int size; // r29+0x7C + unsigned short nsurfs; // r16 + unsigned short i; // r20 + class zSurfAssetBase * asset; // r19 + class xSurface * surf; // r18 + class zSurfaceProps * moprops; // r17 + signed int j; // r8 + } +} + diff --git a/dwarf/SB/Game/zTalkBox.cpp b/dwarf/SB/Game/zTalkBox.cpp new file mode 100644 index 000000000..e30593a53 --- /dev/null +++ b/dwarf/SB/Game/zTalkBox.cpp @@ -0,0 +1,4640 @@ +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +static class shared_type shared; // size: 0x869C, address: 0x5D5920 +unsigned int zero; // size: 0x4, address: 0x510098 +unsigned int zero; // size: 0x4, address: 0x0 +static class tag_type new_tags[9]; // size: 0xB4, address: 0x4E0460 +static unsigned int new_tags_size; // size: 0x4, address: 0x50F094 +static float music_fade; // size: 0x4, address: 0x50F098 +static float music_fade_delay; // size: 0x4, address: 0x50F09C +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +struct /* @anon2 */ { + // total size: 0x14 +} __vt__Q222@unnamed@zTalkBox_cpp@15stop_state_type; // size: 0x14, address: 0x50C320 +struct /* @anon3 */ { + // total size: 0x14 +} __vt__Q222@unnamed@zTalkBox_cpp@10state_type; // size: 0x14, address: 0x0 +struct /* @anon4 */ { + // total size: 0x14 +} __vt__Q222@unnamed@zTalkBox_cpp@15wait_state_type; // size: 0x14, address: 0x50C340 +struct /* @anon1 */ { + // total size: 0x14 +} __vt__Q222@unnamed@zTalkBox_cpp@15next_state_type; // size: 0x14, address: 0x50C360 +struct /* @anon0 */ { + // total size: 0x14 +} __vt__Q222@unnamed@zTalkBox_cpp@16start_state_type; // size: 0x14, address: 0x50C380 +signed int cb_dispatch(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x31EB20 +void parse_tag_wait(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // size: 0x0, address: 0x31F6A0 +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class ztalkbox : public xBase { + // total size: 0x3C +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char visible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class ztextbox * dialog_box; // offset 0x18, size 0x4 + class ztextbox * prompt_box; // offset 0x1C, size 0x4 + class ztextbox * quit_box; // offset 0x20, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 + } prompt; // offset 0x24, size 0x14 + class zNPCCommon * npc; // offset 0x38, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +enum query_enum { + Q_SKIP = 0, + Q_YESNO = 1, +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class wait_context { + // total size: 0x10 +public: + class /* @class */ { + // total size: 0x2 + public: + unsigned char time : 1; // offset 0x0, size 0x1 + unsigned char prompt : 1; // offset 0x0, size 0x1 + unsigned char sound : 1; // offset 0x0, size 0x1 + unsigned char event : 1; // offset 0x0, size 0x1 + unsigned short pad : 12; // offset 0x0, size 0x2 + } type; // offset 0x0, size 0x2 + unsigned char need; // offset 0x2, size 0x1 + float delay; // offset 0x4, size 0x4 + unsigned int event_mask; // offset 0x8, size 0x4 + enum query_enum query; // offset 0xC, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +enum trigger_pads_enum { + TP_NEVER = 0, + TP_TRAPPED = 1, + TP_ACTIVE = 2, +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xIniSection { + // total size: 0xC +public: + char * sec; // offset 0x0, size 0x4 + signed int first; // offset 0x4, size 0x4 + signed int count; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class asset_type : public xDynAsset { + // total size: 0x64 +public: + unsigned int text; // offset 0x10, size 0x4 + class basic_rect bounds; // offset 0x14, size 0x10 + unsigned int font; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } size; // offset 0x28, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + } space; // offset 0x30, size 0x8 + class color_type color; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 + } inset; // offset 0x3C, size 0x10 + enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, + } xjustify; // offset 0x4C, size 0x4 + enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, + } expand; // offset 0x50, size 0x4 + float max_height; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 + } backdrop; // offset 0x58, size 0xC +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class location_asset : public xDynAsset { + // total size: 0x1C +public: + class xVec3 loc; // offset 0x10, size 0xC +}; +class tag_entry { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + char op; // offset 0x8, size 0x1 + class substr * args; // offset 0xC, size 0x4 + unsigned int args_size; // offset 0x10, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class sound_context { + // total size: 0x18 +public: + unsigned int id; // offset 0x0, size 0x4 + enum /* @enum */ { + ACTION_SET = 0, + ACTION_PUSH = 1, + ACTION_POP = 2, + } action : 8; // offset 0x4, size 0x4 + enum /* @enum */ { + TYPE_INVALID = 0, + TYPE_VOLUME = 1, + TYPE_TARGET = 2, + TYPE_ORIGIN = 3, + } type : 8; // offset 0x4, size 0x4 + enum /* @enum */ { + SOURCE_MEMORY = 0, + SOURCE_STREAM = 1, + } source : 8; // offset 0x4, size 0x4 + unsigned char anim; // offset 0x7, size 0x1 + union { // inferred + class /* @class */ { + // total size: 0x8 + public: + float left; // offset 0x0, size 0x4 + float right; // offset 0x4, size 0x4 + } volume; // offset 0x8, size 0x8 + unsigned int target; // offset 0x8, size 0x4 + class xVec3 origin; // offset 0x8, size 0xC + }; + unsigned int speaker; // offset 0x14, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char time : 1; // offset 0x0, size 0x1 + unsigned char prompt : 1; // offset 0x0, size 0x1 + unsigned char sound : 1; // offset 0x0, size 0x1 + unsigned char event : 1; // offset 0x0, size 0x1 + unsigned short pad : 12; // offset 0x0, size 0x2 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class wait_state_type : public state_type { + // total size: 0xC +public: + unsigned char answer_yes; // offset 0x8, size 0x1 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x14 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum /* @enum */ { + ACTION_SET = 0, + ACTION_PUSH = 1, + ACTION_POP = 2, +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class ztextbox : public xBase { + // total size: 0xD0 +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class xtextbox tb; // offset 0x18, size 0x68 + char * segments[16]; // offset 0x80, size 0x40 + unsigned int segments_size; // offset 0xC0, size 0x4 + class ztextbox * next; // offset 0xC4, size 0x4 + class ztextbox * prev; // offset 0xC8, size 0x4 + class RwRaster * bgtex; // offset 0xCC, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class /* @class */ { + // total size: 0x14 +public: + unsigned int skip; // offset 0x0, size 0x4 + unsigned int noskip; // offset 0x4, size 0x4 + unsigned int quit; // offset 0x8, size 0x4 + unsigned int noquit; // offset 0xC, size 0x4 + unsigned int yesno; // offset 0x10, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class color_type { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class stop_state_type : public state_type { + // total size: 0x8 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class xTextAsset { + // total size: 0x4 +public: + unsigned int len; // offset 0x0, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class tag_entry_list { + // total size: 0x8 +public: + class tag_entry * entries; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xIniValue { + // total size: 0x8 +public: + char * tok; // offset 0x0, size 0x4 + char * val; // offset 0x4, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class st_PACKER_ASSETTYPE { + // total size: 0x28 +public: + unsigned int typetag; // offset 0x0, size 0x4 + unsigned int tflags; // offset 0x4, size 0x4 + signed int typalign; // offset 0x8, size 0x4 + void * (* readXForm)(void *, unsigned int, void *, unsigned int, unsigned int *); // offset 0xC, size 0x4 + void * (* writeXForm)(void *, unsigned int, void *, void *, unsigned int, unsigned int *); // offset 0x10, size 0x4 + signed int (* assetLoaded)(void *, unsigned int, void *, signed int); // offset 0x14, size 0x4 + void * (* makeData)(void *, unsigned int, void *, signed int *, signed int *); // offset 0x18, size 0x4 + void (* cleanup)(void *, unsigned int, void *); // offset 0x1C, size 0x4 + void (* assetUnloaded)(void *, unsigned int); // offset 0x20, size 0x4 + void (* writePeek)(void *, unsigned int, void *, char *); // offset 0x24, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class callback { + // total size: 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +enum /* @enum */ { + TYPE_INVALID = 0, + TYPE_VOLUME = 1, + TYPE_TARGET = 2, + TYPE_ORIGIN = 3, +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class state_type { + // total size: 0x8 +public: + enum state_enum type; // offset 0x0, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xFFX { + // total size: 0x0 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +enum /* @enum */ { + SOURCE_MEMORY = 0, + SOURCE_STREAM = 1, +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class sound_queue { + // total size: 0x1C +public: + unsigned int _playing[5]; // offset 0x0, size 0x14 + signed int head; // offset 0x14, size 0x4 + signed int tail; // offset 0x18, size 0x4 +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xCurveAsset { + // total size: 0x0 +}; +class signal_context { + // total size: 0x4 +public: + unsigned int flags; // offset 0x0, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class rxReq { + // total size: 0x0 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float left; // offset 0x0, size 0x4 + float right; // offset 0x4, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class pointer_asset : public xDynAsset { + // total size: 0x28 +public: + class xVec3 loc; // offset 0x10, size 0xC + float yaw; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + float roll; // offset 0x24, size 0x4 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class teleport_context { + // total size: 0x14 +public: + unsigned char use_loc; // offset 0x0, size 0x1 + unsigned char use_yaw; // offset 0x1, size 0x1 + class xVec3 loc; // offset 0x4, size 0xC + float yaw; // offset 0x10, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xParGroup { + // total size: 0x0 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class trigger_pair { + // total size: 0x8 +public: + class ztalkbox * origin; // offset 0x0, size 0x4 + unsigned int event; // offset 0x4, size 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class jot_line { + // total size: 0x20 +public: + class basic_rect bounds; // offset 0x0, size 0x10 + float baseline; // offset 0x10, size 0x4 + unsigned int first; // offset 0x14, size 0x4 + unsigned int last; // offset 0x18, size 0x4 + unsigned char page_break; // offset 0x1C, size 0x1 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class xIniFile { + // total size: 0x214 +public: + signed int NumValues; // offset 0x0, size 0x4 + signed int NumSections; // offset 0x4, size 0x4 + class xIniValue * Values; // offset 0x8, size 0x4 + class xIniSection * Sections; // offset 0xC, size 0x4 + void * mem; // offset 0x10, size 0x4 + char name[256]; // offset 0x14, size 0x100 + char pathname[256]; // offset 0x114, size 0x100 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class layout { + // total size: 0x84F8 +public: + class xtextbox tb; // offset 0x0, size 0x68 + class jot _jots[512]; // offset 0x68, size 0x7000 + unsigned int _jots_size; // offset 0x7068, size 0x4 + class jot_line _lines[128]; // offset 0x706C, size 0x1000 + unsigned int _lines_size; // offset 0x806C, size 0x4 + unsigned char context_buffer[1024]; // offset 0x8070, size 0x400 + unsigned int context_buffer_size; // offset 0x8470, size 0x4 + unsigned short dynamics[64]; // offset 0x8474, size 0x80 + unsigned int dynamics_size; // offset 0x84F4, size 0x4 +}; +enum state_enum { + STATE_INVALID = -1, + BEGIN_STATE = 0, + STATE_START = 1, + STATE_NEXT = 2, + STATE_WAIT = 3, + STATE_STOP = 4, + END_STATE = 5, + MAX_STATE = 5, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class shared_type { + // total size: 0x869C +public: + signed int flags; // offset 0x0, size 0x4 + unsigned int permit; // offset 0x4, size 0x4 + class ztalkbox * active; // offset 0x8, size 0x4 + class state_type * state; // offset 0xC, size 0x4 + class state_type * states[5]; // offset 0x10, size 0x14 + class layout lt; // offset 0x24, size 0x84F8 + signed int begin_jot; // offset 0x851C, size 0x4 + signed int end_jot; // offset 0x8520, size 0x4 + signed int page_end_jot; // offset 0x8524, size 0x4 + class wait_context wait; // offset 0x8528, size 0x10 + class wait_context auto_wait; // offset 0x8538, size 0x10 + unsigned int wait_event_mask; // offset 0x8548, size 0x4 + float prompt_delay; // offset 0x854C, size 0x4 + float quit_delay; // offset 0x8550, size 0x4 + unsigned char prompt_ready; // offset 0x8554, size 0x1 + unsigned char quit_ready; // offset 0x8555, size 0x1 + unsigned char stream_locked[2]; // offset 0x8556, size 0x2 + signed int next_stream; // offset 0x8558, size 0x4 + class sound_queue sounds; // offset 0x855C, size 0x1C + unsigned char allow_quit; // offset 0x8578, size 0x1 + unsigned char quitting; // offset 0x8579, size 0x1 + unsigned char delay_events; // offset 0x857A, size 0x1 + class callback * cb; // offset 0x857C, size 0x4 + class fixed_queue triggered; // offset 0x8580, size 0x110 + float volume; // offset 0x8690, size 0x4 + class zNPCCommon * speak_npc; // offset 0x8694, size 0x4 + unsigned int speak_player; // offset 0x8698, size 0x4 +}; +class fixed_queue { + // total size: 0x110 +public: + unsigned int _first; // offset 0x0, size 0x4 + unsigned int _last; // offset 0x4, size 0x4 + class trigger_pair _buffer[33]; // offset 0x8, size 0x108 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class st_PKR_ASSET_TOCINFO { + // total size: 0x18 +public: + unsigned int aid; // offset 0x0, size 0x4 + class st_PACKER_ASSETTYPE * typeref; // offset 0x4, size 0x4 + unsigned int sector; // offset 0x8, size 0x4 + unsigned int plus_offset; // offset 0xC, size 0x4 + unsigned int size; // offset 0x10, size 0x4 + void * mempos; // offset 0x14, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char visible : 1; // offset 0x0, size 0x1 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +struct /* @anon1 */ { + // total size: 0x14 +}; +class xParSys { + // total size: 0x0 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +struct /* @anon2 */ { + // total size: 0x14 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +struct /* @anon3 */ { + // total size: 0x14 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +struct /* @anon4 */ { + // total size: 0x14 +}; +class asset_type : public xDynAsset { + // total size: 0x48 +public: + unsigned int dialog_box; // offset 0x10, size 0x4 + unsigned int prompt_box; // offset 0x14, size 0x4 + unsigned int quit_box; // offset 0x18, size 0x4 + unsigned char trap : 8; // offset 0x1C, size 0x1 + unsigned char pause : 8; // offset 0x1D, size 0x1 + unsigned char allow_quit : 8; // offset 0x1E, size 0x1 + unsigned char trigger_pads : 8; // offset 0x1F, size 0x1 + unsigned char page : 8; // offset 0x20, size 0x1 + unsigned char show : 8; // offset 0x21, size 0x1 + unsigned char hide : 8; // offset 0x22, size 0x1 + unsigned char audio_effect : 8; // offset 0x23, size 0x1 + unsigned int teleport; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0xC + public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char time : 8; // offset 0x0, size 0x1 + unsigned char prompt : 8; // offset 0x1, size 0x1 + unsigned char sound : 8; // offset 0x2, size 0x1 + unsigned char event : 8; // offset 0x3, size 0x1 + } type; // offset 0x0, size 0x4 + float delay; // offset 0x4, size 0x4 + signed int which_event; // offset 0x8, size 0x4 + } auto_wait; // offset 0x28, size 0xC + class /* @class */ { + // total size: 0x14 + public: + unsigned int skip; // offset 0x0, size 0x4 + unsigned int noskip; // offset 0x4, size 0x4 + unsigned int quit; // offset 0x8, size 0x4 + unsigned int noquit; // offset 0xC, size 0x4 + unsigned int yesno; // offset 0x10, size 0x4 + } prompt; // offset 0x34, size 0x14 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 +}; +class /* @class */ { + // total size: 0xC +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char time : 8; // offset 0x0, size 0x1 + unsigned char prompt : 8; // offset 0x1, size 0x1 + unsigned char sound : 8; // offset 0x2, size 0x1 + unsigned char event : 8; // offset 0x3, size 0x1 + } type; // offset 0x0, size 0x4 + float delay; // offset 0x4, size 0x4 + signed int which_event; // offset 0x8, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class start_state_type : public state_type { + // total size: 0x8 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char time : 8; // offset 0x0, size 0x1 + unsigned char prompt : 8; // offset 0x1, size 0x1 + unsigned char sound : 8; // offset 0x2, size 0x1 + unsigned char event : 8; // offset 0x3, size 0x1 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0x14 +public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class next_state_type : public state_type { + // total size: 0xC +public: + signed int prev_wait_jot; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D6F0 -> 0x0031D720 +*/ +// Range: 0x31D6F0 -> 0x31D720 +void permit(unsigned int add_flags /* r2 */, unsigned int remove_flags /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D6F0 -> 0x31D720 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D720 -> 0x0031D72C +*/ +// Range: 0x31D720 -> 0x31D72C +class ztalkbox * get_active() { + // Blocks + /* anonymous block */ { + // Range: 0x31D720 -> 0x31D72C + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D730 -> 0x0031D7B0 +*/ +// Range: 0x31D730 -> 0x31D7B0 +void reset_all() { + // Blocks + /* anonymous block */ { + // Range: 0x31D730 -> 0x31D7B0 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D7B0 -> 0x0031D860 +*/ +// Range: 0x31D7B0 -> 0x31D860 +void render_all() { + // Blocks + /* anonymous block */ { + // Range: 0x31D7B0 -> 0x31D860 + class ztextbox & d; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031D860 -> 0x0031DC08 +*/ +// Range: 0x31D860 -> 0x31DC08 +void update_all(class xScene & s /* r21 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31D860 -> 0x31DC08 + enum state_enum newtype; // r16 + enum trigger_pads_enum tp; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031DCA0 -> 0x0031DCA8 +*/ +// Range: 0x31DCA0 -> 0x31DCA8 +void load(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31DCA0 -> 0x31DCA8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031DCB0 -> 0x0031DE30 +*/ +// Range: 0x31DCB0 -> 0x31DE30 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x31DCB0 -> 0x31DE30 + class stop_state_type stop_state; // @ 0x005100C0 + signed char @6594; // @ 0x005100B8 + class wait_state_type wait_state; // @ 0x005DE050 + signed char @6591; // @ 0x005100B4 + class next_state_type next_state; // @ 0x005DE040 + signed char @6588; // @ 0x005100B0 + class start_state_type start_state; // @ 0x005100A8 + signed char @6585; // @ 0x005100A0 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031DE30 -> 0x0031DE60 +*/ +// Range: 0x31DE30 -> 0x31DE60 +void load_settings(class xIniFile & ini /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31DE30 -> 0x31DE60 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031DE60 -> 0x0031DF50 +*/ +// Range: 0x31DE60 -> 0x31DF50 +void MasterLoveSlave(class ztalkbox * this /* r17 */, class xBase * slave /* r2 */, signed int starting /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31DE60 -> 0x31DF50 + class xGroup * grp; // r20 + signed int cnt; // r19 + signed int i; // r18 + class xBase * grpitem; // r2 + class zNPCCommon * npc; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031DF50 -> 0x0031E010 +*/ +// Range: 0x31DF50 -> 0x31E010 +void MasterTellSlaves(class ztalkbox * this /* r19 */, signed int isBeginning /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31DF50 -> 0x31E010 + signed int i; // r17 + class xLinkAsset * link; // r20 + class xBase * mychild; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031E010 -> 0x0031E0C4 +*/ +// Range: 0x31E010 -> 0x31E0C4 +void stop_talk(class ztalkbox * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31E010 -> 0x31E0C4 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031E0D0 -> 0x0031E148 +*/ +// Range: 0x31E0D0 -> 0x31E148 +void start_talk(class ztalkbox * this /* r18 */, unsigned int text_id /* r2 */, class callback * cb /* r17 */, class zNPCCommon * npc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31E0D0 -> 0x31E148 + class xTextAsset * ta; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031E150 -> 0x0031E654 +*/ +// Range: 0x31E150 -> 0x31E654 +void start_talk(class ztalkbox * this /* r18 */, char * s /* r17 */, class callback * cb /* r16 */, class zNPCCommon * npc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31E150 -> 0x31E654 + class ztextbox & d; // r18 + unsigned char registered; // @ 0x0051009C + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031E660 -> 0x0031E6B8 +*/ +// Range: 0x31E660 -> 0x31E6B8 +void set_text(class ztalkbox * this /* r16 */, unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31E660 -> 0x31E6B8 + class xTextAsset * ta; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031E6C0 -> 0x0031E88C +*/ +// Range: 0x31E6C0 -> 0x31E88C +void set_text(class ztalkbox * this /* r17 */, char * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31E6C0 -> 0x31E88C + class ztextbox & d; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031E890 -> 0x0031EB14 +*/ +// Range: 0x31E890 -> 0x31EB14 +void load(class ztalkbox * this /* r17 */, class asset_type & a /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31E890 -> 0x31EB14 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031EB20 -> 0x0031F268 +*/ +// Range: 0x31EB20 -> 0x31F268 +static signed int cb_dispatch(class xBase * to /* r2 */, unsigned int event /* r2 */, float * argf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31EB20 -> 0x31F268 + class ztalkbox & e; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F270 -> 0x0031F330 +*/ +// Range: 0x31F270 -> 0x31F330 +static void stop_wait(class ztalkbox & e /* r2 */, float * args /* r2 */, unsigned int args_size /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F270 -> 0x31F330 + unsigned int mask; // r11 + unsigned int i; // r10 + unsigned int v; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F330 -> 0x0031F380 +*/ +// Range: 0x31F330 -> 0x31F380 +static void hide_prompts() { + // Blocks + /* anonymous block */ { + // Range: 0x31F330 -> 0x31F380 + class ztalkbox & active; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F380 -> 0x0031F518 +*/ +// Range: 0x31F380 -> 0x31F518 +static void refresh_prompts() { + // Blocks + /* anonymous block */ { + // Range: 0x31F380 -> 0x31F518 + class ztalkbox & active; // r16 + char * message; // r2 + char * queries[2]; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F520 -> 0x0031F55C +*/ +// Range: 0x31F520 -> 0x31F55C +static void unlock_stream() { + // Blocks + /* anonymous block */ { + // Range: 0x31F520 -> 0x31F55C + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F560 -> 0x0031F610 +*/ +// Range: 0x31F560 -> 0x31F610 +static void deactivate() { + // Blocks + /* anonymous block */ { + // Range: 0x31F560 -> 0x31F610 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F610 -> 0x0031F698 +*/ +// Range: 0x31F610 -> 0x31F698 +static unsigned char trigger_wait(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F610 -> 0x31F698 + class wait_context & c; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F6A0 -> 0x0031F780 +*/ +// Range: 0x31F6A0 -> 0x31F780 +static void parse_tag_wait(class jot & j /* r2 */, class xtextbox & ctb /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F6A0 -> 0x31F780 + class wait_context & c; // r16 + class tag_entry_list el; // r29+0x28 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F780 -> 0x0031F7C0 +*/ +// Range: 0x31F780 -> 0x31F7C0 +static unsigned char trigger_trap(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F780 -> 0x31F7C0 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F7C0 -> 0x0031F7F8 +*/ +// Range: 0x31F7C0 -> 0x31F7F8 +static void reset_tag_trap(class jot & j /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F7C0 -> 0x31F7F8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F800 -> 0x0031F858 +*/ +// Range: 0x31F800 -> 0x31F858 +static void parse_tag_trap(class jot & j /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F800 -> 0x31F858 + unsigned char & c; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F860 -> 0x0031F92C +*/ +// Range: 0x31F860 -> 0x31F92C +static unsigned char trigger_teleport(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F860 -> 0x31F92C + class teleport_context & c; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031F930 -> 0x0031FA84 +*/ +// Range: 0x31F930 -> 0x31FA84 +static void parse_tag_teleport(class jot & j /* r18 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31F930 -> 0x31FA84 + class teleport_context & c; // r17 + unsigned int id; // r2 + class xDynAsset * a; // r16 + class location_asset & ta; // r2 + class pointer_asset & ta; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FA90 -> 0x0031FAA8 +*/ +// Range: 0x31FA90 -> 0x31FAA8 +static unsigned char trigger_allow_quit(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31FA90 -> 0x31FAA8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FAB0 -> 0x0031FAE8 +*/ +// Range: 0x31FAB0 -> 0x31FAE8 +static void reset_tag_allow_quit(class jot & j /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31FAB0 -> 0x31FAE8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FAF0 -> 0x0031FB48 +*/ +// Range: 0x31FAF0 -> 0x31FB48 +static void parse_tag_allow_quit(class jot & j /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31FAF0 -> 0x31FB48 + unsigned char & c; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FB50 -> 0x0031FB58 +*/ +// Range: 0x31FB50 -> 0x31FB58 +static unsigned char trigger_pause() { + // Blocks + /* anonymous block */ { + // Range: 0x31FB50 -> 0x31FB58 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FB60 -> 0x0031FB68 +*/ +// Range: 0x31FB60 -> 0x31FB68 +static void reset_tag_pause() { + // Blocks + /* anonymous block */ { + // Range: 0x31FB60 -> 0x31FB68 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FB70 -> 0x0031FB78 +*/ +// Range: 0x31FB70 -> 0x31FB78 +static void parse_tag_pause() { + // Blocks + /* anonymous block */ { + // Range: 0x31FB70 -> 0x31FB78 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0031FB80 -> 0x003200A8 +*/ +// Range: 0x31FB80 -> 0x3200A8 +static unsigned char trigger_sound(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x31FB80 -> 0x3200A8 + class sound_context & c; // r16 + class ztalkbox & talk; // r5 + class zNPCCommon * npc; // r20 + class xEnt * player; // r19 + class xBase * obj; // r29+0x6C + unsigned int i; // r18 + unsigned int size; // r17 + class xBase * entry; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003200B0 -> 0x003200F0 +*/ +// Range: 0x3200B0 -> 0x3200F0 +static void reset_tag_sound(class jot & j /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3200B0 -> 0x3200F0 + class sound_context & c; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003200F0 -> 0x003205E8 +*/ +// Range: 0x3200F0 -> 0x3205E8 +static void parse_tag_sound(class jot & j /* r18 */, class xtextbox & ctb /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3200F0 -> 0x3205E8 + class sound_context & c; // r17 + class tag_entry * e; // r2 + class tag_entry_list el; // r29+0xE0 + class substr & action; // r16 + class substr & action; // r16 + signed int anim; // r29+0xEC + class st_PKR_ASSET_TOCINFO ainfo; // r29+0x40 + unsigned int source; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003205F0 -> 0x00320780 +*/ +// Range: 0x3205F0 -> 0x320780 +static unsigned char trigger_signal(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3205F0 -> 0x320780 + class signal_context & c; // r20 + unsigned int i; // r19 + unsigned int signals[20]; // @ 0x005009B0 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00320780 -> 0x00320918 +*/ +// Range: 0x320780 -> 0x320918 +static void parse_tag_signal(class jot & j /* r2 */, class xtextbox & ctb /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x320780 -> 0x320918 + class signal_context & c; // r16 + class tag_entry * e; // r2 + class tag_entry_list el; // r29+0x88 + signed int v[20]; // r29+0x20 + unsigned int r; // r2 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00320920 -> 0x0032096C +*/ +// Range: 0x320920 -> 0x32096C +static unsigned char trigger_auto_wait(class jot & j /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x320920 -> 0x32096C + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00320970 -> 0x00320A00 +*/ +// Range: 0x320970 -> 0x320A00 +static void reset_tag_auto_wait(class jot & j /* r2 */, class xtextbox & ctb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x320970 -> 0x320A00 + class wait_context & c; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00320A00 -> 0x00320B18 +*/ +// Range: 0x320A00 -> 0x320B18 +static void parse_tag_auto_wait(class jot & j /* r2 */, class xtextbox & ctb /* r2 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x320A00 -> 0x320B18 + class wait_context & c; // r16 + class tag_entry_list el; // r29+0x28 + class tag_entry & e; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00320B20 -> 0x00320EF8 +*/ +// Range: 0x320B20 -> 0x320EF8 +static void load_wait_context(class wait_context & c /* r18 */, class tag_entry_list & el /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x320B20 -> 0x320EF8 + class tag_entry * e; // r2 + class tag_entry * prompt; // r2 + unsigned int r; // r2 + unsigned int i; // r7 + signed int v[32]; // @ 0x005DDFC0 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00320F00 -> 0x00320FFC +*/ +// Range: 0x320F00 -> 0x320FFC +static void reset_auto_wait() { + // Blocks + /* anonymous block */ { + // Range: 0x320F00 -> 0x320FFC + class asset_type & a; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321000 -> 0x003210C0 +*/ +// Range: 0x321000 -> 0x3210C0 +static unsigned char read_bool(class substr & s /* r18 */, unsigned char def /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x321000 -> 0x3210C0 + unsigned int i; // r17 + unsigned int i; // r17 + class substr positive[6]; // @ 0x00500950 + class substr negative[6]; // @ 0x00500980 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003210C0 -> 0x00321C60 +*/ +// Range: 0x3210C0 -> 0x321C60 +static void trigger_pads(unsigned int pressed /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3210C0 -> 0x321C60 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321C60 -> 0x00321D34 +*/ +// Range: 0x321C60 -> 0x321D34 +static void trigger(unsigned int event /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x321C60 -> 0x321D34 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321D40 -> 0x00321D9C +*/ +// Range: 0x321D40 -> 0x321D9C +static void speak_stop() { + // Blocks + /* anonymous block */ { + // Range: 0x321D40 -> 0x321D9C + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321DA0 -> 0x00321DA8 +*/ +// Range: 0x321DA0 -> 0x321DA8 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x321DA0 -> 0x321DA8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321DB0 -> 0x00321DB8 +*/ +// Range: 0x321DB0 -> 0x321DB8 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x321DB0 -> 0x321DB8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321DC0 -> 0x00321DC8 +*/ +// Range: 0x321DC0 -> 0x321DC8 +static enum state_enum update() { + // Blocks + /* anonymous block */ { + // Range: 0x321DC0 -> 0x321DC8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321DD0 -> 0x00321DD8 +*/ +// Range: 0x321DD0 -> 0x321DD8 +static void start(class wait_state_type * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x321DD0 -> 0x321DD8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321DE0 -> 0x00321F98 +*/ +// Range: 0x321DE0 -> 0x321F98 +static void stop(class wait_state_type * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x321DE0 -> 0x321F98 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00321FA0 -> 0x00322388 +*/ +// Range: 0x321FA0 -> 0x322388 +static enum state_enum update(class wait_state_type * this /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x321FA0 -> 0x322388 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322390 -> 0x003225C8 +*/ +// Range: 0x322390 -> 0x3225C8 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x322390 -> 0x3225C8 + class xtextbox & tb; // r2 + signed int size; // r29+0x2C + signed int jots_size; // r16 + class jot * prev; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003225D0 -> 0x003225D8 +*/ +// Range: 0x3225D0 -> 0x3225D8 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x3225D0 -> 0x3225D8 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003225E0 -> 0x00322604 +*/ +// Range: 0x3225E0 -> 0x322604 +static enum state_enum update() { + // Blocks + /* anonymous block */ { + // Range: 0x3225E0 -> 0x322604 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322610 -> 0x00322680 +*/ +// Range: 0x322610 -> 0x322680 +static void start() { + // Blocks + /* anonymous block */ { + // Range: 0x322610 -> 0x322680 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322680 -> 0x00322688 +*/ +// Range: 0x322680 -> 0x322688 +static void stop() { + // Blocks + /* anonymous block */ { + // Range: 0x322680 -> 0x322688 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322690 -> 0x00322698 +*/ +// Range: 0x322690 -> 0x322698 +static enum state_enum update() { + // Blocks + /* anonymous block */ { + // Range: 0x322690 -> 0x322698 + } +} + diff --git a/dwarf/SB/Game/zTalkBox.h b/dwarf/SB/Game/zTalkBox.h new file mode 100644 index 000000000..b32779b7b --- /dev/null +++ b/dwarf/SB/Game/zTalkBox.h @@ -0,0 +1,42 @@ +/* + Compile unit: C:\SB\Game\zTalkBox.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D950 -> 0x0030D958 +*/ +// Range: 0x30D950 -> 0x30D958 +void on_signal() { + // Blocks + /* anonymous block */ { + // Range: 0x30D950 -> 0x30D958 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D960 -> 0x0030D968 +*/ +// Range: 0x30D960 -> 0x30D968 +void on_start() { + // Blocks + /* anonymous block */ { + // Range: 0x30D960 -> 0x30D968 + } +} + +/* + Compile unit: C:\SB\Game\zTalkBox.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0030D970 -> 0x0030D978 +*/ +// Range: 0x30D970 -> 0x30D978 +void on_answer() { + // Blocks + /* anonymous block */ { + // Range: 0x30D970 -> 0x30D978 + } +} + diff --git a/dwarf/SB/Game/zTaskBox.cpp b/dwarf/SB/Game/zTaskBox.cpp new file mode 100644 index 000000000..739fead59 --- /dev/null +++ b/dwarf/SB/Game/zTaskBox.cpp @@ -0,0 +1,406 @@ +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class talk_callback * tcb; // size: 0x4, address: 0x5100CC +static class /* @class */ { + // total size: 0x4 +public: + class ztaskbox * active; // offset 0x0, size 0x4 +} shared; // size: 0x4, address: 0x5100D0 +struct /* @anon1 */ { + // total size: 0x18 +} __vt__Q28ztaskbox13talk_callback; // size: 0x18, address: 0x50C3A0 +struct /* @anon0 */ { + // total size: 0x18 +} __vt__Q28ztalkbox8callback; // size: 0x18, address: 0x0 +signed int cb_dispatch(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x323A70 +class ztaskbox : public xBase { + // total size: 0x24 +public: + class /* @class */ { + // total size: 0x4 + public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 + } flag; // offset 0x10, size 0x4 + class asset_type * asset; // offset 0x14, size 0x4 + enum state_enum state; // offset 0x18, size 0x4 + class callback * cb; // offset 0x1C, size 0x4 + class ztaskbox * current; // offset 0x20, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xTextAsset { + // total size: 0x4 +public: + unsigned int len; // offset 0x0, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x18 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class callback { + // total size: 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + unsigned char enabled : 8; // offset 0x0, size 0x1 + unsigned int dummy : 24; // offset 0x0, size 0x4 +}; +class asset_type { + // total size: 0x0 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class ztextbox { + // total size: 0x0 +}; +class talk_callback : public callback { + // total size: 0xC +public: + class ztaskbox * task; // offset 0x4, size 0x4 + enum answer_enum answer; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x14 +public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 +}; +class asset_type : public xDynAsset { + // total size: 0x34 +public: + unsigned char persistent : 8; // offset 0x10, size 0x1 + unsigned char loop : 8; // offset 0x11, size 0x1 + unsigned char enable : 8; // offset 0x12, size 0x1 + unsigned char retry : 8; // offset 0x13, size 0x1 + unsigned int talk_box; // offset 0x14, size 0x4 + unsigned int next_task; // offset 0x18, size 0x4 + unsigned int stages[6]; // offset 0x1C, size 0x18 +}; +class zNPCCommon { + // total size: 0x0 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class ztalkbox : public xBase { + // total size: 0x3C +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char visible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class ztextbox * dialog_box; // offset 0x18, size 0x4 + class ztextbox * prompt_box; // offset 0x1C, size 0x4 + class ztextbox * quit_box; // offset 0x20, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 + } prompt; // offset 0x24, size 0x14 + class zNPCCommon * npc; // offset 0x38, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class ztaskbox * active; // offset 0x0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +enum answer_enum { + ANSWER_CONTINUE = 0, + ANSWER_YES = 1, + ANSWER_NO = 2, +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class callback { + // total size: 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +enum state_enum { + STATE_INVALID = -1, + STATE_BEGIN = 0, + STATE_DESCRIPTION = 1, + STATE_REMINDER = 2, + STATE_SUCCESS = 3, + STATE_FAILURE = 4, + STATE_END = 5, + MAX_STATE = 6, +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +struct /* @anon1 */ { + // total size: 0x18 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char visible : 1; // offset 0x0, size 0x1 +}; + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323A70 -> 0x00323C04 +*/ +// Range: 0x323A70 -> 0x323C04 +signed int cb_dispatch(class xBase * to /* r2 */, unsigned int event /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323A70 -> 0x323C04 + class ztaskbox & e; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323C10 -> 0x00323CE0 +*/ +// Range: 0x323C10 -> 0x323CE0 +void on_talk_stop(class ztaskbox * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323C10 -> 0x323CE0 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323CE0 -> 0x00323E68 +*/ +// Range: 0x323CE0 -> 0x323E68 +void set_state(class ztaskbox * this /* r16 */, enum state_enum state /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323CE0 -> 0x323E68 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323E70 -> 0x00323E78 +*/ +// Range: 0x323E70 -> 0x323E78 +void load(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323E70 -> 0x323E78 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323E80 -> 0x00323EB8 +*/ +// Range: 0x323E80 -> 0x323EB8 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x323E80 -> 0x323EB8 + class talk_callback tcb; // @ 0x005DE1E0 + signed char @3564; // @ 0x005100D4 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323EC0 -> 0x00323EC8 +*/ +// Range: 0x323EC0 -> 0x323EC8 +void set_callback(class ztaskbox * this /* r2 */, class callback * cb /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323EC0 -> 0x323EC8 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323ED0 -> 0x00323F64 +*/ +// Range: 0x323ED0 -> 0x323F64 +void stop_talk(class ztaskbox * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323ED0 -> 0x323F64 + class ztalkbox * talk; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323F70 -> 0x003240EC +*/ +// Range: 0x323F70 -> 0x3240EC +void start_talk(class ztaskbox * this /* r18 */, class zNPCCommon * npc /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323F70 -> 0x3240EC + class ztalkbox * talk; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003240F0 -> 0x00324100 +*/ +// Range: 0x3240F0 -> 0x324100 +void write(class ztaskbox * this /* r2 */, class xSerial & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3240F0 -> 0x324100 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324100 -> 0x00324140 +*/ +// Range: 0x324100 -> 0x324140 +void read(class ztaskbox * this /* r16 */, class xSerial & s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324100 -> 0x324140 + unsigned char state; // r29+0x2F + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324140 -> 0x003241EC +*/ +// Range: 0x324140 -> 0x3241EC +void load(class ztaskbox * this /* r17 */, class asset_type & a /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324140 -> 0x3241EC + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003241F0 -> 0x00324224 +*/ +// Range: 0x3241F0 -> 0x324224 +void on_start(class talk_callback * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3241F0 -> 0x324224 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324230 -> 0x0032423C +*/ +// Range: 0x324230 -> 0x32423C +void on_stop(class talk_callback * this /* r4 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324230 -> 0x32423C + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00324240 -> 0x00324248 +*/ +// Range: 0x324240 -> 0x324248 +void on_answer(class talk_callback * this /* r2 */, enum answer_enum answer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x324240 -> 0x324248 + } +} + diff --git a/dwarf/SB/Game/zTaskBox.h b/dwarf/SB/Game/zTaskBox.h new file mode 100644 index 000000000..825181421 --- /dev/null +++ b/dwarf/SB/Game/zTaskBox.h @@ -0,0 +1,28 @@ +/* + Compile unit: C:\SB\Game\zTaskBox.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0280 -> 0x002F0288 +*/ +// Range: 0x2F0280 -> 0x2F0288 +void on_talk_start() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0280 -> 0x2F0288 + } +} + +/* + Compile unit: C:\SB\Game\zTaskBox.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002F0290 -> 0x002F0298 +*/ +// Range: 0x2F0290 -> 0x2F0298 +void on_talk_stop() { + // Blocks + /* anonymous block */ { + // Range: 0x2F0290 -> 0x2F0298 + } +} + diff --git a/dwarf/SB/Game/zTaxi.cpp b/dwarf/SB/Game/zTaxi.cpp new file mode 100644 index 000000000..c9ce3be92 --- /dev/null +++ b/dwarf/SB/Game/zTaxi.cpp @@ -0,0 +1,3278 @@ +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class taxiCB * tCB; // size: 0x4, address: 0x510224 +static enum answer_enum sAnswer; // size: 0x4, address: 0x50F150 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +signed int zTaxiEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x39C110 +struct /* @anon0 */ { + // total size: 0x18 +} __vt__6taxiCB; // size: 0x18, address: 0x50DF40 +struct /* @anon1 */ { + // total size: 0x18 +} __vt__Q28ztalkbox8callback; // size: 0x18, address: 0x0 +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class NPCSndTrax { + // total size: 0xC +public: + enum en_NPC_SOUND typ_sound; // offset 0x0, size 0x4 + char * nam_sound; // offset 0x4, size 0x4 + unsigned int aid_sound; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class xGoal : public xListItem, public xFactoryInst { + // total size: 0x3C +public: + class xPsyche * psyche; // offset 0x18, size 0x4 + signed int goalID; // offset 0x1C, size 0x4 + enum en_GOALSTATE stat; // offset 0x20, size 0x4 + signed int flg_able; // offset 0x24, size 0x4 + signed int (* fun_process)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x28, size 0x4 + signed int (* fun_precalc)(class xGoal *, void *, float, void *); // offset 0x2C, size 0x4 + signed int (* fun_chkRule)(class xGoal *, void *, enum en_trantype *, float, void *); // offset 0x30, size 0x4 + void * cbdata; // offset 0x34, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class zNPCCommon : public xNPCBasic { + // total size: 0x2A0 +public: + class xEntAsset * entass; // offset 0x1BC, size 0x4 + class xEntNPCAsset * npcass; // offset 0x1C0, size 0x4 + class zNPCSettings * npcsetass; // offset 0x1C4, size 0x4 + signed int flg_vuln; // offset 0x1C8, size 0x4 + signed int flg_move; // offset 0x1CC, size 0x4 + signed int flg_misc; // offset 0x1D0, size 0x4 + signed int flg_able; // offset 0x1D4, size 0x4 + class NPCConfig * cfg_npc; // offset 0x1D8, size 0x4 + class zNPCSettings npcset; // offset 0x1DC, size 0x2C + class zMovePoint * nav_past; // offset 0x208, size 0x4 + class zMovePoint * nav_curr; // offset 0x20C, size 0x4 + class zMovePoint * nav_dest; // offset 0x210, size 0x4 + class zMovePoint * nav_lead; // offset 0x214, size 0x4 + class xSpline3 * spl_mvptspline; // offset 0x218, size 0x4 + float len_mvptspline; // offset 0x21C, size 0x4 + float dst_curspline; // offset 0x220, size 0x4 + class xEntDrive * drv_data; // offset 0x224, size 0x4 + class xPsyche * psy_instinct; // offset 0x228, size 0x4 + class zNPCCommon * npc_duplodude; // offset 0x22C, size 0x4 + float spd_throttle; // offset 0x230, size 0x4 + signed int flg_xtrarend; // offset 0x234, size 0x4 + float tmr_fidget; // offset 0x238, size 0x4 + float tmr_invuln; // offset 0x23C, size 0x4 + class zShrapnelAsset * explosion; // offset 0x240, size 0x4 + class xModelAssetParam * parmdata; // offset 0x244, size 0x4 + unsigned int pdatsize; // offset 0x248, size 0x4 + class zNPCLassoInfo * lassdata; // offset 0x24C, size 0x4 + class NPCSndQueue snd_queue[4]; // offset 0x250, size 0x50 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zTaxi : public xBase { + // total size: 0x38 +public: + class taxi_asset * basset; // offset 0x10, size 0x4 + class zEnt * taxi; // offset 0x14, size 0x4 + class xVec3 pos; // offset 0x18, size 0xC + unsigned int currState; // offset 0x24, size 0x4 + unsigned int prevState; // offset 0x28, size 0x4 + float portalTimer; // offset 0x2C, size 0x4 + float invTimer; // offset 0x30, size 0x4 + float radius; // offset 0x34, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +enum answer_enum { + ANSWER_CONTINUE = 0, + ANSWER_YES = 1, + ANSWER_NO = 2, +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +enum en_trantype { + GOAL_TRAN_NONE = 0, + GOAL_TRAN_SET = 1, + GOAL_TRAN_PUSH = 2, + GOAL_TRAN_POP = 3, + GOAL_TRAN_POPTO = 4, + GOAL_TRAN_POPALL = 5, + GOAL_TRAN_POPBASE = 6, + GOAL_TRAN_POPSAFE = 7, + GOAL_TRAN_SWAP = 8, + GOAL_TRAN_NOMORE = 9, + GOAL_TRAN_FORCE = 2147483647, +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class zEntHangable { + // total size: 0x0 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +enum en_pendtype { + PEND_TRAN_NONE = 0, + PEND_TRAN_SET = 1, + PEND_TRAN_PUSH = 2, + PEND_TRAN_POP = 3, + PEND_TRAN_POPTO = 4, + PEND_TRAN_POPALL = 5, + PEND_TRAN_SWAP = 6, + PEND_TRAN_INPROG = 7, + PEND_TRAN_NOMORE = 8, +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class callback { + // total size: 0x4 +}; +enum en_npcbtyp { + NPCP_BASIS_NONE = 0, + NPCP_BASIS_EVILROBOT = 1, + NPCP_BASIS_FRIENDLYROBOT = 2, + NPCP_BASIS_LOVINGCITIZEN = 3, + NPCP_BASIS_GRUMPYCITIZEN = 4, + NPCP_BASIS_NOMORE = 5, + NPCP_BASIS_FORCE = 2147483647, +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xPsyche : public RyzMemData { + // total size: 0x68 +public: + class xBase * clt_owner; // offset 0x0, size 0x4 + class xPSYNote * cb_notice; // offset 0x4, size 0x4 + signed int flg_psyche; // offset 0x8, size 0x4 + class xGoal * goallist; // offset 0xC, size 0x4 + class xGoal * goalstak[5]; // offset 0x10, size 0x14 + float tmr_stack[5][1]; // offset 0x24, size 0x14 + signed int staktop; // offset 0x38, size 0x4 + class xGoal * pendgoal; // offset 0x3C, size 0x4 + enum en_pendtype pendtype; // offset 0x40, size 0x4 + signed int gid_safegoal; // offset 0x44, size 0x4 + void (* fun_remap)(signed int *, enum en_trantype *); // offset 0x48, size 0x4 + void * userContext; // offset 0x4C, size 0x4 + signed int cnt_transLastTimestep; // offset 0x50, size 0x4 + enum PSY_BRAIN_STATUS psystat; // offset 0x54, size 0x4 + class xBase fakebase; // offset 0x58, size 0x10 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class taxi_asset : public xDynAsset { + // total size: 0x30 +public: + unsigned int marker; // offset 0x10, size 0x4 + unsigned int cameraID; // offset 0x14, size 0x4 + unsigned int portalID; // offset 0x18, size 0x4 + unsigned int talkBoxID; // offset 0x1C, size 0x4 + unsigned int textID; // offset 0x20, size 0x4 + unsigned int taxiID; // offset 0x24, size 0x4 + float invDelay; // offset 0x28, size 0x4 + float portalDelay; // offset 0x2C, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class xGoal * next; // offset 0x4, size 0x4 + class xGoal * prev; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class zNPCLassoInfo { + // total size: 0x18 +public: + enum en_LASSO_STATUS stage; // offset 0x0, size 0x4 + class xEnt * lassoee; // offset 0x4, size 0x4 + class xAnimState * holdGuideAnim; // offset 0x8, size 0x4 + class xModelInstance * holdGuideModel; // offset 0xC, size 0x4 + class xAnimState * grabGuideAnim; // offset 0x10, size 0x4 + class xModelInstance * grabGuideModel; // offset 0x14, size 0x4 +}; +class RyzMemData { + // total size: 0x1 +}; +class xEntBoulder { + // total size: 0x0 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +struct /* @anon0 */ { + // total size: 0x18 +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +class xEntNPCAsset { + // total size: 0x18 +public: + signed int npcFlags; // offset 0x0, size 0x4 + signed int npcModel; // offset 0x4, size 0x4 + signed int npcProps; // offset 0x8, size 0x4 + unsigned int movepoint; // offset 0xC, size 0x4 + unsigned int taskWidgetPrime; // offset 0x10, size 0x4 + unsigned int taskWidgetSecond; // offset 0x14, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xPSYNote { + // total size: 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class zNPCSettings : public xDynAsset { + // total size: 0x2C +public: + enum en_npcbtyp basisType; // offset 0x10, size 0x4 + char allowDetect; // offset 0x14, size 0x1 + char allowPatrol; // offset 0x15, size 0x1 + char allowWander; // offset 0x16, size 0x1 + char reduceCollide; // offset 0x17, size 0x1 + char useNavSplines; // offset 0x18, size 0x1 + char pad[3]; // offset 0x19, size 0x3 + char allowChase; // offset 0x1C, size 0x1 + char allowAttack; // offset 0x1D, size 0x1 + char assumeLOS; // offset 0x1E, size 0x1 + char assumeFOV; // offset 0x1F, size 0x1 + enum en_dupowavmod duploWaveMode; // offset 0x20, size 0x4 + float duploSpawnDelay; // offset 0x24, size 0x4 + signed int duploSpawnLifeMax; // offset 0x28, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +enum en_dupowavmod { + NPCP_DUPOWAVE_CONTINUOUS = 0, + NPCP_DUPOWAVE_DISCREET = 1, + NPCP_DUPOWAVE_NOMORE = 2, + NPCP_DUPOWAVE_FORCE = 2147483647, +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class taxiCB : public callback { + // total size: 0xC +public: + class zTaxi * taxi; // offset 0x4, size 0x4 + enum answer_enum answer; // offset 0x8, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +enum PSY_BRAIN_STATUS { + PSY_STAT_BLANK = 0, + PSY_STAT_GROW = 1, + PSY_STAT_EXTEND = 2, + PSY_STAT_THINK = 3, + PSY_STAT_NOMORE = 4, + PSY_STAT_FORCE = 2147483647, +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class NPCConfig : public xListItem { + // total size: 0x3B0 +public: + unsigned int modelID; // offset 0xC, size 0x4 + signed int flg_config; // offset 0x10, size 0x4 + float spd_turnMax; // offset 0x14, size 0x4 + float spd_moveMax; // offset 0x18, size 0x4 + float fac_accelMax; // offset 0x1C, size 0x4 + float fac_driftMax; // offset 0x20, size 0x4 + float fac_gravKnock; // offset 0x24, size 0x4 + float fac_elastic; // offset 0x28, size 0x4 + signed int pts_damage; // offset 0x2C, size 0x4 + signed int useBoxBound; // offset 0x30, size 0x4 + class xVec3 off_bound; // offset 0x34, size 0xC + class xVec3 dim_bound; // offset 0x40, size 0xC + float npcMass; // offset 0x4C, size 0x4 + float npcMassInv; // offset 0x50, size 0x4 + float rad_detect; // offset 0x54, size 0x4 + float hyt_detect; // offset 0x58, size 0x4 + float off_detect; // offset 0x5C, size 0x4 + float rad_attack; // offset 0x60, size 0x4 + float fov_attack; // offset 0x64, size 0x4 + class xVec3 scl_model; // offset 0x68, size 0xC + float tym_attack; // offset 0x74, size 0x4 + float tym_fidget; // offset 0x78, size 0x4 + float tym_stun; // offset 0x7C, size 0x4 + float tym_alert; // offset 0x80, size 0x4 + float dst_castShadow; // offset 0x84, size 0x4 + float rad_shadowCache; // offset 0x88, size 0x4 + float rad_shadowRaster; // offset 0x8C, size 0x4 + float rad_dmgSize; // offset 0x90, size 0x4 + signed int flg_vert; // offset 0x94, size 0x4 + class xModelTag tag_vert[20]; // offset 0x98, size 0x280 + class xVec3 animFrameRange[9]; // offset 0x318, size 0x6C + signed int cnt_esteem[5]; // offset 0x384, size 0x14 + float rad_sound; // offset 0x398, size 0x4 + class NPCSndTrax * snd_trax; // offset 0x39C, size 0x4 + class NPCSndTrax * snd_traxShare; // offset 0x3A0, size 0x4 + signed int test_count; // offset 0x3A4, size 0x4 + unsigned char talk_filter[4]; // offset 0x3A8, size 0x4 + unsigned char talk_filter_size; // offset 0x3AC, size 0x1 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xIsect { + // total size: 0x2C +public: + unsigned int flags; // offset 0x0, size 0x4 + float penned; // offset 0x4, size 0x4 + float contained; // offset 0x8, size 0x4 + float lapped; // offset 0xC, size 0x4 + class xVec3 point; // offset 0x10, size 0xC + class xVec3 norm; // offset 0x1C, size 0xC + float dist; // offset 0x28, size 0x4 +}; +class xNPCBasic : public xEnt, public xFactoryInst { + // total size: 0x1BC +public: + void (* f_setup)(class xEnt *); // offset 0xDC, size 0x4 + void (* f_reset)(class xEnt *); // offset 0xE0, size 0x4 + signed int flg_basenpc : 16; // offset 0xE4, size 0x4 + signed int inUpdate : 8; // offset 0xE4, size 0x4 + signed int flg_upward : 8; // offset 0xE4, size 0x4 + signed int colFreq; // offset 0xE8, size 0x4 + signed int colFreqReset; // offset 0xEC, size 0x4 + unsigned int flg_colCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_penCheck : 8; // offset 0xF0, size 0x4 + unsigned int flg_unused : 16; // offset 0xF0, size 0x4 + signed int myNPCType; // offset 0xF4, size 0x4 + class xEntShadow entShadow_embedded; // offset 0xF8, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0x120, size 0x98 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zMovePoint : public xMovePoint { + // total size: 0x30 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +enum en_GOALSTATE { + GOAL_STAT_UNKNOWN = 0, + GOAL_STAT_PROCESS = 1, + GOAL_STAT_ENTER = 2, + GOAL_STAT_EXIT = 3, + GOAL_STAT_SUSPEND = 4, + GOAL_STAT_RESUME = 5, + GOAL_STAT_PAUSED = 6, + GOAL_STAT_DONE = 7, + GOAL_STAT_NOMORE = 8, + GOAL_STAT_FORCE = 2147483647, +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class ztalkbox : public xBase { + // total size: 0x3C +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char visible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class ztextbox * dialog_box; // offset 0x18, size 0x4 + class ztextbox * prompt_box; // offset 0x1C, size 0x4 + class ztextbox * quit_box; // offset 0x20, size 0x4 + class /* @class */ { + // total size: 0x14 + public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 + } prompt; // offset 0x24, size 0x14 + class zNPCCommon * npc; // offset 0x38, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xListItem { + // total size: 0xC +public: + signed int flg_travFilter; // offset 0x0, size 0x4 + class NPCConfig * next; // offset 0x4, size 0x4 + class NPCConfig * prev; // offset 0x8, size 0x4 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class ztextbox { + // total size: 0x0 +}; +class xFactoryInst : public RyzMemData { + // total size: 0xC +public: + signed int itemType; // offset 0x0, size 0x4 + class xFactoryInst * nextprod; // offset 0x4, size 0x4 + class xFactoryInst * prevprod; // offset 0x8, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +enum answer_enum { + ANSWER_CONTINUE = 0, + ANSWER_YES = 1, + ANSWER_NO = 2, + ANSWER_NONE = 3, +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char visible : 1; // offset 0x0, size 0x1 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xModelAssetParam { + // total size: 0x0 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +struct /* @anon1 */ { + // total size: 0x18 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum en_LASSO_STATUS { + LASS_STAT_DONE = 0, + LASS_STAT_PENDING = 1, + LASS_STAT_GRABBING = 2, + LASS_STAT_TOSSING = 3, + LASS_STAT_NOMORE = 4, + LASS_STAT_FORCEINT = 2147483647, +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xMarkerAsset { + // total size: 0xC +public: + class xVec3 pos; // offset 0x0, size 0xC +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class asset_type { + // total size: 0x0 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class NPCSndQueue { + // total size: 0x14 +public: + unsigned int sndDirect; // offset 0x0, size 0x4 + enum en_NPC_SOUND sndtype; // offset 0x4, size 0x4 + signed int flg_snd; // offset 0x8, size 0x4 + float tmr_delay; // offset 0xC, size 0x4 + float radius; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class /* @class */ { + // total size: 0x14 +public: + char * skip; // offset 0x0, size 0x4 + char * noskip; // offset 0x4, size 0x4 + char * quit; // offset 0x8, size 0x4 + char * noquit; // offset 0xC, size 0x4 + char * yesno; // offset 0x10, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +enum en_NPC_SOUND { + NPC_STYP_BOGUS = -2, + NPC_STYP_LISTEND = 0, + NPC_STYP_ENCOUNTER = 1, + NPC_STYP_CLANKING = 2, + NPC_STYP_EXCLAIM = 3, + NPC_STYP_OUCH = 4, + NPC_STYP_CHEERING = 5, + NPC_STYP_RESPAWN = 6, + NPC_STYP_ALERT = 7, + NPC_STYP_DIZZY = 8, + NPC_STYP_DANCE = 9, + NPC_STYP_LAUGH = 10, + NPC_STYP_ATTACK = 11, + NPC_STYP_PUNCH = 12, + NPC_STYP_WEPLAUNCH = 13, + NPC_STYP_LIGHTNING = 14, + NPC_STYP_WARNBANG = 15, + NPC_STYP_DEATH = 16, + NPC_STYP_DEATHJELLY = 17, + NPC_STYP_BONKED = 18, + NPC_STYP_UNBONKED = 19, + NPC_STYP_TIKISTACK = 20, + NPC_STYP_TIKIEXPLODE = 21, + NPC_STYP_TIKITHUNDER = 22, + NPC_STYP_XSFXTALK = 23, + NPC_STYP_ONELINER = 24, + NPC_STYP_ONELINERTOO = 25, + NPC_STYP_NOMORE = 26, + NPC_STYP_FORCE = 2147483647, +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C110 -> 0x0039C160 +*/ +// Range: 0x39C110 -> 0x39C160 +signed int zTaxiEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C110 -> 0x39C160 + class zTaxi * taxi; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C160 -> 0x0039C168 +*/ +// Range: 0x39C160 -> 0x39C168 +void zTaxi_Load(class zTaxi * taxi /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C160 -> 0x39C168 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C170 -> 0x0039C178 +*/ +// Range: 0x39C170 -> 0x39C178 +void zTaxi_Save(class zTaxi * taxi /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C170 -> 0x39C178 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C180 -> 0x0039C568 +*/ +// Range: 0x39C180 -> 0x39C568 +void zTaxi_Update(class xBase * to /* r2 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C180 -> 0x39C568 + class zTaxi * taxi; // r16 + class xCylinder c; // r29+0x70 + class xIsect check; // r29+0x40 + class ztalkbox * tb; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C570 -> 0x0039C5E8 +*/ +// Range: 0x39C570 -> 0x39C5E8 +void zTaxi_Setup(class zTaxi * taxi /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C570 -> 0x39C5E8 + class xBase * simpPtr; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C5F0 -> 0x0039C6CC +*/ +// Range: 0x39C5F0 -> 0x39C6CC +void zTaxi_Init(class zTaxi * taxi /* r17 */, class taxi_asset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C5F0 -> 0x39C6CC + unsigned int size; // r29+0x3C + class xMarkerAsset * marker; // r2 + class taxiCB tCB1; // @ 0x005E55C8 + signed char @5461; // @ 0x00510228 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C6D0 -> 0x0039C6D8 +*/ +// Range: 0x39C6D0 -> 0x39C6D8 +void zTaxi_Init(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C6D0 -> 0x39C6D8 + } +} + diff --git a/dwarf/SB/Game/zTaxi.h b/dwarf/SB/Game/zTaxi.h new file mode 100644 index 000000000..1ac57f633 --- /dev/null +++ b/dwarf/SB/Game/zTaxi.h @@ -0,0 +1,56 @@ +/* + Compile unit: C:\SB\Game\zTaxi.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C6E0 -> 0x0039C6E8 +*/ +// Range: 0x39C6E0 -> 0x39C6E8 +void on_signal() { + // Blocks + /* anonymous block */ { + // Range: 0x39C6E0 -> 0x39C6E8 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C6F0 -> 0x0039C6F8 +*/ +// Range: 0x39C6F0 -> 0x39C6F8 +void on_start() { + // Blocks + /* anonymous block */ { + // Range: 0x39C6F0 -> 0x39C6F8 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C700 -> 0x0039C708 +*/ +// Range: 0x39C700 -> 0x39C708 +void on_answer(enum answer_enum answer /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x39C700 -> 0x39C708 + } +} + +/* + Compile unit: C:\SB\Game\zTaxi.h + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0039C710 -> 0x0039C718 +*/ +// Range: 0x39C710 -> 0x39C718 +void on_stop() { + // Blocks + /* anonymous block */ { + // Range: 0x39C710 -> 0x39C718 + } +} + diff --git a/dwarf/SB/Game/zTextBox.cpp b/dwarf/SB/Game/zTextBox.cpp new file mode 100644 index 000000000..365301c54 --- /dev/null +++ b/dwarf/SB/Game/zTextBox.cpp @@ -0,0 +1,710 @@ +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class ztextbox * head_active; // size: 0x4, address: 0x5100C8 +static void (* render_bk_table[3])(class ztextbox &); // size: 0xC, address: 0x4E0518 +static class tag_type new_tags[1]; // size: 0x14, address: 0x4E0530 +static unsigned int new_tags_size; // size: 0x4, address: 0x50F0A0 +signed int cb_dispatch(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x322DF0 +unsigned int ourGlobals[4096]; // size: 0x4000, address: 0x5BB928 +class ztextbox : public xBase { + // total size: 0xD0 +public: + class /* @class */ { + // total size: 0x1 + public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 + } flag; // offset 0x10, size 0x1 + class asset_type * asset; // offset 0x14, size 0x4 + class xtextbox tb; // offset 0x18, size 0x68 + char * segments[16]; // offset 0x80, size 0x40 + unsigned int segments_size; // offset 0xC0, size 0x4 + class ztextbox * next; // offset 0xC4, size 0x4 + class ztextbox * prev; // offset 0xC8, size 0x4 + class RwRaster * bgtex; // offset 0xCC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xDynAsset : public xBaseAsset { + // total size: 0x10 +public: + unsigned int type; // offset 0x8, size 0x4 + unsigned short version; // offset 0xC, size 0x2 + unsigned short handle; // offset 0xE, size 0x2 +}; +class asset_type : public xDynAsset { + // total size: 0x64 +public: + unsigned int text; // offset 0x10, size 0x4 + class basic_rect bounds; // offset 0x14, size 0x10 + unsigned int font; // offset 0x24, size 0x4 + class /* @class */ { + // total size: 0x8 + public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 + } size; // offset 0x28, size 0x8 + class /* @class */ { + // total size: 0x8 + public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + } space; // offset 0x30, size 0x8 + class color_type color; // offset 0x38, size 0x4 + class /* @class */ { + // total size: 0x10 + public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 + } inset; // offset 0x3C, size 0x10 + enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, + } xjustify; // offset 0x4C, size 0x4 + enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, + } expand; // offset 0x50, size 0x4 + float max_height; // offset 0x54, size 0x4 + class /* @class */ { + // total size: 0xC + public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 + } backdrop; // offset 0x58, size 0xC +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class /* @class */ { + // total size: 0xC +public: + unsigned int type; // offset 0x0, size 0x4 + class color_type color; // offset 0x4, size 0x4 + unsigned int texture; // offset 0x8, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xTextAsset { + // total size: 0x4 +public: + unsigned int len; // offset 0x0, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class color_type { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0x8 +public: + float width; // offset 0x0, size 0x4 + float height; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x10 +public: + float left; // offset 0x0, size 0x4 + float top; // offset 0x4, size 0x4 + float right; // offset 0x8, size 0x4 + float bottom; // offset 0xC, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum /* @enum */ { + XJ_LEFT = 0, + XJ_CENTER = 1, + XJ_RIGHT = 2, +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +enum /* @enum */ { + EX_UP = 0, + EX_CENTER = 1, + EX_DOWN = 2, + MAX_EX = 3, +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +class /* @class */ { + // total size: 0x1 +public: + unsigned char active : 1; // offset 0x0, size 0x1 + unsigned char dirty : 1; // offset 0x0, size 0x1 + unsigned char show_backdrop : 1; // offset 0x0, size 0x1 + unsigned char visible : 1; // offset 0x0, size 0x1 + unsigned char hack_invisible : 1; // offset 0x0, size 0x1 +}; + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003226A0 -> 0x00322770 +*/ +// Range: 0x3226A0 -> 0x322770 +void render_all() { + // Blocks + /* anonymous block */ { + // Range: 0x3226A0 -> 0x322770 + class ztextbox * it; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322770 -> 0x003227A0 +*/ +// Range: 0x322770 -> 0x3227A0 +void update_all() { + // Blocks + /* anonymous block */ { + // Range: 0x322770 -> 0x3227A0 + class ztextbox * it; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003227A0 -> 0x003227A8 +*/ +// Range: 0x3227A0 -> 0x3227A8 +void load(class xBase & data /* r2 */, class xDynAsset & asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3227A0 -> 0x3227A8 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003227B0 -> 0x003227D8 +*/ +// Range: 0x3227B0 -> 0x3227D8 +void init() { + // Blocks + /* anonymous block */ { + // Range: 0x3227B0 -> 0x3227D8 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003227E0 -> 0x003228A0 +*/ +// Range: 0x3227E0 -> 0x3228A0 +void get_text(class ztextbox * this /* r2 */, char * buffer /* r18 */, unsigned int buffer_size /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3227E0 -> 0x3228A0 + char * * it; // r16 + char * * end; // r21 + char * s; // r20 + unsigned int len; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003228A0 -> 0x003228F8 +*/ +// Range: 0x3228A0 -> 0x3228F8 +void refresh(class ztextbox * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x3228A0 -> 0x3228F8 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322900 -> 0x00322920 +*/ +// Range: 0x322900 -> 0x322920 +void clear_text(class ztextbox * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322900 -> 0x322920 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322920 -> 0x00322968 +*/ +// Range: 0x322920 -> 0x322968 +void add_text(class ztextbox * this /* r2 */, char * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322920 -> 0x322968 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322970 -> 0x00322A18 +*/ +// Range: 0x322970 -> 0x322A18 +void set_text(class ztextbox * this /* r16 */, unsigned int id /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322970 -> 0x322A18 + class xTextAsset * ta; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322A20 -> 0x00322A78 +*/ +// Range: 0x322A20 -> 0x322A78 +void set_text(class ztextbox * this /* r2 */, char * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322A20 -> 0x322A78 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322A80 -> 0x00322B08 +*/ +// Range: 0x322A80 -> 0x322B08 +void deactivate(class ztextbox * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322A80 -> 0x322B08 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322B10 -> 0x00322B78 +*/ +// Range: 0x322B10 -> 0x322B78 +void activate(class ztextbox * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322B10 -> 0x322B78 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322B80 -> 0x00322BC4 +*/ +// Range: 0x322B80 -> 0x322BC4 +void render_backdrop(class ztextbox * this /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322B80 -> 0x322BC4 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322BD0 -> 0x00322D38 +*/ +// Range: 0x322BD0 -> 0x322D38 +void reset(class ztextbox * this /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322BD0 -> 0x322D38 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322D40 -> 0x00322DE4 +*/ +// Range: 0x322D40 -> 0x322DE4 +void load(class ztextbox * this /* r17 */, class asset_type & a /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322D40 -> 0x322DE4 + class RwTexture * tex; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00322DF0 -> 0x0032316C +*/ +// Range: 0x322DF0 -> 0x32316C +static signed int cb_dispatch(class xBase * to /* r2 */, unsigned int event /* r2 */, float * argf /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x322DF0 -> 0x32316C + class ztextbox & e; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323170 -> 0x00323178 +*/ +// Range: 0x323170 -> 0x323178 +static void parse_tag_blahblah() { + // Blocks + /* anonymous block */ { + // Range: 0x323170 -> 0x323178 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323180 -> 0x003233E4 +*/ +// Range: 0x323180 -> 0x3233E4 +static void init_textbox(class ztextbox & e /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323180 -> 0x3233E4 + class asset_type & a; // r16 + signed int lines; // r29+0x4C + float minh; // r21 + float maxh; // r20 + float hmore; // r2 + unsigned int xjlookup[3]; // @ 0x00500AE0 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x003233F0 -> 0x003233F8 +*/ +// Range: 0x3233F0 -> 0x3233F8 +static void render_bk_tex_wrap() { + // Blocks + /* anonymous block */ { + // Range: 0x3233F0 -> 0x3233F8 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323400 -> 0x00323A18 +*/ +// Range: 0x323400 -> 0x323A18 +static void render_bk_tex_scale(class ztextbox & e /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323400 -> 0x323A18 + float rcz; // r21 + float nsz; // r20 + class basic_rect r; // r29+0x30 + class RwSky2DVertex vert[6]; // @ 0x005DE060 + } +} + +/* + Compile unit: C:\SB\Game\zTextBox.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00323A20 -> 0x00323A64 +*/ +// Range: 0x323A20 -> 0x323A64 +static void render_bk_fill(class ztextbox & e /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x323A20 -> 0x323A64 + class asset_type & a; // r3 + } +} + diff --git a/dwarf/SB/Game/zThrown.cpp b/dwarf/SB/Game/zThrown.cpp new file mode 100644 index 000000000..ddcf701de --- /dev/null +++ b/dwarf/SB/Game/zThrown.cpp @@ -0,0 +1,3392 @@ +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zThrownStruct zThrownList[32]; // size: 0x3600, address: 0x5C11B0 +static unsigned int zThrownCount; // size: 0x4, address: 0x50FDA0 +static unsigned int sThrowButtonMask; // size: 0x4, address: 0x50FDA4 +static float sSNDLandTimer; // size: 0x4, address: 0x50FDA8 +static class LaunchStats l_normal; // size: 0xC, address: 0x41A1C0 +static class CarryableStats c_normal; // size: 0x4, address: 0x50FDAC +static class CarryableStats c_fruit; // size: 0x4, address: 0x50EC5C +static unsigned int sFruitIsFreezy; // size: 0x4, address: 0x50FDB0 +static class ThrowableStats zThrowableModels[23]; // size: 0x398, address: 0x41A1D0 +static signed int sDebugDepth; // size: 0x4, address: 0x50FDB4 +class xBase * zThrown_ButtonIteratorCB(class xBase *, class zScene *, void *); // size: 0x0, address: 0x27FAF0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +void zThrownCollide_ThrowFruit(class zThrownStruct *, class xEntCollis *, float *, float *); // size: 0x0, address: 0x27FF30 +void zThrownCollide_BSandyHead(class zThrownStruct *, class xEntCollis *, float *, float *); // size: 0x0, address: 0x27FE60 +void zThrownCollide_ThrowFreeze(class zThrownStruct *, class xEntCollis *, float *, float *); // size: 0x0, address: 0x27FF00 +void zThrownCollide_StoneTiki(class zThrownStruct *, class xEntCollis *, float *, float *); // size: 0x0, address: 0x27FC40 +void zFruit_Update(class xEnt *, class xScene *, float); // size: 0x0, address: 0x282C40 +void zThrown_Update(class xEnt *, class xScene *, float); // size: 0x0, address: 0x281650 +class xEnt * gReticleTarget; // size: 0x4, address: 0x50F3E4 +class zShrapnelAsset { + // total size: 0xC +public: + signed int fassetCount; // offset 0x0, size 0x4 + unsigned int shrapnelID; // offset 0x4, size 0x4 + void (* initCB)(class zShrapnelAsset *, class xModelInstance *, class xVec3 *, void (*)(class zFrag *, class zFragAsset *)); // offset 0x8, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntBoulder : public xEnt { + // total size: 0x1E8 +public: + class xEntBoulderAsset * basset; // offset 0xD0, size 0x4 + class xShadowSimpleCache simpShadow_embedded; // offset 0xD4, size 0x98 + class xEntShadow entShadow_embedded; // offset 0x16C, size 0x28 + class xVec3 localCenter; // offset 0x194, size 0xC + class xVec3 vel; // offset 0x1A0, size 0xC + class xVec3 rotVec; // offset 0x1AC, size 0xC + class xVec3 force; // offset 0x1B8, size 0xC + class xVec3 instForce; // offset 0x1C4, size 0xC + float angVel; // offset 0x1D0, size 0x4 + float timeToLive; // offset 0x1D4, size 0x4 + signed int hitpoints; // offset 0x1D8, size 0x4 + float lastRolling; // offset 0x1DC, size 0x4 + unsigned int rollingID; // offset 0x1E0, size 0x4 + unsigned char collis_chk; // offset 0x1E4, size 0x1 + unsigned char collis_pen; // offset 0x1E5, size 0x1 + unsigned char pad1[2]; // offset 0x1E6, size 0x2 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum zFragType { + eFragInactive = 0, + eFragGroup = 1, + eFragShrapnel = 2, + eFragParticle = 3, + eFragProjectile = 4, + eFragLightning = 5, + eFragSound = 6, + eFragShockwave = 7, + eFragCount = 8, + eFragForceSize = 2147483647, +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class xParGroup { + // total size: 0x0 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xPEEntBone { + // total size: 0x18 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char bone; // offset 0x2, size 0x1 + unsigned char pad1; // offset 0x3, size 0x1 + class xVec3 offset; // offset 0x4, size 0xC + float radius; // offset 0x10, size 0x4 + float deflection; // offset 0x14, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zThrownStruct { + // total size: 0x1B0 +public: + class xEnt * ent; // offset 0x0, size 0x4 + class xEnt * stackEnt; // offset 0x4, size 0x4 + class xEnt * stackTgt; // offset 0x8, size 0x4 + class xEnt * patLauncher; // offset 0xC, size 0x4 + void (* oldupdate)(class xEnt *, class xScene *, float); // offset 0x10, size 0x4 + class xVec3 vel; // offset 0x14, size 0xC + class xVec3 oldcollpos; // offset 0x20, size 0xC + float collResetTimer; // offset 0x2C, size 0x4 + float killTimer; // offset 0x30, size 0x4 + class ThrowableStats * stats; // offset 0x34, size 0x4 + unsigned int oldRecShadow; // offset 0x38, size 0x4 + class xEntDrive drv; // offset 0x3C, size 0x7C + signed int driveDebounce; // offset 0xB8, size 0x4 + class xEnt * driveLastFloor; // offset 0xBC, size 0x4 + class xEntFrame frame; // offset 0xC0, size 0xF0 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xCurveAsset { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xParEmitterAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char emit_flags; // offset 0x8, size 0x1 + unsigned char emit_type; // offset 0x9, size 0x1 + unsigned short pad; // offset 0xA, size 0x2 + unsigned int propID; // offset 0xC, size 0x4 + union { // inferred + class xPECircle e_circle; // offset 0x10, size 0x14 + class _tagEmitSphere e_sphere; // offset 0x10, size 0x4 + class _tagEmitRect e_rect; // offset 0x10, size 0x8 + class _tagEmitLine e_line; // offset 0x10, size 0x1C + class _tagEmitVolume e_volume; // offset 0x10, size 0x4 + class _tagEmitOffsetPoint e_offsetp; // offset 0x10, size 0xC + class xPEVCyl e_vcyl; // offset 0x10, size 0xC + class xPEEntBone e_entbone; // offset 0x10, size 0x18 + class xPEEntBound e_entbound; // offset 0x10, size 0xC + }; + unsigned int attachToID; // offset 0x2C, size 0x4 + class xVec3 pos; // offset 0x30, size 0xC + class xVec3 vel; // offset 0x3C, size 0xC + float vel_angle_variation; // offset 0x48, size 0x4 + unsigned int cull_mode; // offset 0x4C, size 0x4 + float cull_dist_sqr; // offset 0x50, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zSurfTextureAnim { + // total size: 0xC +public: + unsigned short pad; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + unsigned int group; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xParSys { + // total size: 0x0 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class xParEmitterPropsAsset : public xBaseAsset { + // total size: 0x138 +public: + unsigned int parSysID; // offset 0x8, size 0x4 + union { // inferred + class xParInterp rate; // offset 0xC, size 0x14 + class xParInterp value[1]; // offset 0xC, size 0x14 + }; + class xParInterp life; // offset 0x20, size 0x14 + class xParInterp size_birth; // offset 0x34, size 0x14 + class xParInterp size_death; // offset 0x48, size 0x14 + class xParInterp color_birth[4]; // offset 0x5C, size 0x50 + class xParInterp color_death[4]; // offset 0xAC, size 0x50 + class xParInterp vel_scale; // offset 0xFC, size 0x14 + class xParInterp vel_angle; // offset 0x110, size 0x14 + class xVec3 vel; // offset 0x124, size 0xC + unsigned int emit_limit; // offset 0x130, size 0x4 + float emit_limit_reset_time; // offset 0x134, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zParEmitter : public xParEmitter { + // total size: 0x78 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class zFragLightningAsset : public zFragAsset { + // total size: 0x68 +public: + class zFragLocation start; // offset 0x18, size 0x24 + class zFragLocation end; // offset 0x3C, size 0x24 + unsigned int startParentID; // offset 0x60, size 0x4 + unsigned int endParentID; // offset 0x64, size 0x4 +}; +class xPECircle { + // total size: 0x14 +public: + float radius; // offset 0x0, size 0x4 + float deflection; // offset 0x4, size 0x4 + class xVec3 dir; // offset 0x8, size 0xC +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class zSurfacePropTexAnim { + // total size: 0x18 +public: + unsigned short mode; // offset 0x0, size 0x2 + float speed; // offset 0x4, size 0x4 + float frame; // offset 0x8, size 0x4 + unsigned int group; // offset 0xC, size 0x4 + signed int group_idx; // offset 0x10, size 0x4 + class xBase * group_ptr; // offset 0x14, size 0x4 +}; +class zFragGroup { + // total size: 0x54 +public: + class zFrag * list[21]; // offset 0x0, size 0x54 +}; +class xEntBoulderAsset { + // total size: 0x48 +public: + float gravity; // offset 0x0, size 0x4 + float mass; // offset 0x4, size 0x4 + float bounce; // offset 0x8, size 0x4 + float friction; // offset 0xC, size 0x4 + float statFric; // offset 0x10, size 0x4 + float maxVel; // offset 0x14, size 0x4 + float maxAngVel; // offset 0x18, size 0x4 + float stickiness; // offset 0x1C, size 0x4 + float bounceDamp; // offset 0x20, size 0x4 + unsigned int flags; // offset 0x24, size 0x4 + float killtimer; // offset 0x28, size 0x4 + unsigned int hitpoints; // offset 0x2C, size 0x4 + unsigned int soundID; // offset 0x30, size 0x4 + float volume; // offset 0x34, size 0x4 + float minSoundVel; // offset 0x38, size 0x4 + float maxSoundVel; // offset 0x3C, size 0x4 + float innerRadius; // offset 0x40, size 0x4 + float outerRadius; // offset 0x44, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class zFragInfo { + // total size: 0x60 +public: + union { // inferred + class zFragGroup group; // offset 0x0, size 0x54 + class zFragParticle particle; // offset 0x0, size 0x4 + class zFragProjectile projectile; // offset 0x0, size 0x60 + class zFragLightning lightning; // offset 0x0, size 0x10 + class zFragSound sound; // offset 0x0, size 0x14 + class zFragShockwave shockwave; // offset 0x0, size 0x38 + }; +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zFrag { + // total size: 0x84 +public: + enum zFragType type; // offset 0x0, size 0x4 + class zFragInfo info; // offset 0x4, size 0x60 + float delay; // offset 0x64, size 0x4 + float alivetime; // offset 0x68, size 0x4 + float lifetime; // offset 0x6C, size 0x4 + void (* update)(class zFrag *, float); // offset 0x70, size 0x4 + class xModelInstance * parent[2]; // offset 0x74, size 0x8 + class zFrag * prev; // offset 0x7C, size 0x4 + class zFrag * next; // offset 0x80, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class _tagEmitSphere { + // total size: 0x4 +public: + float radius; // offset 0x0, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class rxReq { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class zFragParticle { + // total size: 0x4 +public: + class zFragParticleAsset * fasset; // offset 0x0, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class zFragSoundAsset : public zFragAsset { + // total size: 0x4C +public: + unsigned int assetID; // offset 0x18, size 0x4 + class zFragLocation source; // offset 0x1C, size 0x24 + float volume; // offset 0x40, size 0x4 + float innerRadius; // offset 0x44, size 0x4 + float outerRadius; // offset 0x48, size 0x4 +}; +class zSurfaceProps { + // total size: 0x10C +public: + class zSurfAssetBase * asset; // offset 0x0, size 0x4 + unsigned int texanim_flags; // offset 0x4, size 0x4 + class zSurfacePropTexAnim texanim[2]; // offset 0x8, size 0x30 + unsigned int uvfx_flags; // offset 0x38, size 0x4 + class zSurfacePropUVFX uvfx[2]; // offset 0x3C, size 0xD0 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class ThrowableStats { + // total size: 0x28 +public: + char * name; // offset 0x0, size 0x4 + void (* collCB)(class zThrownStruct *, class xEntCollis *, float *, float *); // offset 0x4, size 0x4 + class CarryableStats * carry; // offset 0x8, size 0x4 + class LaunchStats * launch; // offset 0xC, size 0x4 + class iColor_tag glowColor; // offset 0x10, size 0x4 + char * shrapName; // offset 0x14, size 0x4 + float stackHeight; // offset 0x18, size 0x4 + unsigned int nameHash; // offset 0x1C, size 0x4 + unsigned int nameHashMINF; // offset 0x20, size 0x4 + class zShrapnelAsset * shrapAsset; // offset 0x24, size 0x4 +}; +class CarryableStats { + // total size: 0x4 +public: + float killTimer; // offset 0x0, size 0x4 +}; +class LaunchStats { + // total size: 0xC +public: + float throwSpeedXZ; // offset 0x0, size 0x4 + float throwSpeedY; // offset 0x4, size 0x4 + float collResetTimer; // offset 0x8, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class zFragParticleAsset : public zFragAsset { + // total size: 0x1D4 +public: + class zFragLocation source; // offset 0x18, size 0x24 + class zFragLocation vel; // offset 0x3C, size 0x24 + class xParEmitterCustomSettings emit; // offset 0x60, size 0x16C + unsigned int parEmitterID; // offset 0x1CC, size 0x4 + class zParEmitter * parEmitter; // offset 0x1D0, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class zSurfacePropUVFX { + // total size: 0x68 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + float minmax_timer[2]; // offset 0xC, size 0x8 + class xVec3 trans; // offset 0x14, size 0xC + class xVec3 trans_spd; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + class xVec3 scale_spd; // offset 0x38, size 0xC + class xVec3 min; // offset 0x44, size 0xC + class xVec3 max; // offset 0x50, size 0xC + class xVec3 minmax_spd; // offset 0x5C, size 0xC +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class zSurfColorFX { + // total size: 0x8 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short mode; // offset 0x2, size 0x2 + float speed; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class _tagEmitRect { + // total size: 0x8 +public: + float x_len; // offset 0x0, size 0x4 + float z_len; // offset 0x4, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class zFragProjectile { + // total size: 0x60 +public: + class zFragProjectileAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * model; // offset 0x4, size 0x4 + class xParabola path; // offset 0x8, size 0x24 + float angVel; // offset 0x2C, size 0x4 + float t; // offset 0x30, size 0x4 + float tColl; // offset 0x34, size 0x4 + signed int numBounces; // offset 0x38, size 0x4 + float scale; // offset 0x3C, size 0x4 + float parentScale; // offset 0x40, size 0x4 + float alpha; // offset 0x44, size 0x4 + class xVec3 N; // offset 0x48, size 0xC + class xVec3 axis; // offset 0x54, size 0xC +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zFragProjectileAsset : public zFragAsset { + // total size: 0x90 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + class RpAtomic * modelFile; // offset 0x1C, size 0x4 + class zFragLocation launch; // offset 0x20, size 0x24 + class zFragLocation vel; // offset 0x44, size 0x24 + float bounce; // offset 0x68, size 0x4 + signed int maxBounces; // offset 0x6C, size 0x4 + unsigned int flags; // offset 0x70, size 0x4 + unsigned int childID; // offset 0x74, size 0x4 + class zShrapnelAsset * child; // offset 0x78, size 0x4 + float minScale; // offset 0x7C, size 0x4 + float maxScale; // offset 0x80, size 0x4 + unsigned int scaleCurveID; // offset 0x84, size 0x4 + class xCurveAsset * scaleCurve; // offset 0x88, size 0x4 + float gravity; // offset 0x8C, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class zFragShockwaveAsset : public zFragAsset { + // total size: 0x54 +public: + unsigned int modelInfoID; // offset 0x18, size 0x4 + float birthRadius; // offset 0x1C, size 0x4 + float deathRadius; // offset 0x20, size 0x4 + float birthVelocity; // offset 0x24, size 0x4 + float deathVelocity; // offset 0x28, size 0x4 + float birthSpin; // offset 0x2C, size 0x4 + float deathSpin; // offset 0x30, size 0x4 + float birthColor[4]; // offset 0x34, size 0x10 + float deathColor[4]; // offset 0x44, size 0x10 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class zLightning { + // total size: 0x234 +public: + unsigned int type; // offset 0x0, size 0x4 + unsigned int flags; // offset 0x4, size 0x4 + union { // inferred + class /* @class */ { + // total size: 0x220 + public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 + } legacy; // offset 0x8, size 0x220 + class /* @class */ { + // total size: 0x58 + public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC + } func; // offset 0x8, size 0x58 + }; + class iColor_tag color; // offset 0x228, size 0x4 + float time_left; // offset 0x22C, size 0x4 + float time_total; // offset 0x230, size 0x4 +}; +class xiMat4x3Union { + // total size: 0x40 +public: + union { // inferred + class xMat4x3 xm; // offset 0x0, size 0x40 + class RwMatrixTag im; // offset 0x0, size 0x40 + }; +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xParabola { + // total size: 0x24 +public: + class xVec3 initPos; // offset 0x0, size 0xC + class xVec3 initVel; // offset 0xC, size 0xC + float gravity; // offset 0x18, size 0x4 + float minTime; // offset 0x1C, size 0x4 + float maxTime; // offset 0x20, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +enum zFragLocType { + eFragLocBone = 0, + eFragLocBoneUpdated = 1, + eFragLocBoneLocal = 2, + eFragLocBoneLocalUpdated = 3, + eFragLocTag = 4, + eFragLocTagUpdated = 5, + eFragLocCount = 6, + eFragLocForceSize = 2147483647, +}; +class zSurfUVFX { + // total size: 0x60 +public: + signed int mode; // offset 0x0, size 0x4 + float rot; // offset 0x4, size 0x4 + float rot_spd; // offset 0x8, size 0x4 + class xVec3 trans; // offset 0xC, size 0xC + class xVec3 trans_spd; // offset 0x18, size 0xC + class xVec3 scale; // offset 0x24, size 0xC + class xVec3 scale_spd; // offset 0x30, size 0xC + class xVec3 min; // offset 0x3C, size 0xC + class xVec3 max; // offset 0x48, size 0xC + class xVec3 minmax_spd; // offset 0x54, size 0xC +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xPEEntBound { + // total size: 0xC +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char type; // offset 0x1, size 0x1 + unsigned char pad1; // offset 0x2, size 0x1 + unsigned char pad2; // offset 0x3, size 0x1 + float expand; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class _zEntButton : public zEnt { + // total size: 0x190 +public: + class zEntButtonAsset * basset; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned int state; // offset 0x160, size 0x4 + float speed; // offset 0x164, size 0x4 + unsigned int oldState; // offset 0x168, size 0x4 + signed int oldMotState; // offset 0x16C, size 0x4 + float counter; // offset 0x170, size 0x4 + class xModelInstance * modelPressed; // offset 0x174, size 0x4 + float holdTimer; // offset 0x178, size 0x4 + unsigned int hold; // offset 0x17C, size 0x4 + float topHeight; // offset 0x180, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _tagEmitLine { + // total size: 0x1C +public: + class xVec3 pos1; // offset 0x0, size 0xC + class xVec3 pos2; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xParEmitterCustomSettings : public xParEmitterPropsAsset { + // total size: 0x16C +public: + unsigned int custom_flags; // offset 0x138, size 0x4 + unsigned int attachToID; // offset 0x13C, size 0x4 + class xVec3 pos; // offset 0x140, size 0xC + class xVec3 vel; // offset 0x14C, size 0xC + float vel_angle_variation; // offset 0x158, size 0x4 + unsigned char rot[3]; // offset 0x15C, size 0x3 + unsigned char padding; // offset 0x15F, size 0x1 + float radius; // offset 0x160, size 0x4 + float emit_interval_current; // offset 0x164, size 0x4 + void * emit_volume; // offset 0x168, size 0x4 +}; +class /* @class */ { + // total size: 0x220 +public: + class xVec3 base_point[16]; // offset 0x0, size 0xC0 + class xVec3 point[16]; // offset 0xC0, size 0xC0 + signed short total_points; // offset 0x180, size 0x2 + signed short end_points; // offset 0x182, size 0x2 + float arc_height; // offset 0x184, size 0x4 + class xVec3 arc_normal; // offset 0x188, size 0xC + float thickness[16]; // offset 0x194, size 0x40 + union { // inferred + class _tagLightningLine line; // offset 0x1D4, size 0x4 + class _tagLightningRot rot; // offset 0x1D4, size 0x48 + class _tagLightningZeus zeus; // offset 0x1D4, size 0xC + }; + float rand_radius; // offset 0x21C, size 0x4 +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class zSurfAssetBase : public xBaseAsset { + // total size: 0x12C +public: + unsigned char game_damage_type; // offset 0x8, size 0x1 + unsigned char game_sticky; // offset 0x9, size 0x1 + unsigned char game_damage_flags; // offset 0xA, size 0x1 + unsigned char surf_type; // offset 0xB, size 0x1 + unsigned char phys_pad; // offset 0xC, size 0x1 + unsigned char sld_start; // offset 0xD, size 0x1 + unsigned char sld_stop; // offset 0xE, size 0x1 + unsigned char phys_flags; // offset 0xF, size 0x1 + float friction; // offset 0x10, size 0x4 + class zSurfMatFX matfx; // offset 0x14, size 0x18 + class zSurfColorFX colorfx; // offset 0x2C, size 0x8 + unsigned int texture_anim_flags; // offset 0x34, size 0x4 + class zSurfTextureAnim texture_anim[2]; // offset 0x38, size 0x18 + unsigned int uvfx_flags; // offset 0x50, size 0x4 + class zSurfUVFX uvfx[2]; // offset 0x54, size 0xC0 + unsigned char on; // offset 0x114, size 0x1 + unsigned char surf_pad[3]; // offset 0x115, size 0x3 + float oob_delay; // offset 0x118, size 0x4 + float walljump_scale_xz; // offset 0x11C, size 0x4 + float walljump_scale_y; // offset 0x120, size 0x4 + float damage_timer; // offset 0x124, size 0x4 + float damage_bounce; // offset 0x128, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xSweptSphere { + // total size: 0x150 +public: + class xVec3 start; // offset 0x0, size 0xC + class xVec3 end; // offset 0xC, size 0xC + float radius; // offset 0x18, size 0x4 + float dist; // offset 0x1C, size 0x4 + class xiMat4x3Union basis; // offset 0x20, size 0x40 + class xiMat4x3Union invbasis; // offset 0x60, size 0x40 + class xBox box; // offset 0xA0, size 0x18 + class xQCData qcd; // offset 0xB8, size 0x20 + float boxsize; // offset 0xD8, size 0x4 + float curdist; // offset 0xDC, size 0x4 + class xVec3 contact; // offset 0xE0, size 0xC + class xVec3 polynorm; // offset 0xEC, size 0xC + unsigned int oid; // offset 0xF8, size 0x4 + void * optr; // offset 0xFC, size 0x4 + class xModelInstance * mptr; // offset 0x100, size 0x4 + signed int hitIt; // offset 0x104, size 0x4 + class xVec3 worldPos; // offset 0x108, size 0xC + class xVec3 worldContact; // offset 0x114, size 0xC + class xVec3 worldNormal; // offset 0x120, size 0xC + class xVec3 worldTangent; // offset 0x12C, size 0xC + class xVec3 worldPolynorm; // offset 0x138, size 0xC +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class zFragLightning { + // total size: 0x10 +public: + class zFragLightningAsset * fasset; // offset 0x0, size 0x4 + class xModelInstance * startParent; // offset 0x4, size 0x4 + class xModelInstance * endParent; // offset 0x8, size 0x4 + class zLightning * lightning; // offset 0xC, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class _tagEmitVolume { + // total size: 0x4 +public: + unsigned int emit_volumeID; // offset 0x0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zFragBone { + // total size: 0x10 +public: + signed int index; // offset 0x0, size 0x4 + class xVec3 offset; // offset 0x4, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class zSurfMatFX { + // total size: 0x18 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int bumpmapID; // offset 0x4, size 0x4 + unsigned int envmapID; // offset 0x8, size 0x4 + float shininess; // offset 0xC, size 0x4 + float bumpiness; // offset 0x10, size 0x4 + unsigned int dualmapID; // offset 0x14, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class _tagLightningLine { + // total size: 0x4 +public: + float unused; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zFragAsset { + // total size: 0x18 +public: + enum zFragType type; // offset 0x0, size 0x4 + unsigned int id; // offset 0x4, size 0x4 + unsigned int parentID[2]; // offset 0x8, size 0x8 + float lifetime; // offset 0x10, size 0x4 + float delay; // offset 0x14, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class zEntButtonAsset { + // total size: 0x18 +public: + unsigned int modelPressedInfoID; // offset 0x0, size 0x4 + unsigned int actMethod; // offset 0x4, size 0x4 + signed int initButtonState; // offset 0x8, size 0x4 + signed int isReset; // offset 0xC, size 0x4 + float resetDelay; // offset 0x10, size 0x4 + unsigned int buttonActFlags; // offset 0x14, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xParEmitter : public xBase { + // total size: 0x78 +public: + class xParEmitterAsset * tasset; // offset 0x10, size 0x4 + class xParGroup * group; // offset 0x14, size 0x4 + class xParEmitterPropsAsset * prop; // offset 0x18, size 0x4 + unsigned char rate_mode; // offset 0x1C, size 0x1 + float rate; // offset 0x20, size 0x4 + float rate_time; // offset 0x24, size 0x4 + float rate_fraction; // offset 0x28, size 0x4 + float rate_fraction_cull; // offset 0x2C, size 0x4 + unsigned char emit_flags; // offset 0x30, size 0x1 + unsigned char emit_pad[3]; // offset 0x31, size 0x3 + unsigned char rot[3]; // offset 0x34, size 0x3 + class xModelTag tag; // offset 0x38, size 0x20 + float oocull_distance_sqr; // offset 0x58, size 0x4 + float distance_to_cull_sqr; // offset 0x5C, size 0x4 + void * attachTo; // offset 0x60, size 0x4 + class xParSys * parSys; // offset 0x64, size 0x4 + void * emit_volume; // offset 0x68, size 0x4 + class xVec3 last_attach_loc; // offset 0x6C, size 0xC +}; +class zFragLocInfo { + // total size: 0x20 +public: + union { // inferred + class zFragBone bone; // offset 0x0, size 0x10 + class xModelTag tag; // offset 0x0, size 0x20 + }; +}; +class _tagEmitOffsetPoint { + // total size: 0xC +public: + class xVec3 offset; // offset 0x0, size 0xC +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class _tagLightningRot { + // total size: 0x48 +public: + float deg[16]; // offset 0x0, size 0x40 + float degrees; // offset 0x40, size 0x4 + float height; // offset 0x44, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class zFragSound { + // total size: 0x14 +public: + class zFragSoundAsset * fasset; // offset 0x0, size 0x4 + class xVec3 location; // offset 0x4, size 0xC + unsigned int soundID; // offset 0x10, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xPEVCyl { + // total size: 0xC +public: + float height; // offset 0x0, size 0x4 + float radius; // offset 0x4, size 0x4 + float deflection; // offset 0x8, size 0x4 +}; +class zFragLocation { + // total size: 0x24 +public: + enum zFragLocType type; // offset 0x0, size 0x4 + class zFragLocInfo info; // offset 0x4, size 0x20 +}; +class /* @class */ { + // total size: 0x58 +public: + class xVec3 endPoint[2]; // offset 0x0, size 0x18 + class xVec3 direction; // offset 0x18, size 0xC + float length; // offset 0x24, size 0x4 + float scale; // offset 0x28, size 0x4 + float width; // offset 0x2C, size 0x4 + float endParam[2]; // offset 0x30, size 0x8 + float endVel[2]; // offset 0x38, size 0x8 + float paramSpan[2]; // offset 0x40, size 0x8 + float arc_height; // offset 0x48, size 0x4 + class xVec3 arc_normal; // offset 0x4C, size 0xC +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xParInterp { + // total size: 0x14 +public: + float val[2]; // offset 0x0, size 0x8 + unsigned int interp; // offset 0x8, size 0x4 + float freq; // offset 0xC, size 0x4 + float oofreq; // offset 0x10, size 0x4 +}; +class zFragShockwave { + // total size: 0x38 +public: + class zFragShockwaveAsset * fasset; // offset 0x0, size 0x4 + float currSize; // offset 0x4, size 0x4 + float currVelocity; // offset 0x8, size 0x4 + float deltVelocity; // offset 0xC, size 0x4 + float currSpin; // offset 0x10, size 0x4 + float deltSpin; // offset 0x14, size 0x4 + float currColor[4]; // offset 0x18, size 0x10 + float deltColor[4]; // offset 0x28, size 0x10 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagLightningZeus { + // total size: 0xC +public: + float normal_offset; // offset 0x0, size 0x4 + float back_offset; // offset 0x4, size 0x4 + float side_offset; // offset 0x8, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FAF0 -> 0x0027FB44 +*/ +// Range: 0x27FAF0 -> 0x27FB44 +static class xBase * zThrown_ButtonIteratorCB(class xBase * b /* r16 */, void * user /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FAF0 -> 0x27FB44 + class _zEntButton * button; // r2 + class xCollis coll; // r29+0x20 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FB50 -> 0x0027FBB0 +*/ +// Range: 0x27FB50 -> 0x27FBB0 +signed int zThrown_IsStacked(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FB50 -> 0x27FBB0 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FBB0 -> 0x0027FC38 +*/ +// Range: 0x27FBB0 -> 0x27FC38 +signed int zThrown_IsFruit(class xEnt * ent /* r2 */, float * stackHeight /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FBB0 -> 0x27FC38 + class ThrowableStats * stats; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FC40 -> 0x0027FE00 +*/ +// Range: 0x27FC40 -> 0x27FE00 +static void zThrownCollide_StoneTiki(class zThrownStruct * thrown /* r19 */, class xEntCollis * collis /* r18 */, float * bounce /* r17 */, float * friction /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FC40 -> 0x27FE00 + unsigned int collidx; // r22 + class xEnt * hitent; // r21 + unsigned int collfound; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FE00 -> 0x0027FE58 +*/ +// Range: 0x27FE00 -> 0x27FE58 +static void zThrownCollide_Tiki(class zThrownStruct * thrown /* r18 */, class xEntCollis * collis /* r2 */, float * bounce /* r17 */, float * friction /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FE00 -> 0x27FE58 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FE60 -> 0x0027FEA0 +*/ +// Range: 0x27FE60 -> 0x27FEA0 +static void zThrownCollide_BSandyHead(class zThrownStruct * thrown /* r2 */, class xEntCollis * collis /* r2 */, float * bounce /* r17 */, float * friction /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FE60 -> 0x27FEA0 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FEA0 -> 0x0027FEF8 +*/ +// Range: 0x27FEA0 -> 0x27FEF8 +static void zThrownCollide_DestructObj(class zThrownStruct * thrown /* r18 */, class xEntCollis * collis /* r2 */, float * bounce /* r17 */, float * friction /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FEA0 -> 0x27FEF8 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FF00 -> 0x0027FF24 +*/ +// Range: 0x27FF00 -> 0x27FF24 +static void zThrownCollide_ThrowFreeze(class zThrownStruct * thrown /* r2 */, class xEntCollis * collis /* r2 */, float * bounce /* r2 */, float * friction /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FF00 -> 0x27FF24 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0027FF30 -> 0x002804FC +*/ +// Range: 0x27FF30 -> 0x2804FC +static void zThrownCollide_ThrowFruit(class zThrownStruct * thrown /* r19 */, class xEntCollis * collis /* r18 */, float * bounce /* r17 */, float * friction /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x27FF30 -> 0x2804FC + unsigned int collfound; // r4 + float stackHeight; // r29+0x5C + class xEnt * landEnt; // r3 + unsigned int i; // r10 + float killTimer; // r5 + float dx; // r3 + float dz; // r1 + class xEnt * landEnt; // r2 + float velmag; // r2 + float lerp; // r1 + float stackHeight; // r29+0x58 + class xEnt * landEnt; // r3 + unsigned int i; // r10 + float killTimer; // r7 + float dx; // r6 + float dy; // r3 + float dz; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00280500 -> 0x002807A4 +*/ +// Range: 0x280500 -> 0x2807A4 +static signed int zThrownCollide_CauseDamage(class zThrownStruct * thrown /* r21 */, class xEntCollis * collis /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x280500 -> 0x2807A4 + signed int damageInflicted; // r20 + unsigned int collidx; // r19 + class xCollis * currcoll; // r18 + class xEnt * hitent; // r17 + float dummy; // r29+0x9C + class xVec3 pos; // r29+0x90 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002807B0 -> 0x00280850 +*/ +// Range: 0x2807B0 -> 0x280850 +signed int zThrown_KillFruit(class xEnt * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2807B0 -> 0x280850 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00280850 -> 0x00280BB4 +*/ +// Range: 0x280850 -> 0x280BB4 +void zThrown_Remove(class xEnt * ent /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x280850 -> 0x280BB4 + unsigned int i; // r6 + class xModelInstance * mod; // r14 + void (* thisCollCB)(class zThrownStruct *, class xEntCollis *, float *, float *); // r18 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00280BC0 -> 0x00280E78 +*/ +// Range: 0x280BC0 -> 0x280E78 +void zThrown_AddFruit(class xEnt * ent /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x280BC0 -> 0x280E78 + unsigned int i; // r7 + class ThrowableStats * stats; // r7 + class zThrownStruct * newThrown; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00280E80 -> 0x00280EE8 +*/ +// Range: 0x280E80 -> 0x280EE8 +void zThrown_PatrickLauncher(class xEnt * ent /* r2 */, class xEnt * launcher /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x280E80 -> 0x280EE8 + unsigned int i; // r8 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00280EF0 -> 0x0028109C +*/ +// Range: 0x280EF0 -> 0x28109C +void zThrown_LaunchStack(class xEnt * ent /* r17 */, class xEnt * stackTgt /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x280EF0 -> 0x28109C + class xVec3 stackPos; // r29+0x60 + class xVec3 stackDir; // r29+0x50 + class xBox tmpbox; // r29+0x30 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002810A0 -> 0x00281264 +*/ +// Range: 0x2810A0 -> 0x281264 +signed int zThrown_LaunchPos(class xEnt * ent /* r2 */, class xVec3 * pos /* r2 */, class xVec3 * dir /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2810A0 -> 0x281264 + signed int retval; // r16 + class ThrowableStats * stats; // r8 + float grav; // r5 + float tpeak; // r6 + float hpeak; // r2 + class xVec3 tempVel; // r29+0x20 + float speed; // r1 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00281270 -> 0x00281320 +*/ +// Range: 0x281270 -> 0x281320 +void zThrown_LaunchDir(class xEnt * ent /* r2 */, class xVec3 * dir /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x281270 -> 0x281320 + class ThrowableStats * stats; // r7 + class xVec3 tempVel; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00281320 -> 0x00281594 +*/ +// Range: 0x281320 -> 0x281594 +void zThrown_LaunchVel(class xEnt * ent /* r19 */, class xVec3 * vel /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x281320 -> 0x281594 + class ThrowableStats * stats; // r17 + class zThrownStruct * newThrown; // r16 + unsigned int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002815A0 -> 0x00281650 +*/ +// Range: 0x2815A0 -> 0x281650 +void zThrown_Reset() { + // Blocks + /* anonymous block */ { + // Range: 0x2815A0 -> 0x281650 + unsigned int i; // r3 + class xModelInstance * mod; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00281650 -> 0x002829C0 +*/ +// Range: 0x281650 -> 0x2829C0 +static void zThrown_Update(class xEnt * ent /* r20 */, class xScene * sc /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x281650 -> 0x2829C0 + unsigned int i; // r5 + unsigned int removethis; // r29+0xB0 + class zThrownStruct * thrown; // r19 + class xVec3 oldpos; // r29+0x858 + class xVec3 stackDelta; // r29+0x848 + class xEntCollis collis; // r29+0x270 + class xEntCollis * oldcollis; // r21 + class xBound oldbound; // r29+0x220 + unsigned char oldpflags; // r22 + unsigned char oldcollType; // r23 + void (* old_bupdateFunc)(class xEnt *, class xVec3 *); // r30 + float oldgrav; // r21 + float posdot; // r2 + class xVec3 velunit; // r29+0x838 + class xSweptSphere sws; // r29+0xD0 + class xVec3 start; // r29+0x828 + float lerp; // r2 + float lerpdist; // r4 + class xCollis * coll; // r18 + class xCollis * cend; // r17 + class xSurface * surf; // r2 + class zSurfaceProps * prop; // r2 + float bounce; // r29+0x86C + float friction; // r29+0x868 + float dothdng; // r29+0x870 + float boxX; // r10 + float boxYupper; // r1 + float boxZ; // r5 + class zShrapnelAsset * shrap; // r2 + class xCollis * fcoll; // r16 + float fruitPattern[18]; // @ 0x0041A570 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002829C0 -> 0x00282C34 +*/ +// Range: 0x2829C0 -> 0x282C34 +static void Recurse_TranslateStack(class xEnt * ent /* r29+0xAC */, class xVec3 * delta /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2829C0 -> 0x282C34 + unsigned int i; // r23 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x00282C40 -> 0x002830CC +*/ +// Range: 0x282C40 -> 0x2830CC +static void zFruit_Update(class xEnt * ent /* r18 */, class xScene * sc /* r17 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x282C40 -> 0x2830CC + unsigned int i; // r5 + class zThrownStruct * thrown; // r16 + class zShrapnelAsset * shrap; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zThrown.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x002830D0 -> 0x002832B4 +*/ +// Range: 0x2830D0 -> 0x2832B4 +void zThrown_Setup(class zScene * sc /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x2830D0 -> 0x2832B4 + unsigned int i; // r4 + class ThrowableStats * stats; // r17 + char tmpstr[256]; // r29+0x30 + } +} + diff --git a/dwarf/SB/Game/zUI.cpp b/dwarf/SB/Game/zUI.cpp new file mode 100644 index 000000000..254f4ecd9 --- /dev/null +++ b/dwarf/SB/Game/zUI.cpp @@ -0,0 +1,3006 @@ +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static unsigned int sSortedCount; // size: 0x4, address: 0x50F724 +class _zUI * sSorted[768]; // size: 0xC00, address: 0x52EFB0 +static class RwSky2DVertex Vertex[4]; // size: 0x100, address: 0x52FBB0 +static unsigned short Index[6]; // size: 0xC, address: 0x416520 +static unsigned int cKeyUIid1off; // size: 0x4, address: 0x50F728 +static unsigned int cKeyUIid2off; // size: 0x4, address: 0x50F72C +static unsigned int cKeyUIid3off; // size: 0x4, address: 0x50F730 +static unsigned int cKeyUIid4off; // size: 0x4, address: 0x50F734 +static unsigned int cKeyUIid1on; // size: 0x4, address: 0x50F738 +static unsigned int cKeyUIid2on; // size: 0x4, address: 0x50F73C +static unsigned int cKeyUIid3on; // size: 0x4, address: 0x50F740 +static unsigned int cKeyUIid4on; // size: 0x4, address: 0x50F744 +static char patsock_text_buffer[6]; // size: 0x6, address: 0x50E7E0 +static class _zUI * patsock_ui; // size: 0x4, address: 0x50F748 +static class zUIFont * patsock_uif; // size: 0x4, address: 0x50F74C +static unsigned int patsock_prev_world; // size: 0x4, address: 0x50E7E8 +static unsigned int patsock_prev_count; // size: 0x4, address: 0x50E7EC +class zUIMgr gUIMgr; // size: 0x20, address: 0x52FCB0 +static float ushift; // size: 0x4, address: 0x50F750 +static class menuWorldInfo sWorldInfo[15]; // size: 0x3C0, address: 0x416540 +static class menuWorld sWorld[15]; // size: 0x2274, address: 0x52FCE0 +class _zUI * sTakeTaxi; // size: 0x4, address: 0x50F754 +class _zUI * sNoneTaskDesc; // size: 0x4, address: 0x50F758 +class _zUI * sCurrTaskDesc; // size: 0x4, address: 0x50F75C +unsigned int sCurrWorld; // size: 0x4, address: 0x50F760 +unsigned int sCurrTask; // size: 0x4, address: 0x50F764 +class _zUI * sPauseManager; // size: 0x4, address: 0x50F768 +class _zUI * sConfirmation; // size: 0x4, address: 0x50F76C +class xGroup * sTaxiConfirmGrp; // size: 0x4, address: 0x50F770 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +enum _CurrentPlayer gPendingPlayer; // size: 0x4, address: 0x50E6F4 +signed int zUIPortalEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x19F740 +signed int iRenderQSort_Face(void *, void *); // size: 0x0, address: 0x1A08C0 +class xBase * zUIRenderIteratorInsert(class xBase *, class zScene *, void *); // size: 0x0, address: 0x1A09D0 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +class _tagxPad mPad[4]; // size: 0x520, address: 0x568E70 +class xScene * g_xSceneCur; // size: 0x4, address: 0x50FAB4 +signed int zUIEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x19F9D0 +void zUI_Update(class _zUI *, class xScene *, float); // size: 0x0, address: 0x1A0A00 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class zUIMgr : public xMgr { + // total size: 0x20 +public: + signed int m_preUpdateStart; // offset 0x0, size 0x4 + signed int m_preUpdateEnd; // offset 0x4, size 0x4 + unsigned int m_preUpdateMax; // offset 0x8, size 0x4 + class _zUI * * m_preUpdate; // offset 0xC, size 0x4 + signed int m_updateStart; // offset 0x10, size 0x4 + signed int m_updateEnd; // offset 0x14, size 0x4 + unsigned int m_updateMax; // offset 0x18, size 0x4 + class _zUI * * m_update; // offset 0x1C, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class xMgr { + // total size: 0x1 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class RwSky2DVertex { + // total size: 0x40 +public: + class RwSky2DVertexAlignmentOverlay u; // offset 0x0, size 0x40 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xIniFile { + // total size: 0x214 +public: + signed int NumValues; // offset 0x0, size 0x4 + signed int NumSections; // offset 0x4, size 0x4 + class xIniValue * Values; // offset 0x8, size 0x4 + class xIniSection * Sections; // offset 0xC, size 0x4 + void * mem; // offset 0x10, size 0x4 + char name[256]; // offset 0x14, size 0x100 + char pathname[256]; // offset 0x114, size 0x100 +}; +class zUIFont : public _zUI { + // total size: 0xFC +public: + class zUIFontAsset * fasset; // offset 0xE4, size 0x4 + unsigned short uiFontFlags; // offset 0xE8, size 0x2 + unsigned short uiFontHackFlags; // offset 0xEA, size 0x2 + unsigned int text_id; // offset 0xEC, size 0x4 + float yscroll; // offset 0xF0, size 0x4 + unsigned int text_index; // offset 0xF4, size 0x4 + char * text; // offset 0xF8, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xCounterAsset : public xBaseAsset { + // total size: 0xC +public: + signed short count; // offset 0x8, size 0x2 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class menuTask { + // total size: 0x48 +public: + class _zUI * uiSelected; // offset 0x0, size 0x4 + class _zUI * uiSpatOutline; // offset 0x4, size 0x4 + class _zUI * uiSpatGray; // offset 0x8, size 0x4 + class _zUI * uiSpatGold; // offset 0xC, size 0x4 + class _zUI * uiTaskDesc; // offset 0x10, size 0x4 + class _xCounter * counter; // offset 0x14, size 0x4 + char levelSuffix[2]; // offset 0x18, size 0x2 + class _zPortal portal; // offset 0x1C, size 0x14 + class xPortalAsset portalAsset; // offset 0x30, size 0x18 +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class xIniValue { + // total size: 0x8 +public: + char * tok; // offset 0x0, size 0x4 + char * val; // offset 0x4, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class xIniSection { + // total size: 0xC +public: + char * sec; // offset 0x0, size 0x4 + signed int first; // offset 0x4, size 0x4 + signed int count; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xModelAssetInfo { + // total size: 0x14 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int NumModelInst; // offset 0x4, size 0x4 + unsigned int AnimTableID; // offset 0x8, size 0x4 + unsigned int CombatID; // offset 0xC, size 0x4 + unsigned int BrainID; // offset 0x10, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class _xCounter : public xBase { + // total size: 0x18 +public: + class xCounterAsset * asset; // offset 0x10, size 0x4 + signed short count; // offset 0x14, size 0x2 + unsigned char state; // offset 0x16, size 0x1 + unsigned char counterFlags; // offset 0x17, size 0x1 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class menuWorld { + // total size: 0x24C +public: + class _zUI * uiSelected; // offset 0x0, size 0x4 + char worldPrefix[2]; // offset 0x4, size 0x2 + unsigned int numTasks; // offset 0x8, size 0x4 + class menuTask task[8]; // offset 0xC, size 0x240 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class zUIFontAsset : public zUIAsset { + // total size: 0xA4 +public: + unsigned short uiFontFlags; // offset 0x80, size 0x2 + unsigned char mode; // offset 0x82, size 0x1 + unsigned char fontID; // offset 0x83, size 0x1 + unsigned int textAssetID; // offset 0x84, size 0x4 + unsigned char bcolor[4]; // offset 0x88, size 0x4 + unsigned char color[4]; // offset 0x8C, size 0x4 + unsigned short inset[4]; // offset 0x90, size 0x8 + unsigned short space[2]; // offset 0x98, size 0x4 + unsigned short cdim[2]; // offset 0x9C, size 0x4 + unsigned int max_height; // offset 0xA0, size 0x4 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class menuTaskInfo { + // total size: 0x8 +public: + float ang; // offset 0x0, size 0x4 + enum _CurrentPlayer player; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +class menuWorldInfo { + // total size: 0x40 +public: + class menuTaskInfo taskInfo[8]; // offset 0x0, size 0x40 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class RwSky2DVertexFields { + // total size: 0x40 +public: + class RwV3d scrVertex; // offset 0x0, size 0xC + float camVertex_z; // offset 0xC, size 0x4 + float u; // offset 0x10, size 0x4 + float v; // offset 0x14, size 0x4 + float recipZ; // offset 0x18, size 0x4 + float pad1; // offset 0x1C, size 0x4 + class RwRGBAReal color; // offset 0x20, size 0x10 + class RwV3d objNormal; // offset 0x30, size 0xC + float pad2; // offset 0x3C, size 0x4 +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class RwSky2DVertexAlignmentOverlay { + // total size: 0x40 +public: + union { // inferred + class RwSky2DVertexFields els; // offset 0x0, size 0x40 + __int128 qWords[4]; // offset 0x0, size 0x40 + }; +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019E050 -> 0x0019E0F0 +*/ +// Range: 0x19E050 -> 0x19E0F0 +void zUI_ScenePortalLoad(class xSerial * s /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19E050 -> 0x19E0F0 + unsigned int i; // r19 + unsigned int j; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019E0F0 -> 0x0019E190 +*/ +// Range: 0x19E0F0 -> 0x19E190 +void zUI_ScenePortalSave(class xSerial * s /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19E0F0 -> 0x19E190 + unsigned int i; // r19 + unsigned int j; // r18 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019E190 -> 0x0019E764 +*/ +// Range: 0x19E190 -> 0x19E764 +void zUI_ScenePortalUpdate() { + // Blocks + /* anonymous block */ { + // Range: 0x19E190 -> 0x19E764 + unsigned int i; // r17 + unsigned int j; // r16 + class _zUI * select; // r5 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019E770 -> 0x0019E84C +*/ +// Range: 0x19E770 -> 0x19E84C +void zUI_PortalToKrabs(unsigned int taskNum /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19E770 -> 0x19E84C + class xPortalAsset * portal; // r17 + signed int c1; // r16 + signed int c2; // r18 + char tempString[32]; // r29+0x40 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019E850 -> 0x0019E98C +*/ +// Range: 0x19E850 -> 0x19E98C +static void refresh_patsocks(unsigned int world /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19E850 -> 0x19E98C + unsigned int count; // r2 + unsigned int max; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019E990 -> 0x0019F6E0 +*/ +// Range: 0x19E990 -> 0x19F6E0 +void zUI_ScenePortalInit(class zScene * zsc /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19E990 -> 0x19F6E0 + unsigned int i; // r19 + unsigned int j; // r21 + char c; // r18 + char c2; // r19 + char tempString[32]; // r29+0xB0 + unsigned int uiID; // r2 + class _zUI * ui; // r6 + unsigned int id; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019F6E0 -> 0x0019F740 +*/ +// Range: 0x19F6E0 -> 0x19F740 +void zUI_ScenePortalSetToCurrentLevel(class zScene * zsc /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19F6E0 -> 0x19F740 + unsigned int i; // r7 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019F740 -> 0x0019F814 +*/ +// Range: 0x19F740 -> 0x19F814 +signed int zUIPortalEventCB(class xBase * from /* r2 */, class xBase * to /* r18 */, unsigned int toEvent /* r17 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19F740 -> 0x19F814 + signed int result; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019F820 -> 0x0019F9C8 +*/ +// Range: 0x19F820 -> 0x19F9C8 +void zUI_ParseINI(class xIniFile * ini /* r21 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19F820 -> 0x19F9C8 + char itemName[16]; // r29+0x80 + char * value; // r2 + char * tok; // r2 + char * ltok; // r29+0x9C + unsigned int i; // r20 + unsigned int j; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019F9D0 -> 0x0019FD0C +*/ +// Range: 0x19F9D0 -> 0x19FD0C +signed int zUIEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */, float * toParam /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19F9D0 -> 0x19FD0C + class _zUI * s; // r16 + unsigned int theTextureID; // r17 + class RwTexture * texture; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x0019FD10 -> 0x001A0730 +*/ +// Range: 0x19FD10 -> 0x1A0730 +void zUI_Render(class xEnt * ent /* r18 */) { + // Blocks + /* anonymous block */ { + // Range: 0x19FD10 -> 0x1A0730 + class _zUI * ui; // r2 + class RwTexture * texture; // r2 + class RwRaster * raster; // r2 + unsigned char r; // r17 + unsigned char g; // r2 + unsigned char b; // r2 + unsigned char a; // r2 + class RwCamera * camera; // r16 + float w; // r5 + float h; // r4 + float u1; // r31 + float v1; // r30 + float u2; // r29 + float v2; // r28 + float u3; // r27 + float v3; // r26 + float u4; // r25 + float v4; // r24 + float x1; // r23 + float y1; // r22 + float x2; // r21 + float y2; // r20 + float z; // r29+0x80 + float cz; // r2 + float cooz; // r1 + class zUIAsset & a; // r2 + class basic_rect r; // r29+0x70 + unsigned int srcblend; // r2 + unsigned int destblend; // r16 + class xVec3 to; // @ 0x0052FCD0 + class xVec3 from; // @ 0x00416530 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A0730 -> 0x001A08C0 +*/ +// Range: 0x1A0730 -> 0x1A08C0 +void zUIRenderAll() { + // Blocks + /* anonymous block */ { + // Range: 0x1A0730 -> 0x1A08C0 + unsigned char rendering_models; // r18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A08C0 -> 0x001A09C8 +*/ +// Range: 0x1A08C0 -> 0x1A09C8 +signed int iRenderQSort_Face(void * arg1 /* r2 */, void * arg2 /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A08C0 -> 0x1A09C8 + class _zUI * f1; // r7 + class _zUI * f2; // r6 + unsigned char font1; // r5 + unsigned char font2; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A09D0 -> 0x001A09FC +*/ +// Range: 0x1A09D0 -> 0x1A09FC +static class xBase * zUIRenderIteratorInsert(class xBase * b /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A09D0 -> 0x1A09FC + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A0A00 -> 0x001A0C80 +*/ +// Range: 0x1A0A00 -> 0x1A0C80 +void zUI_Update(class _zUI * ent /* r16 */, float dt /* r29+0x20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A0A00 -> 0x1A0C80 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A0C80 -> 0x001A1044 +*/ +// Range: 0x1A0C80 -> 0x1A1044 +void zUI_PreUpdate(class _zUI * ent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A0C80 -> 0x1A1044 + class _zUI * ui; // r18 + signed int i; // r17 + class _tagxPad * pad; // r3 + class _tagxPad * p; // r19 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1050 -> 0x001A110C +*/ +// Range: 0x1A1050 -> 0x1A110C +void zUI_Reset(class _zUI * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1050 -> 0x1A110C + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1110 -> 0x001A1118 +*/ +// Range: 0x1A1110 -> 0x1A1118 +void zUI_Load(class _zUI * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1110 -> 0x1A1118 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1120 -> 0x001A1128 +*/ +// Range: 0x1A1120 -> 0x1A1128 +void zUI_Save(class _zUI * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1120 -> 0x1A1128 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1130 -> 0x001A13C8 +*/ +// Range: 0x1A1130 -> 0x1A13C8 +void zUI_Init(class _zUI * ent /* r17 */, class xEntAsset * asset /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1130 -> 0x1A13C8 + class zUIAsset * sasset; // r2 + class xSurface * surf; // r2 + class xModelInstance * minst; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A13D0 -> 0x001A1484 +*/ +// Range: 0x1A13D0 -> 0x1A1484 +static void load_anim_list(class _zUI & ui /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A13D0 -> 0x1A1484 + class zUIAsset & a; // r16 + signed int used; // r2 + class xAnimState * ast; // r2 + class xAnimSingle * single; // r4 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1490 -> 0x001A1498 +*/ +// Range: 0x1A1490 -> 0x1A1498 +void zUI_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1490 -> 0x1A1498 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A14A0 -> 0x001A14A8 +*/ +// Range: 0x1A14A0 -> 0x1A14A8 +void zUI_Init() { + // Blocks + /* anonymous block */ { + // Range: 0x1A14A0 -> 0x1A14A8 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A14B0 -> 0x001A15D8 +*/ +// Range: 0x1A14B0 -> 0x1A15D8 +void Remove(class zUIMgr * this /* r2 */, class _zUI * ui /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A14B0 -> 0x1A15D8 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A15E0 -> 0x001A16FC +*/ +// Range: 0x1A15E0 -> 0x1A16FC +void Touch(class zUIMgr * this /* r17 */, class _zUI * ui /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A15E0 -> 0x1A16FC + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1700 -> 0x001A18A0 +*/ +// Range: 0x1A1700 -> 0x1A18A0 +void Setup(class zUIMgr * this /* r17 */, class zScene * s /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1700 -> 0x1A18A0 + unsigned int count; // r20 + unsigned int arraySize; // r19 + class _zUI * ui; // r4 + unsigned int i; // r3 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A18A0 -> 0x001A1948 +*/ +// Range: 0x1A18A0 -> 0x1A1948 +void Update(class zUIMgr * this /* r19 */, class zScene * s /* r18 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A18A0 -> 0x1A1948 + unsigned int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zUI.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1950 -> 0x001A19FC +*/ +// Range: 0x1A1950 -> 0x1A19FC +void PreUpdate(class zScene * s /* r16 */, float dt /* r20 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1950 -> 0x1A19FC + class _zUI * ui; // r6 + unsigned int i; // r5 + class _zUI * ui; // r18 + unsigned int i; // r17 + } +} + diff --git a/dwarf/SB/Game/zUIFont.cpp b/dwarf/SB/Game/zUIFont.cpp new file mode 100644 index 000000000..856178a5f --- /dev/null +++ b/dwarf/SB/Game/zUIFont.cpp @@ -0,0 +1,1519 @@ +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +class _tagTRCPadInfo gTrcPad[4]; // size: 0x30, address: 0x5BA970 +signed int zUIFontEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x1A2100 +void zUIFont_Update(class zUIFont *, class xScene *, float); // size: 0x0, address: 0x1A2310 +void zUIFont_Render(class xEnt *); // size: 0x0, address: 0x1A1A00 +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zUIFont : public _zUI { + // total size: 0xFC +public: + class zUIFontAsset * fasset; // offset 0xE4, size 0x4 + unsigned short uiFontFlags; // offset 0xE8, size 0x2 + unsigned short uiFontHackFlags; // offset 0xEA, size 0x2 + unsigned int text_id; // offset 0xEC, size 0x4 + float yscroll; // offset 0xF0, size 0x4 + unsigned int text_index; // offset 0xF4, size 0x4 + char * text; // offset 0xF8, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class _zUI : public zEnt { + // total size: 0xE4 +public: + class zUIAsset * sasset; // offset 0xD4, size 0x4 + unsigned int uiFlags; // offset 0xD8, size 0x4 + unsigned int uiButton; // offset 0xDC, size 0x4 + unsigned short preUpdateIndex; // offset 0xE0, size 0x2 + unsigned short updateIndex; // offset 0xE2, size 0x2 +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zUIAsset : public xEntAsset { + // total size: 0x80 +public: + unsigned int uiFlags; // offset 0x54, size 0x4 + unsigned short dim[2]; // offset 0x58, size 0x4 + unsigned int textureID; // offset 0x5C, size 0x4 + float uva[2]; // offset 0x60, size 0x8 + float uvb[2]; // offset 0x68, size 0x8 + float uvc[2]; // offset 0x70, size 0x8 + float uvd[2]; // offset 0x78, size 0x8 +}; +class _tagTRCPadInfo : public _tagiTRCPadInfo { + // total size: 0xC +public: + signed int id; // offset 0x4, size 0x4 + enum _tagTRCState state; // offset 0x8, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class xSerial { + // total size: 0x1C +public: + unsigned int idtag; // offset 0x0, size 0x4 + signed int baseoff; // offset 0x4, size 0x4 + class st_SERIAL_CLIENTINFO * ctxtdata; // offset 0x8, size 0x4 + signed int warned; // offset 0xC, size 0x4 + signed int curele; // offset 0x10, size 0x4 + signed int bitidx; // offset 0x14, size 0x4 + signed int bittally; // offset 0x18, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class zUIFontAsset : public zUIAsset { + // total size: 0xA4 +public: + unsigned short uiFontFlags; // offset 0x80, size 0x2 + unsigned char mode; // offset 0x82, size 0x1 + unsigned char fontID; // offset 0x83, size 0x1 + unsigned int textAssetID; // offset 0x84, size 0x4 + unsigned char bcolor[4]; // offset 0x88, size 0x4 + unsigned char color[4]; // offset 0x8C, size 0x4 + unsigned short inset[4]; // offset 0x90, size 0x8 + unsigned short space[2]; // offset 0x98, size 0x4 + unsigned short cdim[2]; // offset 0x9C, size 0x4 + unsigned int max_height; // offset 0xA0, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class _tagiTRCPadInfo { + // total size: 0x4 +public: + enum _tagPadInit pad_init; // offset 0x0, size 0x4 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +enum _tagPadInit { + ePadInit_Open1 = 0, + ePadInit_WaitStable2 = 1, + ePadInit_EnableAnalog3 = 2, + ePadInit_EnableAnalog3LetsAllPissOffChris = 3, + ePadInit_EnableRumble4 = 4, + ePadInit_EnableRumbleTest5 = 5, + ePadInit_PressureS6 = 6, + ePadInit_PressureSTest7 = 7, + ePadInit_Complete8a = 8, + ePadInit_Complete8b = 9, + ePadInit_Finished9 = 10, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class st_SERIAL_CLIENTINFO { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum _tagTRCState { + TRC_Unknown = 0, + TRC_PadMissing = 1, + TRC_PadInserted = 2, + TRC_PadInvalidNoAnalog = 3, + TRC_PadInvalidType = 4, + TRC_DiskNotIdentified = 5, + TRC_DiskIdentified = 6, + TRC_DiskTrayOpen = 7, + TRC_DiskTrayClosed = 8, + TRC_DiskNoDisk = 9, + TRC_DiskInvalid = 10, + TRC_DiskRetry = 11, + TRC_DiskFatal = 12, + TRC_Total = 13, +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A1A00 -> 0x001A20F4 +*/ +// Range: 0x1A1A00 -> 0x1A20F4 +void zUIFont_Render(class xEnt * e /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A1A00 -> 0x1A20F4 + class zUIFont * ent; // r18 + class zUIFontAsset & a; // r17 + class basic_rect r; // r29+0xE0 + class xtextbox tb; // r29+0x70 + signed int size; // r29+0xFC + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2100 -> 0x001A230C +*/ +// Range: 0x1A2100 -> 0x1A230C +signed int zUIFontEventCB(class xBase * from /* r2 */, class xBase * to /* r2 */, unsigned int toEvent /* r18 */, float * toParam /* r2 */, class xBase * toParamWidget /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2100 -> 0x1A230C + signed int rval; // r17 + class zUIFont * s; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2310 -> 0x001A25FC +*/ +// Range: 0x1A2310 -> 0x1A25FC +void zUIFont_Update(class zUIFont * ent /* r16 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2310 -> 0x1A25FC + class _zUI * ui; // r2 + class xBase * sendTo; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2600 -> 0x001A2608 +*/ +// Range: 0x1A2600 -> 0x1A2608 +void zUIFont_PreUpdate(class zUIFont * ent /* r2 */, class xScene * sc /* r2 */, float dt /* r29 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2600 -> 0x1A2608 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2610 -> 0x001A2618 +*/ +// Range: 0x1A2610 -> 0x1A2618 +void zUIFont_Load(class zUIFont * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2610 -> 0x1A2618 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2620 -> 0x001A2628 +*/ +// Range: 0x1A2620 -> 0x1A2628 +void zUIFont_Save(class zUIFont * ent /* r2 */, class xSerial * s /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2620 -> 0x1A2628 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2630 -> 0x001A27D8 +*/ +// Range: 0x1A2630 -> 0x1A27D8 +void zUIFont_Init(class zUIFont * ent /* r16 */, class xEntAsset * asset /* r17 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2630 -> 0x1A27D8 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A27E0 -> 0x001A27E8 +*/ +// Range: 0x1A27E0 -> 0x1A27E8 +void zUIFont_Init(void * ent /* r2 */, void * asset /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A27E0 -> 0x1A27E8 + } +} + +/* + Compile unit: C:\SB\Game\zUIFont.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A27F0 -> 0x001A27F8 +*/ +// Range: 0x1A27F0 -> 0x1A27F8 +void zUIFontInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1A27F0 -> 0x1A27F8 + } +} + diff --git a/dwarf/SB/Game/zVar.cpp b/dwarf/SB/Game/zVar.cpp new file mode 100644 index 000000000..9a922b71d --- /dev/null +++ b/dwarf/SB/Game/zVar.cpp @@ -0,0 +1,3545 @@ +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +static class basic_rect screen_bounds; // size: 0x10, address: 0x0 +static class basic_rect default_adjust; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +signed int bad_card_available; // size: 0x4, address: 0x50F774 +signed int bad_card_needed; // size: 0x4, address: 0x50F778 +static unsigned int selSceneID; // size: 0x4, address: 0x50F77C +static class var_type vars[39]; // size: 0x1D4, address: 0x416970 +class zVarEntry zVarEntryTable[19]; // size: 0x130, address: 0x416B70 +class zVarMagicEntry sVarMagicEntryTrable[23]; // size: 0x114, address: 0x0 +signed int sVarMagicInit; // size: 0x4, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +class xSndGlobals gSnd; // size: 0x13A0, address: 0x5B7800 +enum _CurrentPlayer gCurrentPlayer; // size: 0x4, address: 0x50F3EC +class zSaveLoadGame zSaveLoadGameTable[]; // size: 0x0, address: 0x52EBA0 +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class xEntMotionPenData { + // total size: 0x14 +public: + unsigned char flags; // offset 0x0, size 0x1 + unsigned char plane; // offset 0x1, size 0x1 + unsigned char pad[2]; // offset 0x2, size 0x2 + float len; // offset 0x4, size 0x4 + float range; // offset 0x8, size 0x4 + float period; // offset 0xC, size 0x4 + float phase; // offset 0x10, size 0x4 +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class xCutsceneInfo { + // total size: 0x50 +public: + unsigned int Magic; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int NumTime; // offset 0xC, size 0x4 + unsigned int MaxModel; // offset 0x10, size 0x4 + unsigned int MaxBufEven; // offset 0x14, size 0x4 + unsigned int MaxBufOdd; // offset 0x18, size 0x4 + unsigned int HeaderSize; // offset 0x1C, size 0x4 + unsigned int VisCount; // offset 0x20, size 0x4 + unsigned int VisSize; // offset 0x24, size 0x4 + unsigned int BreakCount; // offset 0x28, size 0x4 + unsigned int pad; // offset 0x2C, size 0x4 + char SoundLeft[16]; // offset 0x30, size 0x10 + char SoundRight[16]; // offset 0x40, size 0x10 +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class iColor_tag { + // total size: 0x4 +public: + unsigned char r; // offset 0x0, size 0x1 + unsigned char g; // offset 0x1, size 0x1 + unsigned char b; // offset 0x2, size 0x1 + unsigned char a; // offset 0x3, size 0x1 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +enum _CurrentPlayer { + eCurrentPlayerSpongeBob = 0, + eCurrentPlayerPatrick = 1, + eCurrentPlayerSandy = 2, + eCurrentPlayerCount = 3, +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class xPlatformAsset { + // total size: 0x0 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class xCutscene { + // total size: 0x138 +public: + class xCutsceneInfo * Info; // offset 0x0, size 0x4 + class xCutsceneData * Data; // offset 0x4, size 0x4 + unsigned int * TimeChunkOffs; // offset 0x8, size 0x4 + unsigned int * Visibility; // offset 0xC, size 0x4 + class xCutsceneBreak * BreakList; // offset 0x10, size 0x4 + class xCutsceneTime * Play; // offset 0x14, size 0x4 + class xCutsceneTime * Stream; // offset 0x18, size 0x4 + unsigned int Waiting; // offset 0x1C, size 0x4 + unsigned int BadReadPause; // offset 0x20, size 0x4 + float BadReadSpeed; // offset 0x24, size 0x4 + void * RawBuf; // offset 0x28, size 0x4 + void * AlignBuf; // offset 0x2C, size 0x4 + float Time; // offset 0x30, size 0x4 + float CamTime; // offset 0x34, size 0x4 + unsigned int PlayIndex; // offset 0x38, size 0x4 + unsigned int Ready; // offset 0x3C, size 0x4 + signed int DataLoading; // offset 0x40, size 0x4 + unsigned int GotData; // offset 0x44, size 0x4 + unsigned int ShutDownWait; // offset 0x48, size 0x4 + float PlaybackSpeed; // offset 0x4C, size 0x4 + unsigned int Opened; // offset 0x50, size 0x4 + class tag_xFile File; // offset 0x54, size 0xB4 + signed int AsyncID; // offset 0x108, size 0x4 + void * MemBuf; // offset 0x10C, size 0x4 + void * MemCurr; // offset 0x110, size 0x4 + unsigned int SndStarted; // offset 0x114, size 0x4 + unsigned int SndNumChannel; // offset 0x118, size 0x4 + unsigned int SndChannelReq[2]; // offset 0x11C, size 0x8 + unsigned int SndAssetID[2]; // offset 0x124, size 0x8 + unsigned int SndHandle[2]; // offset 0x12C, size 0x8 + class XCSNNosey * cb_nosey; // offset 0x134, size 0x4 +}; +class xCutsceneTime { + // total size: 0x10 +public: + float StartTime; // offset 0x0, size 0x4 + float EndTime; // offset 0x4, size 0x4 + unsigned int NumData; // offset 0x8, size 0x4 + unsigned int ChunkIndex; // offset 0xC, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xEntMPData { + // total size: 0x40 +public: + float curdist; // offset 0x0, size 0x4 + float speed; // offset 0x4, size 0x4 + class xMovePoint * dest; // offset 0x8, size 0x4 + class xMovePoint * src; // offset 0xC, size 0x4 + class xSpline3 * spl; // offset 0x10, size 0x4 + float dist; // offset 0x14, size 0x4 + unsigned int padalign; // offset 0x18, size 0x4 + class xQuat aquat; // offset 0x20, size 0x10 + class xQuat bquat; // offset 0x30, size 0x10 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class xCutsceneData { + // total size: 0x10 +public: + unsigned int DataType; // offset 0x0, size 0x4 + unsigned int AssetID; // offset 0x4, size 0x4 + unsigned int ChunkSize; // offset 0x8, size 0x4 + union { // inferred + unsigned int FileOffset; // offset 0xC, size 0x4 + void * DataPtr; // offset 0xC, size 0x4 + }; +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xEntMotionAsset { + // total size: 0x30 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char use_banking; // offset 0x1, size 0x1 + unsigned short flags; // offset 0x2, size 0x2 + union { // inferred + class xEntMotionERData er; // offset 0x4, size 0x28 + class xEntMotionOrbitData orb; // offset 0x4, size 0x18 + class xEntMotionSplineData spl; // offset 0x4, size 0x4 + class xEntMotionMPData mp; // offset 0x4, size 0xC + class xEntMotionMechData mech; // offset 0x4, size 0x2C + class xEntMotionPenData pen; // offset 0x4, size 0x14 + }; +}; +class var_type { + // total size: 0xC +public: + class substr name; // offset 0x0, size 0x8 + char * (* get_text)(); // offset 0x8, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class xMovePoint : public xBase { + // total size: 0x30 +public: + class xMovePointAsset * asset; // offset 0x10, size 0x4 + class xVec3 * pos; // offset 0x14, size 0x4 + class xMovePoint * * nodes; // offset 0x18, size 0x4 + class xMovePoint * prev; // offset 0x1C, size 0x4 + unsigned int node_wt_sum; // offset 0x20, size 0x4 + unsigned char on; // offset 0x24, size 0x1 + unsigned char pad[2]; // offset 0x25, size 0x2 + float delay; // offset 0x28, size 0x4 + class xSpline3 * spl; // offset 0x2C, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xSurface : public xBase { + // total size: 0x28 +public: + unsigned int idx; // offset 0x10, size 0x4 + unsigned int type; // offset 0x14, size 0x4 + union { // inferred + unsigned int mat_idx; // offset 0x18, size 0x4 + class xEnt * ent; // offset 0x18, size 0x4 + void * obj; // offset 0x18, size 0x4 + }; + float friction; // offset 0x1C, size 0x4 + unsigned char state; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + void * moprops; // offset 0x24, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class zVarMagicEntry { + // total size: 0xC +public: + unsigned int varNameID; // offset 0x0, size 0x4 + char * varName; // offset 0x4, size 0x4 + char * (* varCB)(char *); // offset 0x8, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class substr { + // total size: 0x8 +public: + char * text; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class xSpline3 { + // total size: 0x2C +public: + unsigned short type; // offset 0x0, size 0x2 + unsigned short flags; // offset 0x2, size 0x2 + unsigned int N; // offset 0x4, size 0x4 + unsigned int allocN; // offset 0x8, size 0x4 + class xVec3 * points; // offset 0xC, size 0x4 + float * time; // offset 0x10, size 0x4 + class xVec3 * p12; // offset 0x14, size 0x4 + class xVec3 * bctrl; // offset 0x18, size 0x4 + float * knot; // offset 0x1C, size 0x4 + class xCoef3 * coef; // offset 0x20, size 0x4 + unsigned int arcSample; // offset 0x24, size 0x4 + float * arcLength; // offset 0x28, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xEntMotionERData { + // total size: 0x28 +public: + class xVec3 ret_pos; // offset 0x0, size 0xC + class xVec3 ext_dpos; // offset 0xC, size 0xC + float ext_tm; // offset 0x18, size 0x4 + float ext_wait_tm; // offset 0x1C, size 0x4 + float ret_tm; // offset 0x20, size 0x4 + float ret_wait_tm; // offset 0x24, size 0x4 +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class xCutsceneBreak { + // total size: 0x8 +public: + float Time; // offset 0x0, size 0x4 + signed int Index; // offset 0x4, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zPlatFMRunTime { + // total size: 0x124 +public: + unsigned int flags; // offset 0x0, size 0x4 + float tmrs[12]; // offset 0x4, size 0x30 + float ttms[12]; // offset 0x34, size 0x30 + float atms[12]; // offset 0x64, size 0x30 + float dtms[12]; // offset 0x94, size 0x30 + float vms[12]; // offset 0xC4, size 0x30 + float dss[12]; // offset 0xF4, size 0x30 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class jot { + // total size: 0x38 +public: + class substr s; // offset 0x0, size 0x8 + class /* @class */ { + // total size: 0x2 + public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 + } flag; // offset 0x8, size 0x2 + unsigned short context_size; // offset 0xA, size 0x2 + void * context; // offset 0xC, size 0x4 + class basic_rect bounds; // offset 0x10, size 0x10 + class basic_rect render_bounds; // offset 0x20, size 0x10 + class callback * cb; // offset 0x30, size 0x4 + class tag_type * tag; // offset 0x34, size 0x4 +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class XCSNNosey { + // total size: 0xC +public: + void * userdata; // offset 0x4, size 0x4 + signed int flg_nosey; // offset 0x8, size 0x4 +}; +class xCoef3 { + // total size: 0x30 +public: + class xCoef x; // offset 0x0, size 0x10 + class xCoef y; // offset 0x10, size 0x10 + class xCoef z; // offset 0x20, size 0x10 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class basic_rect { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float w; // offset 0x8, size 0x4 + float h; // offset 0xC, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class iSndInfo { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + class iSndVol vol; // offset 0x4, size 0x4 + unsigned int pitch; // offset 0x8, size 0x4 + signed int lastStreamBuffer; // offset 0xC, size 0x4 +}; +class xCutsceneZbuffer { + // total size: 0x10 +public: + float start; // offset 0x0, size 0x4 + float end; // offset 0x4, size 0x4 + float nearPlane; // offset 0x8, size 0x4 + float farPlane; // offset 0xC, size 0x4 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class split_tag { + // total size: 0x20 +public: + class substr tag; // offset 0x0, size 0x8 + class substr name; // offset 0x8, size 0x8 + class substr action; // offset 0x10, size 0x8 + class substr value; // offset 0x18, size 0x8 +}; +class callback { + // total size: 0xC +public: + void (* render)(class jot &, class xtextbox &, float, float); // offset 0x0, size 0x4 + void (* layout_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x4, size 0x4 + void (* render_update)(class jot &, class xtextbox &, class xtextbox &); // offset 0x8, size 0x4 +}; +class xtextbox { + // total size: 0x68 +public: + class xfont font; // offset 0x0, size 0x24 + class basic_rect bounds; // offset 0x24, size 0x10 + unsigned int flags; // offset 0x34, size 0x4 + float line_space; // offset 0x38, size 0x4 + float tab_stop; // offset 0x3C, size 0x4 + float left_indent; // offset 0x40, size 0x4 + float right_indent; // offset 0x44, size 0x4 + class callback * cb; // offset 0x48, size 0x4 + void * context; // offset 0x4C, size 0x4 + char * * texts; // offset 0x50, size 0x4 + unsigned int * text_sizes; // offset 0x54, size 0x4 + unsigned int texts_size; // offset 0x58, size 0x4 + class substr text; // offset 0x5C, size 0x8 + unsigned int text_hash; // offset 0x64, size 0x4 +}; +class xEntMotionOrbitData { + // total size: 0x18 +public: + class xVec3 center; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 + float period; // offset 0x14, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class tag_type { + // total size: 0x14 +public: + class substr name; // offset 0x0, size 0x8 + void (* parse_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0x8, size 0x4 + void (* reset_tag)(class jot &, class xtextbox &, class xtextbox &, class split_tag &); // offset 0xC, size 0x4 + void * context; // offset 0x10, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +enum sound_listener_game_mode { + SND_LISTENER_MODE_PLAYER = 0, + SND_LISTENER_MODE_CAMERA = 1, +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class xMovePointAsset : public xBaseAsset { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x8, size 0xC + unsigned short wt; // offset 0x14, size 0x2 + unsigned char on; // offset 0x16, size 0x1 + unsigned char bezIndex; // offset 0x17, size 0x1 + unsigned char flg_props; // offset 0x18, size 0x1 + unsigned char pad; // offset 0x19, size 0x1 + unsigned short numPoints; // offset 0x1A, size 0x2 + float delay; // offset 0x1C, size 0x4 + float zoneRadius; // offset 0x20, size 0x4 + float arenaRadius; // offset 0x24, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class xEntBoulder { + // total size: 0x0 +}; +class xSndVoiceInfo { + // total size: 0x64 +public: + unsigned int assetID; // offset 0x0, size 0x4 + unsigned int sndID; // offset 0x4, size 0x4 + unsigned int parentID; // offset 0x8, size 0x4 + class xVec3 * parentPos; // offset 0xC, size 0x4 + signed int internalID; // offset 0x10, size 0x4 + unsigned int flags; // offset 0x14, size 0x4 + unsigned short pad; // offset 0x18, size 0x2 + unsigned short priority; // offset 0x1A, size 0x2 + float vol; // offset 0x1C, size 0x4 + float pitch; // offset 0x20, size 0x4 + unsigned int sample_rate; // offset 0x24, size 0x4 + unsigned int deadct; // offset 0x28, size 0x4 + enum sound_category category; // offset 0x2C, size 0x4 + class xVec3 actualPos; // offset 0x30, size 0xC + class xVec3 playPos; // offset 0x3C, size 0xC + float innerRadius2; // offset 0x48, size 0x4 + float outerRadius2; // offset 0x4C, size 0x4 + unsigned int lock_owner; // offset 0x50, size 0x4 + class iSndInfo ps; // offset 0x54, size 0x10 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xfont { + // total size: 0x24 +public: + unsigned int id; // offset 0x0, size 0x4 + float width; // offset 0x4, size 0x4 + float height; // offset 0x8, size 0x4 + float space; // offset 0xC, size 0x4 + class iColor_tag color; // offset 0x10, size 0x4 + class basic_rect clip; // offset 0x14, size 0x10 +}; +class xCutsceneZbufferHack { + // total size: 0x44 +public: + char * name; // offset 0x0, size 0x4 + class xCutsceneZbuffer times[4]; // offset 0x4, size 0x40 +}; +class xEntMechData { + // total size: 0x4C +public: + class xVec3 apos; // offset 0x0, size 0xC + class xVec3 bpos; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float arot; // offset 0x24, size 0x4 + float brot; // offset 0x28, size 0x4 + float ss; // offset 0x2C, size 0x4 + float sr; // offset 0x30, size 0x4 + signed int state; // offset 0x34, size 0x4 + float tsfd; // offset 0x38, size 0x4 + float trfd; // offset 0x3C, size 0x4 + float tsbd; // offset 0x40, size 0x4 + float trbd; // offset 0x44, size 0x4 + float * rotptr; // offset 0x48, size 0x4 +}; +class xEntMotionSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zSaveLoadGame { + // total size: 0x6C +public: + char label[64]; // offset 0x0, size 0x40 + char date[32]; // offset 0x40, size 0x20 + signed int progress; // offset 0x60, size 0x4 + unsigned int size; // offset 0x64, size 0x4 + char thumbIconIndex; // offset 0x68, size 0x1 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +class xEntERData { + // total size: 0x44 +public: + class xVec3 a; // offset 0x0, size 0xC + class xVec3 b; // offset 0xC, size 0xC + class xVec3 dir; // offset 0x18, size 0xC + float et; // offset 0x24, size 0x4 + float wet; // offset 0x28, size 0x4 + float rt; // offset 0x2C, size 0x4 + float wrt; // offset 0x30, size 0x4 + float p; // offset 0x34, size 0x4 + float brt; // offset 0x38, size 0x4 + float ert; // offset 0x3C, size 0x4 + signed int state; // offset 0x40, size 0x4 +}; +class xEntMotionMPData { + // total size: 0xC +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int mp_id; // offset 0x4, size 0x4 + float speed; // offset 0x8, size 0x4 +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; +class xCutsceneMgr : public xBase { + // total size: 0x24 +public: + class xCutsceneMgrAsset * tasset; // offset 0x10, size 0x4 + class xCutscene * csn; // offset 0x14, size 0x4 + unsigned int stop; // offset 0x18, size 0x4 + class xCutsceneZbufferHack * zhack; // offset 0x1C, size 0x4 + float oldfov; // offset 0x20, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xCutsceneMgrAsset : public xBaseAsset { + // total size: 0xC8 +public: + unsigned int cutsceneAssetID; // offset 0x8, size 0x4 + unsigned int flags; // offset 0xC, size 0x4 + float interpSpeed; // offset 0x10, size 0x4 + float startTime[15]; // offset 0x14, size 0x3C + float endTime[15]; // offset 0x50, size 0x3C + unsigned int emitID[15]; // offset 0x8C, size 0x3C +}; +class zPlatform : public zEnt { + // total size: 0x210 +public: + class xPlatformAsset * passet; // offset 0xD4, size 0x4 + class xEntMotion motion; // offset 0xE0, size 0x80 + unsigned short state; // offset 0x160, size 0x2 + unsigned short plat_flags; // offset 0x162, size 0x2 + float tmr; // offset 0x164, size 0x4 + signed int ctr; // offset 0x168, size 0x4 + class xMovePoint * src; // offset 0x16C, size 0x4 + class xModelInstance * am; // offset 0x170, size 0x4 + class xModelInstance * bm; // offset 0x174, size 0x4 + signed int moving; // offset 0x178, size 0x4 + class xEntDrive drv; // offset 0x17C, size 0x7C + class zPlatFMRunTime * fmrt; // offset 0x1F8, size 0x4 + float pauseMult; // offset 0x1FC, size 0x4 + float pauseDelta; // offset 0x200, size 0x4 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class zCutsceneMgr : public xCutsceneMgr { + // total size: 0x24 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class xCoef { + // total size: 0x10 +public: + float a[4]; // offset 0x0, size 0x10 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class xEntMotionMechData { + // total size: 0x2C +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char flags; // offset 0x1, size 0x1 + unsigned char sld_axis; // offset 0x2, size 0x1 + unsigned char rot_axis; // offset 0x3, size 0x1 + float sld_dist; // offset 0x4, size 0x4 + float sld_tm; // offset 0x8, size 0x4 + float sld_acc_tm; // offset 0xC, size 0x4 + float sld_dec_tm; // offset 0x10, size 0x4 + float rot_dist; // offset 0x14, size 0x4 + float rot_tm; // offset 0x18, size 0x4 + float rot_acc_tm; // offset 0x1C, size 0x4 + float rot_dec_tm; // offset 0x20, size 0x4 + float ret_delay; // offset 0x24, size 0x4 + float post_ret_delay; // offset 0x28, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class iSndVol { + // total size: 0x4 +public: + signed short volL; // offset 0x0, size 0x2 + signed short volR; // offset 0x2, size 0x2 +}; +class xEntPenData { + // total size: 0x50 +public: + class xVec3 top; // offset 0x0, size 0xC + float w; // offset 0xC, size 0x4 + class xMat4x3 omat; // offset 0x10, size 0x40 +}; +class tag_iFile { + // total size: 0x90 +public: + unsigned int flags; // offset 0x0, size 0x4 + char path[128]; // offset 0x4, size 0x80 + signed int fd; // offset 0x84, size 0x4 + signed int offset; // offset 0x88, size 0x4 + signed int length; // offset 0x8C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xSndGlobals { + // total size: 0x13A0 +public: + unsigned int stereo; // offset 0x0, size 0x4 + unsigned int SndCount; // offset 0x4, size 0x4 + float categoryVolFader[5]; // offset 0x8, size 0x14 + class xSndVoiceInfo voice[48]; // offset 0x1C, size 0x12C0 + class xMat4x3 listenerMat[2]; // offset 0x12E0, size 0x80 + enum sound_listener_game_mode listenerMode; // offset 0x1360, size 0x4 + unsigned int suspendCD; // offset 0x1364, size 0x4 + class xVec3 right; // offset 0x1368, size 0xC + class xVec3 up; // offset 0x1374, size 0xC + class xVec3 at; // offset 0x1380, size 0xC + class xVec3 pos; // offset 0x138C, size 0xC +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class xEntOrbitData { + // total size: 0x28 +public: + class xVec3 orig; // offset 0x0, size 0xC + class xVec3 c; // offset 0xC, size 0xC + float a; // offset 0x18, size 0x4 + float b; // offset 0x1C, size 0x4 + float p; // offset 0x20, size 0x4 + float w; // offset 0x24, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class tag_xFile { + // total size: 0xB4 +public: + char relname[32]; // offset 0x0, size 0x20 + class tag_iFile ps; // offset 0x20, size 0x90 + void * user_data; // offset 0xB0, size 0x4 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xEntMotion { + // total size: 0x80 +public: + class xEntMotionAsset * asset; // offset 0x0, size 0x4 + unsigned char type; // offset 0x4, size 0x1 + unsigned char pad; // offset 0x5, size 0x1 + unsigned short flags; // offset 0x6, size 0x2 + float t; // offset 0x8, size 0x4 + float tmr; // offset 0xC, size 0x4 + float d; // offset 0x10, size 0x4 + union { // inferred + class xEntERData er; // offset 0x20, size 0x44 + class xEntOrbitData orb; // offset 0x20, size 0x28 + class xEntSplineData spl; // offset 0x20, size 0x4 + class xEntMPData mp; // offset 0x20, size 0x40 + class xEntMechData mech; // offset 0x20, size 0x4C + class xEntPenData pen; // offset 0x20, size 0x50 + }; + class xEnt * owner; // offset 0x70, size 0x4 + class xEnt * target; // offset 0x74, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum sound_category { + SND_CAT_INVALID = -1, + SND_CAT_GAME = 0, + SND_CAT_DIALOG = 1, + SND_CAT_MUSIC = 2, + SND_CAT_CUTSCENE = 3, + SND_CAT_UI = 4, + SND_CAT_NUM_CATEGORIES = 5, +}; +class /* @class */ { + // total size: 0x2 +public: + unsigned char invisible : 1; // offset 0x0, size 0x1 + unsigned char ethereal : 1; // offset 0x0, size 0x1 + unsigned char merge : 1; // offset 0x0, size 0x1 + unsigned char word_break : 1; // offset 0x0, size 0x1 + unsigned char word_end : 1; // offset 0x0, size 0x1 + unsigned char line_break : 1; // offset 0x0, size 0x1 + unsigned char stop : 1; // offset 0x0, size 0x1 + unsigned char tab : 1; // offset 0x0, size 0x1 + unsigned char insert : 1; // offset 0x1, size 0x1 + unsigned char dynamic : 1; // offset 0x1, size 0x1 + unsigned char page_break : 1; // offset 0x1, size 0x1 + unsigned char stateful : 1; // offset 0x1, size 0x1 + unsigned short dummy : 4; // offset 0x0, size 0x2 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class xEntSplineData { + // total size: 0x4 +public: + signed int unknown; // offset 0x0, size 0x4 +}; +class zVarEntry { + // total size: 0x10 +public: + unsigned int entry; // offset 0x0, size 0x4 + unsigned int varNameID; // offset 0x4, size 0x4 + char * varName; // offset 0x8, size 0x4 + unsigned int (* varCB)(void *); // offset 0xC, size 0x4 +}; + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2800 -> 0x001A2818 +*/ +// Range: 0x1A2800 -> 0x1A2818 +unsigned int zVarEntryCB_IsVisible(void * context /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2800 -> 0x1A2818 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2820 -> 0x001A2830 +*/ +// Range: 0x1A2820 -> 0x1A2830 +unsigned int zVarEntryCB_IsEnabled(void * context /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2820 -> 0x1A2830 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2830 -> 0x001A2838 +*/ +// Range: 0x1A2830 -> 0x1A2838 +unsigned int zVarEntryCB_CounterValue(void * context /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2830 -> 0x1A2838 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2840 -> 0x001A2860 +*/ +// Range: 0x1A2840 -> 0x1A2860 +unsigned int zVarEntryCB_Minute() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2840 -> 0x1A2860 + unsigned int minute; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2860 -> 0x001A2880 +*/ +// Range: 0x1A2860 -> 0x1A2880 +unsigned int zVarEntryCB_Hour() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2860 -> 0x1A2880 + unsigned int hour; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2880 -> 0x001A28C4 +*/ +// Range: 0x1A2880 -> 0x1A28C4 +unsigned int zVarEntryCB_Date() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2880 -> 0x1A28C4 + unsigned int date; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A28D0 -> 0x001A28DC +*/ +// Range: 0x1A28D0 -> 0x1A28DC +unsigned int zVarEntryCB_Spatulas() { + // Blocks + /* anonymous block */ { + // Range: 0x1A28D0 -> 0x1A28DC + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A28E0 -> 0x001A28EC +*/ +// Range: 0x1A28E0 -> 0x1A28EC +unsigned int zVarEntryCB_Shinies() { + // Blocks + /* anonymous block */ { + // Range: 0x1A28E0 -> 0x1A28EC + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A28F0 -> 0x001A28FC +*/ +// Range: 0x1A28F0 -> 0x1A28FC +unsigned int zVarEntryCB_TotalPSocks() { + // Blocks + /* anonymous block */ { + // Range: 0x1A28F0 -> 0x1A28FC + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2900 -> 0x001A290C +*/ +// Range: 0x1A2900 -> 0x1A290C +unsigned int zVarEntryCB_CurrentLevelPSocks() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2900 -> 0x1A290C + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2910 -> 0x001A291C +*/ +// Range: 0x1A2910 -> 0x1A291C +unsigned int zVarEntryCB_CurrentLevelPickup() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2910 -> 0x1A291C + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2920 -> 0x001A29C4 +*/ +// Range: 0x1A2920 -> 0x1A29C4 +unsigned int zVarEntryCB_CurrentRoom() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2920 -> 0x1A29C4 + signed int room; // r4 + char s[16]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A29D0 -> 0x001A2A3C +*/ +// Range: 0x1A29D0 -> 0x1A2A3C +unsigned int zVarEntryCB_CurrentSceneLetter() { + // Blocks + /* anonymous block */ { + // Range: 0x1A29D0 -> 0x1A2A3C + char s[16]; // r29+0x10 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2A40 -> 0x001A2A50 +*/ +// Range: 0x1A2A40 -> 0x1A2A50 +unsigned int zVarEntryCB_VibrationOn() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2A40 -> 0x1A2A50 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2A50 -> 0x001A2B04 +*/ +// Range: 0x1A2A50 -> 0x1A2B04 +unsigned int zVarEntryCB_MCAvailable() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2A50 -> 0x1A2B04 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2B10 -> 0x001A2B58 +*/ +// Range: 0x1A2B10 -> 0x1A2B58 +unsigned int zVarEntryCB_SndFXVol() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2B10 -> 0x1A2B58 + double floatVol; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2B60 -> 0x001A2BA8 +*/ +// Range: 0x1A2B60 -> 0x1A2BA8 +unsigned int zVarEntryCB_SndMusicVol() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2B60 -> 0x1A2BA8 + double floatVol; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2BB0 -> 0x001A2BBC +*/ +// Range: 0x1A2BB0 -> 0x1A2BBC +unsigned int zVarEntryCB_SndMode() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2BB0 -> 0x1A2BBC + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2BC0 -> 0x001A2BC8 +*/ +// Range: 0x1A2BC0 -> 0x1A2BC8 +void zVarNewGame() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2BC0 -> 0x1A2BC8 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2BD0 -> 0x001A2C18 +*/ +// Range: 0x1A2BD0 -> 0x1A2C18 +void zVarInit(class zVarEntry * table /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2BD0 -> 0x1A2C18 + signed int i; // r17 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2C20 -> 0x001A2C30 +*/ +// Range: 0x1A2C20 -> 0x1A2C30 +void var_init() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2C20 -> 0x1A2C30 + class tag_type var_tag; // @ 0x00416B50 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2C30 -> 0x001A2D10 +*/ +// Range: 0x1A2C30 -> 0x1A2D10 +static void parse_tag_var(class jot & j /* r16 */, class split_tag & ti /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2C30 -> 0x1A2D10 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2D10 -> 0x001A2DB8 +*/ +// Range: 0x1A2D10 -> 0x1A2DB8 +static class var_type * find_var(class substr & s /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A2D10 -> 0x1A2DB8 + unsigned int start; // r18 + unsigned int end; // r17 + unsigned int i; // r16 + class var_type & t; // r20 + signed int c; // r2 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2DC0 -> 0x001A2E5C +*/ +// Range: 0x1A2DC0 -> 0x1A2E5C +static char * var_text_MCName() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2DC0 -> 0x1A2E5C + char buffer[32]; // @ 0x005323C0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2E60 -> 0x001A2E98 +*/ +// Range: 0x1A2E60 -> 0x1A2E98 +static char * var_text_TotalPatsSocks() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2E60 -> 0x1A2E98 + char buffer[12]; // @ 0x005323B0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2EA0 -> 0x001A2EDC +*/ +// Range: 0x1A2EA0 -> 0x1A2EDC +static char * var_text_SpaceNeeded() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2EA0 -> 0x1A2EDC + char buffer[12]; // @ 0x005323A0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2EE0 -> 0x001A2F5C +*/ +// Range: 0x1A2EE0 -> 0x1A2F5C +static char * var_text_SpaceAvailableString() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2EE0 -> 0x1A2F5C + char spaceStr[32]; // r29+0x20 + signed int spaceAvailable; // r16 + char buffer[64]; // @ 0x00532360 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2F60 -> 0x001A2F9C +*/ +// Range: 0x1A2F60 -> 0x1A2F9C +static char * var_text_SpaceAvailable() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2F60 -> 0x1A2F9C + char buffer[12]; // @ 0x00532350 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A2FA0 -> 0x001A3008 +*/ +// Range: 0x1A2FA0 -> 0x1A3008 +static char * var_text_SoundMusicVolume() { + // Blocks + /* anonymous block */ { + // Range: 0x1A2FA0 -> 0x1A3008 + char buffer[12]; // @ 0x00532340 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3010 -> 0x001A3078 +*/ +// Range: 0x1A3010 -> 0x1A3078 +static char * var_text_SoundFXVolume() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3010 -> 0x1A3078 + char buffer[12]; // @ 0x00532330 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3080 -> 0x001A3104 +*/ +// Range: 0x1A3080 -> 0x1A3104 +static char * var_text_ShinyCountText() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3080 -> 0x1A3104 + char buffer[64]; // @ 0x00416930 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3110 -> 0x001A3148 +*/ +// Range: 0x1A3110 -> 0x1A3148 +static char * var_text_ShinyCount() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3110 -> 0x1A3148 + char buffer[12]; // @ 0x00532320 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3150 -> 0x001A3158 +*/ +// Range: 0x1A3150 -> 0x1A3158 +static char * var_text_SelectedArea() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3150 -> 0x1A3158 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3160 -> 0x001A31BC +*/ +// Range: 0x1A3160 -> 0x1A31BC +static char * var_text_PlayerPosition() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3160 -> 0x1A31BC + class xVec3 & v; // r2 + char buffer[48]; // @ 0x005322F0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A31C0 -> 0x001A31DC +*/ +// Range: 0x1A31C0 -> 0x1A31DC +static char * var_text_PlayerName() { + // Blocks + /* anonymous block */ { + // Range: 0x1A31C0 -> 0x1A31DC + char * text[3]; // @ 0x00416920 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A31E0 -> 0x001A31FC +*/ +// Range: 0x1A31E0 -> 0x1A31FC +static char * var_text_PlayerHeShe() { + // Blocks + /* anonymous block */ { + // Range: 0x1A31E0 -> 0x1A31FC + char * text[3]; // @ 0x00416910 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3200 -> 0x001A323C +*/ +// Range: 0x1A3200 -> 0x1A323C +static char * var_text_MCSelectedGame() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3200 -> 0x1A323C + char buffer[12]; // @ 0x005322E0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3240 -> 0x001A327C +*/ +// Range: 0x1A3240 -> 0x1A327C +static char * var_text_MCSelectedCard() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3240 -> 0x1A327C + char buffer[12]; // @ 0x005322D0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3280 -> 0x001A32B4 +*/ +// Range: 0x1A3280 -> 0x1A32B4 +static char * var_text_MCPS2MinSpace() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3280 -> 0x1A32B4 + char buffer[12]; // @ 0x005322C0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A32C0 -> 0x001A32F4 +*/ +// Range: 0x1A32C0 -> 0x1A32F4 +static char * var_text_MCPS2MaxSpace() { + // Blocks + /* anonymous block */ { + // Range: 0x1A32C0 -> 0x1A32F4 + char buffer[12]; // @ 0x005322B0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3300 -> 0x001A333C +*/ +// Range: 0x1A3300 -> 0x1A333C +static char * var_text_MCAutoSaveCard() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3300 -> 0x1A333C + char buffer[12]; // @ 0x005322A0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3340 -> 0x001A3370 +*/ +// Range: 0x1A3340 -> 0x1A3370 +static char * var_text_MCAccessType() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3340 -> 0x1A3370 + signed int i; // r2 + char * state_text[4]; // @ 0x00416900 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3370 -> 0x001A3384 +*/ +// Range: 0x1A3370 -> 0x1A3384 +static char * var_text_GameSlot7() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3370 -> 0x1A3384 + char buffer[64]; // @ 0x00532260 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3390 -> 0x001A33A4 +*/ +// Range: 0x1A3390 -> 0x1A33A4 +static char * var_text_GameSlot6() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3390 -> 0x1A33A4 + char buffer[64]; // @ 0x00532220 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A33B0 -> 0x001A33C4 +*/ +// Range: 0x1A33B0 -> 0x1A33C4 +static char * var_text_GameSlot5() { + // Blocks + /* anonymous block */ { + // Range: 0x1A33B0 -> 0x1A33C4 + char buffer[64]; // @ 0x005321E0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A33D0 -> 0x001A33E4 +*/ +// Range: 0x1A33D0 -> 0x1A33E4 +static char * var_text_GameSlot4() { + // Blocks + /* anonymous block */ { + // Range: 0x1A33D0 -> 0x1A33E4 + char buffer[64]; // @ 0x005321A0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A33F0 -> 0x001A3404 +*/ +// Range: 0x1A33F0 -> 0x1A3404 +static char * var_text_GameSlot3() { + // Blocks + /* anonymous block */ { + // Range: 0x1A33F0 -> 0x1A3404 + char buffer[64]; // @ 0x00532160 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3410 -> 0x001A3424 +*/ +// Range: 0x1A3410 -> 0x1A3424 +static char * var_text_GameSlot2() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3410 -> 0x1A3424 + char buffer[64]; // @ 0x00532120 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3430 -> 0x001A3444 +*/ +// Range: 0x1A3430 -> 0x1A3444 +static char * var_text_GameSlot1() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3430 -> 0x1A3444 + char buffer[64]; // @ 0x005320E0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3450 -> 0x001A3464 +*/ +// Range: 0x1A3450 -> 0x1A3464 +static char * var_text_GameSlot0() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3450 -> 0x1A3464 + char buffer[64]; // @ 0x005320A0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3470 -> 0x001A36FC +*/ +// Range: 0x1A3470 -> 0x1A36FC +static char * zVarGameSlotInfo(signed int i /* r20 */, char * buffer /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A3470 -> 0x1A36FC + char date[32]; // r29+0x1A0 + char time[32]; // r29+0x180 + signed int hour; // r18 + char ampm[32]; // r29+0x160 + char biggerbuf[256]; // r29+0x60 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3700 -> 0x001A3728 +*/ +// Range: 0x1A3700 -> 0x1A3728 +static char * var_text_CurrentTime() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3700 -> 0x1A3728 + char buffer[32]; // @ 0x00532080 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3730 -> 0x001A3778 +*/ +// Range: 0x1A3730 -> 0x1A3778 +static char * var_text_CurrentScene() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3730 -> 0x1A3778 + char buffer[32]; // @ 0x00532060 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3780 -> 0x001A37B8 +*/ +// Range: 0x1A3780 -> 0x1A37B8 +static char * var_text_CurrentLevelPatsSocks() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3780 -> 0x1A37B8 + char buffer[12]; // @ 0x00532050 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A37C0 -> 0x001A37F8 +*/ +// Range: 0x1A37C0 -> 0x1A37F8 +static char * var_text_CurrentLevelCollectable() { + // Blocks + /* anonymous block */ { + // Range: 0x1A37C0 -> 0x1A37F8 + char buffer[12]; // @ 0x00532040 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3800 -> 0x001A3828 +*/ +// Range: 0x1A3800 -> 0x1A3828 +static char * var_text_CurrentDate() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3800 -> 0x1A3828 + char buffer[32]; // @ 0x00532020 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3830 -> 0x001A3840 +*/ +// Range: 0x1A3830 -> 0x1A3840 +static char * var_text_CurrentArea() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3830 -> 0x1A3840 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3840 -> 0x001A3870 +*/ +// Range: 0x1A3840 -> 0x1A3870 +static char * var_text_CorruptFileName() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3840 -> 0x1A3870 + char buffer[128]; // @ 0x00531FA0 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3870 -> 0x001A38A8 +*/ +// Range: 0x1A3870 -> 0x1A38A8 +static char * var_text_BadCardNeeded() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3870 -> 0x1A38A8 + char buffer[12]; // @ 0x00531F88 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A38B0 -> 0x001A38E4 +*/ +// Range: 0x1A38B0 -> 0x1A38E4 +static char * var_text_BadCardAvailable() { + // Blocks + /* anonymous block */ { + // Range: 0x1A38B0 -> 0x1A38E4 + char buffer[12]; // @ 0x00531F78 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A38F0 -> 0x001A3954 +*/ +// Range: 0x1A38F0 -> 0x1A3954 +static char * var_text_BadCard() { + // Blocks + /* anonymous block */ { + // Range: 0x1A38F0 -> 0x1A3954 + signed int card; // r2 + char buffer[12]; // @ 0x00531F68 + } +} + +/* + Compile unit: C:\SB\Game\zVar.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3960 -> 0x001A399C +*/ +// Range: 0x1A3960 -> 0x1A399C +static char * var_text_ActivePad() { + // Blocks + /* anonymous block */ { + // Range: 0x1A3960 -> 0x1A399C + char buffer[12]; // @ 0x00531F58 + } +} + diff --git a/dwarf/SB/Game/zVolume.cpp b/dwarf/SB/Game/zVolume.cpp new file mode 100644 index 000000000..214dc9856 --- /dev/null +++ b/dwarf/SB/Game/zVolume.cpp @@ -0,0 +1,2117 @@ +/* + Compile unit: C:\SB\Game\zVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ +*/ +char buffer[16]; // size: 0x10, address: 0x0 +char buffer[16]; // size: 0x10, address: 0x0 +static class zVolume * vols; // size: 0x4, address: 0x50F780 +static unsigned short nvols; // size: 0x2, address: 0x50F784 +signed int gOccludeCount; // size: 0x4, address: 0x50F788 +class zVolume * gOccludeList[10]; // size: 0x28, address: 0x5323E0 +signed int gOccludeCalcCount; // size: 0x4, address: 0x50F78C +class PreCalcOcclude gOccludeCalc[10]; // size: 0x320, address: 0x532410 +signed int occludeAlwaysFalse; // size: 0x4, address: 0x0 +class zGlobals globals; // size: 0x2050, address: 0x52C8F0 +signed int zVolumeEventCB(class xBase *, class xBase *, unsigned int, float *, class xBase *); // size: 0x0, address: 0x1A39A0 +unsigned int gActiveHeap; // size: 0x4, address: 0x50FA44 +class xAnimState { + // total size: 0x4C +public: + class xAnimState * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int Flags; // offset 0xC, size 0x4 + unsigned int UserFlags; // offset 0x10, size 0x4 + float Speed; // offset 0x14, size 0x4 + class xAnimFile * Data; // offset 0x18, size 0x4 + class xAnimEffect * Effects; // offset 0x1C, size 0x4 + class xAnimTransitionList * Default; // offset 0x20, size 0x4 + class xAnimTransitionList * List; // offset 0x24, size 0x4 + float * BoneBlend; // offset 0x28, size 0x4 + float * TimeSnap; // offset 0x2C, size 0x4 + float FadeRecip; // offset 0x30, size 0x4 + unsigned short * FadeOffset; // offset 0x34, size 0x4 + void * CallbackData; // offset 0x38, size 0x4 + class xAnimMultiFile * MultiFile; // offset 0x3C, size 0x4 + void (* BeforeEnter)(class xAnimPlay *, class xAnimState *); // offset 0x40, size 0x4 + void (* StateCallback)(class xAnimState *, class xAnimSingle *, void *); // offset 0x44, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x48, size 0x4 +}; +class xAnimMultiFile : public xAnimMultiFileBase { + // total size: 0xC +public: + class xAnimMultiFileEntry Files[1]; // offset 0x4, size 0x8 +}; +class RwObjectHasFrame { + // total size: 0x14 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink lFrame; // offset 0x8, size 0x8 + class RwObjectHasFrame * (* sync)(class RwObjectHasFrame *); // offset 0x10, size 0x4 +}; +class xBase { + // total size: 0x10 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 + class xLinkAsset * link; // offset 0x8, size 0x4 + signed int (* eventFunc)(class xBase *, class xBase *, unsigned int, float *, class xBase *); // offset 0xC, size 0x4 +}; +class xVec3 { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class xAnimPlay { + // total size: 0x20 +public: + class xAnimPlay * Next; // offset 0x0, size 0x4 + unsigned short NumSingle; // offset 0x4, size 0x2 + unsigned short BoneCount; // offset 0x6, size 0x2 + class xAnimSingle * Single; // offset 0x8, size 0x4 + void * Object; // offset 0xC, size 0x4 + class xAnimTable * Table; // offset 0x10, size 0x4 + class xMemPool * Pool; // offset 0x14, size 0x4 + class xModelInstance * ModelInst; // offset 0x18, size 0x4 + void (* BeforeAnimMatrices)(class xAnimPlay *, class xQuat *, class xVec3 *, signed int); // offset 0x1C, size 0x4 +}; +class zEntHangable { + // total size: 0x0 +}; +class xUpdateCullMgr { + // total size: 0x2C +public: + unsigned int entCount; // offset 0x0, size 0x4 + unsigned int entActive; // offset 0x4, size 0x4 + void * * ent; // offset 0x8, size 0x4 + class xUpdateCullEnt * * mgr; // offset 0xC, size 0x4 + unsigned int mgrCount; // offset 0x10, size 0x4 + unsigned int mgrCurr; // offset 0x14, size 0x4 + class xUpdateCullEnt * mgrList; // offset 0x18, size 0x4 + unsigned int grpCount; // offset 0x1C, size 0x4 + class xUpdateCullGroup * grpList; // offset 0x20, size 0x4 + void (* activateCB)(void *); // offset 0x24, size 0x4 + void (* deactivateCB)(void *); // offset 0x28, size 0x4 +}; +class anim_coll_data { + // total size: 0x0 +}; +class RxPipelineNode { + // total size: 0x28 +public: + class RxNodeDefinition * nodeDef; // offset 0x0, size 0x4 + unsigned int numOutputs; // offset 0x4, size 0x4 + unsigned int * outputs; // offset 0x8, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0xC, size 0x4 + unsigned int * slotsContinue; // offset 0x10, size 0x4 + void * privateData; // offset 0x14, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x18, size 0x4 + class RxPipelineNodeTopSortData * topSortData; // offset 0x1C, size 0x4 + void * initializationData; // offset 0x20, size 0x4 + unsigned int initializationDataSize; // offset 0x24, size 0x4 +}; +class rxHeapFreeBlock { + // total size: 0x8 +public: + unsigned int size; // offset 0x0, size 0x4 + class rxHeapBlockHeader * ptr; // offset 0x4, size 0x4 +}; +class zPlayerCarryInfo { + // total size: 0xE0 +public: + class xEnt * grabbed; // offset 0x0, size 0x4 + unsigned int grabbedModelID; // offset 0x4, size 0x4 + class xMat4x3 spin; // offset 0x10, size 0x40 + class xEnt * throwTarget; // offset 0x50, size 0x4 + class xEnt * flyingToTarget; // offset 0x54, size 0x4 + float minDist; // offset 0x58, size 0x4 + float maxDist; // offset 0x5C, size 0x4 + float minHeight; // offset 0x60, size 0x4 + float maxHeight; // offset 0x64, size 0x4 + float maxCosAngle; // offset 0x68, size 0x4 + float throwMinDist; // offset 0x6C, size 0x4 + float throwMaxDist; // offset 0x70, size 0x4 + float throwMinHeight; // offset 0x74, size 0x4 + float throwMaxHeight; // offset 0x78, size 0x4 + float throwMaxStack; // offset 0x7C, size 0x4 + float throwMaxCosAngle; // offset 0x80, size 0x4 + float throwTargetRotRate; // offset 0x84, size 0x4 + float targetRot; // offset 0x88, size 0x4 + unsigned int grabTarget; // offset 0x8C, size 0x4 + class xVec3 grabOffset; // offset 0x90, size 0xC + float grabLerpMin; // offset 0x9C, size 0x4 + float grabLerpMax; // offset 0xA0, size 0x4 + float grabLerpLast; // offset 0xA4, size 0x4 + unsigned int grabYclear; // offset 0xA8, size 0x4 + float throwGravity; // offset 0xAC, size 0x4 + float throwHeight; // offset 0xB0, size 0x4 + float throwDistance; // offset 0xB4, size 0x4 + float fruitFloorDecayMin; // offset 0xB8, size 0x4 + float fruitFloorDecayMax; // offset 0xBC, size 0x4 + float fruitFloorBounce; // offset 0xC0, size 0x4 + float fruitFloorFriction; // offset 0xC4, size 0x4 + float fruitCeilingBounce; // offset 0xC8, size 0x4 + float fruitWallBounce; // offset 0xCC, size 0x4 + float fruitLifetime; // offset 0xD0, size 0x4 + class xEnt * patLauncher; // offset 0xD4, size 0x4 +}; +class xAnimTransition { + // total size: 0x2C +public: + class xAnimTransition * Next; // offset 0x0, size 0x4 + class xAnimState * Dest; // offset 0x4, size 0x4 + unsigned int (* Conditional)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0x8, size 0x4 + unsigned int (* Callback)(class xAnimTransition *, class xAnimSingle *, void *); // offset 0xC, size 0x4 + unsigned int Flags; // offset 0x10, size 0x4 + unsigned int UserFlags; // offset 0x14, size 0x4 + float SrcTime; // offset 0x18, size 0x4 + float DestTime; // offset 0x1C, size 0x4 + unsigned short Priority; // offset 0x20, size 0x2 + unsigned short QueuePriority; // offset 0x22, size 0x2 + float BlendRecip; // offset 0x24, size 0x4 + unsigned short * BlendOffset; // offset 0x28, size 0x4 +}; +class RwRaster { + // total size: 0x34 +public: + class RwRaster * parent; // offset 0x0, size 0x4 + unsigned char * cpPixels; // offset 0x4, size 0x4 + unsigned char * palette; // offset 0x8, size 0x4 + signed int width; // offset 0xC, size 0x4 + signed int height; // offset 0x10, size 0x4 + signed int depth; // offset 0x14, size 0x4 + signed int stride; // offset 0x18, size 0x4 + signed short nOffsetX; // offset 0x1C, size 0x2 + signed short nOffsetY; // offset 0x1E, size 0x2 + unsigned char cType; // offset 0x20, size 0x1 + unsigned char cFlags; // offset 0x21, size 0x1 + unsigned char privateFlags; // offset 0x22, size 0x1 + unsigned char cFormat; // offset 0x23, size 0x1 + unsigned char * originalPixels; // offset 0x24, size 0x4 + signed int originalWidth; // offset 0x28, size 0x4 + signed int originalHeight; // offset 0x2C, size 0x4 + signed int originalStride; // offset 0x30, size 0x4 +}; +class _zEnv : public xBase { + // total size: 0x14 +public: + class xEnvAsset * easset; // offset 0x10, size 0x4 +}; +class RpPolygon { + // total size: 0x8 +public: + unsigned short matIndex; // offset 0x0, size 0x2 + unsigned short vertIndex[3]; // offset 0x2, size 0x6 +}; +class xCamera : public xBase { + // total size: 0x330 +public: + class RwCamera * lo_cam; // offset 0x10, size 0x4 + class xMat4x3 mat; // offset 0x20, size 0x40 + class xMat4x3 omat; // offset 0x60, size 0x40 + class xMat3x3 mbasis; // offset 0xA0, size 0x30 + class xBound bound; // offset 0xD0, size 0x4C + class xMat4x3 * tgt_mat; // offset 0x11C, size 0x4 + class xMat4x3 * tgt_omat; // offset 0x120, size 0x4 + class xBound * tgt_bound; // offset 0x124, size 0x4 + class xVec3 focus; // offset 0x128, size 0xC + class xScene * sc; // offset 0x134, size 0x4 + class xVec3 tran_accum; // offset 0x138, size 0xC + float fov; // offset 0x144, size 0x4 + unsigned int flags; // offset 0x148, size 0x4 + float tmr; // offset 0x14C, size 0x4 + float tm_acc; // offset 0x150, size 0x4 + float tm_dec; // offset 0x154, size 0x4 + float ltmr; // offset 0x158, size 0x4 + float ltm_acc; // offset 0x15C, size 0x4 + float ltm_dec; // offset 0x160, size 0x4 + float dmin; // offset 0x164, size 0x4 + float dmax; // offset 0x168, size 0x4 + float dcur; // offset 0x16C, size 0x4 + float dgoal; // offset 0x170, size 0x4 + float hmin; // offset 0x174, size 0x4 + float hmax; // offset 0x178, size 0x4 + float hcur; // offset 0x17C, size 0x4 + float hgoal; // offset 0x180, size 0x4 + float pmin; // offset 0x184, size 0x4 + float pmax; // offset 0x188, size 0x4 + float pcur; // offset 0x18C, size 0x4 + float pgoal; // offset 0x190, size 0x4 + float depv; // offset 0x194, size 0x4 + float hepv; // offset 0x198, size 0x4 + float pepv; // offset 0x19C, size 0x4 + float orn_epv; // offset 0x1A0, size 0x4 + float yaw_epv; // offset 0x1A4, size 0x4 + float pitch_epv; // offset 0x1A8, size 0x4 + float roll_epv; // offset 0x1AC, size 0x4 + class xQuat orn_cur; // offset 0x1B0, size 0x10 + class xQuat orn_goal; // offset 0x1C0, size 0x10 + class xQuat orn_diff; // offset 0x1D0, size 0x10 + float yaw_cur; // offset 0x1E0, size 0x4 + float yaw_goal; // offset 0x1E4, size 0x4 + float pitch_cur; // offset 0x1E8, size 0x4 + float pitch_goal; // offset 0x1EC, size 0x4 + float roll_cur; // offset 0x1F0, size 0x4 + float roll_goal; // offset 0x1F4, size 0x4 + float dct; // offset 0x1F8, size 0x4 + float dcd; // offset 0x1FC, size 0x4 + float dccv; // offset 0x200, size 0x4 + float dcsv; // offset 0x204, size 0x4 + float hct; // offset 0x208, size 0x4 + float hcd; // offset 0x20C, size 0x4 + float hccv; // offset 0x210, size 0x4 + float hcsv; // offset 0x214, size 0x4 + float pct; // offset 0x218, size 0x4 + float pcd; // offset 0x21C, size 0x4 + float pccv; // offset 0x220, size 0x4 + float pcsv; // offset 0x224, size 0x4 + float orn_ct; // offset 0x228, size 0x4 + float orn_cd; // offset 0x22C, size 0x4 + float orn_ccv; // offset 0x230, size 0x4 + float orn_csv; // offset 0x234, size 0x4 + float yaw_ct; // offset 0x238, size 0x4 + float yaw_cd; // offset 0x23C, size 0x4 + float yaw_ccv; // offset 0x240, size 0x4 + float yaw_csv; // offset 0x244, size 0x4 + float pitch_ct; // offset 0x248, size 0x4 + float pitch_cd; // offset 0x24C, size 0x4 + float pitch_ccv; // offset 0x250, size 0x4 + float pitch_csv; // offset 0x254, size 0x4 + float roll_ct; // offset 0x258, size 0x4 + float roll_cd; // offset 0x25C, size 0x4 + float roll_ccv; // offset 0x260, size 0x4 + float roll_csv; // offset 0x264, size 0x4 + class xVec4 frustplane[12]; // offset 0x270, size 0xC0 +}; +class RpClump { + // total size: 0x2C +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList atomicList; // offset 0x8, size 0x8 + class RwLinkList lightList; // offset 0x10, size 0x8 + class RwLinkList cameraList; // offset 0x18, size 0x8 + class RwLLLink inWorldLink; // offset 0x20, size 0x8 + class RpClump * (* callback)(class RpClump *, void *); // offset 0x28, size 0x4 +}; +class RxPipelineNodeTopSortData { + // total size: 0xC +public: + unsigned int numIns; // offset 0x0, size 0x4 + unsigned int numInsVisited; // offset 0x4, size 0x4 + class rxReq * req; // offset 0x8, size 0x4 +}; +class xAnimSingle { + // total size: 0x40 +public: + unsigned int SingleFlags; // offset 0x0, size 0x4 + class xAnimState * State; // offset 0x4, size 0x4 + float Time; // offset 0x8, size 0x4 + float CurrentSpeed; // offset 0xC, size 0x4 + float BilinearLerp[2]; // offset 0x10, size 0x8 + class xAnimEffect * Effect; // offset 0x18, size 0x4 + unsigned int ActiveCount; // offset 0x1C, size 0x4 + float LastTime; // offset 0x20, size 0x4 + class xAnimActiveEffect * ActiveList; // offset 0x24, size 0x4 + class xAnimPlay * Play; // offset 0x28, size 0x4 + class xAnimTransition * Sync; // offset 0x2C, size 0x4 + class xAnimTransition * Tran; // offset 0x30, size 0x4 + class xAnimSingle * Blend; // offset 0x34, size 0x4 + float BlendFactor; // offset 0x38, size 0x4 + unsigned int pad; // offset 0x3C, size 0x4 +}; +class RwV2d { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xScene { + // total size: 0x70 +public: + unsigned int sceneID; // offset 0x0, size 0x4 + unsigned short flags; // offset 0x4, size 0x2 + unsigned short num_ents; // offset 0x6, size 0x2 + unsigned short num_trigs; // offset 0x8, size 0x2 + unsigned short num_stats; // offset 0xA, size 0x2 + unsigned short num_dyns; // offset 0xC, size 0x2 + unsigned short num_npcs; // offset 0xE, size 0x2 + unsigned short num_act_ents; // offset 0x10, size 0x2 + unsigned short num_nact_ents; // offset 0x12, size 0x2 + float gravity; // offset 0x14, size 0x4 + float drag; // offset 0x18, size 0x4 + float friction; // offset 0x1C, size 0x4 + unsigned short num_ents_allocd; // offset 0x20, size 0x2 + unsigned short num_trigs_allocd; // offset 0x22, size 0x2 + unsigned short num_stats_allocd; // offset 0x24, size 0x2 + unsigned short num_dyns_allocd; // offset 0x26, size 0x2 + unsigned short num_npcs_allocd; // offset 0x28, size 0x2 + class xEnt * * trigs; // offset 0x2C, size 0x4 + class xEnt * * stats; // offset 0x30, size 0x4 + class xEnt * * dyns; // offset 0x34, size 0x4 + class xEnt * * npcs; // offset 0x38, size 0x4 + class xEnt * * act_ents; // offset 0x3C, size 0x4 + class xEnt * * nact_ents; // offset 0x40, size 0x4 + class xEnv * env; // offset 0x44, size 0x4 + class xMemPool mempool; // offset 0x48, size 0x1C + class xBase * (* resolvID)(unsigned int); // offset 0x64, size 0x4 + char * (* base2Name)(class xBase *); // offset 0x68, size 0x4 + char * (* id2Name)(unsigned int); // offset 0x6C, size 0x4 +}; +class RxNodeDefinition { + // total size: 0x40 +public: + char * name; // offset 0x0, size 0x4 + class RxNodeMethods nodeMethods; // offset 0x4, size 0x1C + class RxIoSpec io; // offset 0x20, size 0x14 + unsigned int pipelineNodePrivateDataSize; // offset 0x34, size 0x4 + enum RxNodeDefEditable editable; // offset 0x38, size 0x4 + signed int InputPipesCnt; // offset 0x3C, size 0x4 +}; +class zPlayerSettings { + // total size: 0x460 +public: + enum _zPlayerType pcType; // offset 0x0, size 0x4 + float MoveSpeed[6]; // offset 0x4, size 0x18 + float AnimSneak[3]; // offset 0x1C, size 0xC + float AnimWalk[3]; // offset 0x28, size 0xC + float AnimRun[3]; // offset 0x34, size 0xC + float JumpGravity; // offset 0x40, size 0x4 + float GravSmooth; // offset 0x44, size 0x4 + float FloatSpeed; // offset 0x48, size 0x4 + float ButtsmashSpeed; // offset 0x4C, size 0x4 + class zJumpParam Jump; // offset 0x50, size 0x10 + class zJumpParam Bounce; // offset 0x60, size 0x10 + class zJumpParam Spring; // offset 0x70, size 0x10 + class zJumpParam Wall; // offset 0x80, size 0x10 + class zJumpParam Double; // offset 0x90, size 0x10 + class zJumpParam SlideDouble; // offset 0xA0, size 0x10 + class zJumpParam SlideJump; // offset 0xB0, size 0x10 + float WallJumpVelocity; // offset 0xC0, size 0x4 + class zLedgeGrabParams ledge; // offset 0xD0, size 0x380 + float spin_damp_xz; // offset 0x450, size 0x4 + float spin_damp_y; // offset 0x454, size 0x4 + unsigned char talk_anims; // offset 0x458, size 0x1 + unsigned char talk_filter_size; // offset 0x459, size 0x1 + unsigned char talk_filter[4]; // offset 0x45A, size 0x4 +}; +class xClumpCollBSPTree { + // total size: 0x10 +public: + unsigned int numBranchNodes; // offset 0x0, size 0x4 + class xClumpCollBSPBranchNode * branchNodes; // offset 0x4, size 0x4 + unsigned int numTriangles; // offset 0x8, size 0x4 + class xClumpCollBSPTriangle * triangles; // offset 0xC, size 0x4 +}; +class zPlatform { + // total size: 0x0 +}; +class xEnt : public xBase { + // total size: 0xD0 +public: + class xEntAsset * asset; // offset 0x10, size 0x4 + unsigned short idx; // offset 0x14, size 0x2 + unsigned short num_updates; // offset 0x16, size 0x2 + unsigned char flags; // offset 0x18, size 0x1 + unsigned char miscflags; // offset 0x19, size 0x1 + unsigned char subType; // offset 0x1A, size 0x1 + unsigned char pflags; // offset 0x1B, size 0x1 + unsigned char moreFlags; // offset 0x1C, size 0x1 + unsigned char isCulled; // offset 0x1D, size 0x1 + unsigned char driving_count; // offset 0x1E, size 0x1 + unsigned char num_ffx; // offset 0x1F, size 0x1 + unsigned char collType; // offset 0x20, size 0x1 + unsigned char collLev; // offset 0x21, size 0x1 + unsigned char chkby; // offset 0x22, size 0x1 + unsigned char penby; // offset 0x23, size 0x1 + class xModelInstance * model; // offset 0x24, size 0x4 + class xModelInstance * collModel; // offset 0x28, size 0x4 + class xModelInstance * camcollModel; // offset 0x2C, size 0x4 + class xLightKit * lightKit; // offset 0x30, size 0x4 + void (* update)(class xEnt *, class xScene *, float); // offset 0x34, size 0x4 + void (* endUpdate)(class xEnt *, class xScene *, float); // offset 0x38, size 0x4 + void (* bupdate)(class xEnt *, class xVec3 *); // offset 0x3C, size 0x4 + void (* move)(class xEnt *, class xScene *, float, class xEntFrame *); // offset 0x40, size 0x4 + void (* render)(class xEnt *); // offset 0x44, size 0x4 + class xEntFrame * frame; // offset 0x48, size 0x4 + class xEntCollis * collis; // offset 0x4C, size 0x4 + class xGridBound gridb; // offset 0x50, size 0x14 + class xBound bound; // offset 0x64, size 0x4C + void (* transl)(class xEnt *, class xVec3 *, class xMat4x3 *); // offset 0xB0, size 0x4 + class xFFX * ffx; // offset 0xB4, size 0x4 + class xEnt * driver; // offset 0xB8, size 0x4 + signed int driveMode; // offset 0xBC, size 0x4 + class xShadowSimpleCache * simpShadow; // offset 0xC0, size 0x4 + class xEntShadow * entShadow; // offset 0xC4, size 0x4 + class anim_coll_data * anim_coll; // offset 0xC8, size 0x4 + void * user_data; // offset 0xCC, size 0x4 +}; +class RpMaterialList { + // total size: 0xC +public: + class RpMaterial * * materials; // offset 0x0, size 0x4 + signed int numMaterials; // offset 0x4, size 0x4 + signed int space; // offset 0x8, size 0x4 +}; +class RwCamera { + // total size: 0x190 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + enum RwCameraProjection projectionType; // offset 0x14, size 0x4 + class RwCamera * (* beginUpdate)(class RwCamera *); // offset 0x18, size 0x4 + class RwCamera * (* endUpdate)(class RwCamera *); // offset 0x1C, size 0x4 + class RwMatrixTag viewMatrix; // offset 0x20, size 0x40 + class RwRaster * frameBuffer; // offset 0x60, size 0x4 + class RwRaster * zBuffer; // offset 0x64, size 0x4 + class RwV2d viewWindow; // offset 0x68, size 0x8 + class RwV2d recipViewWindow; // offset 0x70, size 0x8 + class RwV2d viewOffset; // offset 0x78, size 0x8 + float nearPlane; // offset 0x80, size 0x4 + float farPlane; // offset 0x84, size 0x4 + float fogPlane; // offset 0x88, size 0x4 + float zScale; // offset 0x8C, size 0x4 + float zShift; // offset 0x90, size 0x4 + class RwFrustumPlane frustumPlanes[6]; // offset 0x94, size 0x78 + class RwBBox frustumBoundBox; // offset 0x10C, size 0x18 + class RwV3d frustumCorners[8]; // offset 0x124, size 0x60 +}; +class zEnt : public xEnt { + // total size: 0xD4 +public: + class xAnimTable * atbl; // offset 0xD0, size 0x4 +}; +class rxHeapSuperBlockDescriptor { + // total size: 0xC +public: + void * start; // offset 0x0, size 0x4 + unsigned int size; // offset 0x4, size 0x4 + class rxHeapSuperBlockDescriptor * next; // offset 0x8, size 0x4 +}; +class xJSPNodeInfo { + // total size: 0x8 +public: + signed int originalMatIndex; // offset 0x0, size 0x4 + signed int nodeFlags; // offset 0x4, size 0x4 +}; +class xEnvAsset : public xBaseAsset { + // total size: 0x44 +public: + unsigned int bspAssetID; // offset 0x8, size 0x4 + unsigned int startCameraAssetID; // offset 0xC, size 0x4 + unsigned int climateFlags; // offset 0x10, size 0x4 + float climateStrengthMin; // offset 0x14, size 0x4 + float climateStrengthMax; // offset 0x18, size 0x4 + unsigned int bspLightKit; // offset 0x1C, size 0x4 + unsigned int objectLightKit; // offset 0x20, size 0x4 + float padF1; // offset 0x24, size 0x4 + unsigned int bspCollisionAssetID; // offset 0x28, size 0x4 + unsigned int bspFXAssetID; // offset 0x2C, size 0x4 + unsigned int bspCameraAssetID; // offset 0x30, size 0x4 + unsigned int bspMapperID; // offset 0x34, size 0x4 + unsigned int bspMapperCollisionID; // offset 0x38, size 0x4 + unsigned int bspMapperFXID; // offset 0x3C, size 0x4 + float loldHeight; // offset 0x40, size 0x4 +}; +class xSurface { + // total size: 0x0 +}; +class RpAtomic { + // total size: 0x70 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + class RwResEntry * repEntry; // offset 0x14, size 0x4 + class RpGeometry * geometry; // offset 0x18, size 0x4 + class RwSphere boundingSphere; // offset 0x1C, size 0x10 + class RwSphere worldBoundingSphere; // offset 0x2C, size 0x10 + class RpClump * clump; // offset 0x3C, size 0x4 + class RwLLLink inClumpLink; // offset 0x40, size 0x8 + class RpAtomic * (* renderCallBack)(class RpAtomic *); // offset 0x48, size 0x4 + class RpInterpolator interpolator; // offset 0x4C, size 0x14 + unsigned short renderFrame; // offset 0x60, size 0x2 + unsigned short pad; // offset 0x62, size 0x2 + class RwLinkList llWorldSectorsInAtomic; // offset 0x64, size 0x8 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class RxPipeline { + // total size: 0x34 +public: + signed int locked; // offset 0x0, size 0x4 + unsigned int numNodes; // offset 0x4, size 0x4 + class RxPipelineNode * nodes; // offset 0x8, size 0x4 + unsigned int packetNumClusterSlots; // offset 0xC, size 0x4 + enum rxEmbeddedPacketState embeddedPacketState; // offset 0x10, size 0x4 + class RxPacket * embeddedPacket; // offset 0x14, size 0x4 + unsigned int numInputRequirements; // offset 0x18, size 0x4 + class RxPipelineRequiresCluster * inputRequirements; // offset 0x1C, size 0x4 + void * superBlock; // offset 0x20, size 0x4 + unsigned int superBlockSize; // offset 0x24, size 0x4 + unsigned int entryPoint; // offset 0x28, size 0x4 + unsigned int pluginId; // offset 0x2C, size 0x4 + unsigned int pluginData; // offset 0x30, size 0x4 +}; +class RpMaterial { + // total size: 0x1C +public: + class RwTexture * texture; // offset 0x0, size 0x4 + class RwRGBA color; // offset 0x4, size 0x4 + class RxPipeline * pipeline; // offset 0x8, size 0x4 + class RwSurfaceProperties surfaceProps; // offset 0xC, size 0xC + signed short refCount; // offset 0x18, size 0x2 + signed short pad; // offset 0x1A, size 0x2 +}; +class RxPipelineCluster { + // total size: 0x8 +public: + class RxClusterDefinition * clusterRef; // offset 0x0, size 0x4 + unsigned int creationAttributes; // offset 0x4, size 0x4 +}; +class zCutsceneMgr { + // total size: 0x0 +}; +class xUpdateCullEnt { + // total size: 0x10 +public: + unsigned short index; // offset 0x0, size 0x2 + signed short groupIndex; // offset 0x2, size 0x2 + unsigned int (* cb)(void *, void *); // offset 0x4, size 0x4 + void * cbdata; // offset 0x8, size 0x4 + class xUpdateCullEnt * nextInGroup; // offset 0xC, size 0x4 +}; +class RxPipelineNodeParam { + // total size: 0x8 +public: + void * dataParam; // offset 0x0, size 0x4 + class RxHeap * heap; // offset 0x4, size 0x4 +}; +class zVolume : public xVolume { + // total size: 0x14 +}; +class xGridBound { + // total size: 0x14 +public: + void * data; // offset 0x0, size 0x4 + unsigned short gx; // offset 0x4, size 0x2 + unsigned short gz; // offset 0x6, size 0x2 + unsigned char ingrid; // offset 0x8, size 0x1 + unsigned char oversize; // offset 0x9, size 0x1 + unsigned char deleted; // offset 0xA, size 0x1 + unsigned char gpad; // offset 0xB, size 0x1 + class xGridBound * * head; // offset 0xC, size 0x4 + class xGridBound * next; // offset 0x10, size 0x4 +}; +class xModelPool { + // total size: 0xC +public: + class xModelPool * Next; // offset 0x0, size 0x4 + unsigned int NumMatrices; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 +}; +class xVolumeAsset : public xBaseAsset { + // total size: 0x64 +public: + unsigned int flags; // offset 0x8, size 0x4 + class xBound bound; // offset 0xC, size 0x4C + float rot; // offset 0x58, size 0x4 + float xpivot; // offset 0x5C, size 0x4 + float zpivot; // offset 0x60, size 0x4 +}; +class RxHeap { + // total size: 0x1C +public: + unsigned int superBlockSize; // offset 0x0, size 0x4 + class rxHeapSuperBlockDescriptor * head; // offset 0x4, size 0x4 + class rxHeapBlockHeader * headBlock; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeBlocks; // offset 0xC, size 0x4 + unsigned int entriesAlloced; // offset 0x10, size 0x4 + unsigned int entriesUsed; // offset 0x14, size 0x4 + signed int dirty; // offset 0x18, size 0x4 +}; +class xModelInstance { + // total size: 0x6C +public: + class xModelInstance * Next; // offset 0x0, size 0x4 + class xModelInstance * Parent; // offset 0x4, size 0x4 + class xModelPool * Pool; // offset 0x8, size 0x4 + class xAnimPlay * Anim; // offset 0xC, size 0x4 + class RpAtomic * Data; // offset 0x10, size 0x4 + unsigned int PipeFlags; // offset 0x14, size 0x4 + float RedMultiplier; // offset 0x18, size 0x4 + float GreenMultiplier; // offset 0x1C, size 0x4 + float BlueMultiplier; // offset 0x20, size 0x4 + float Alpha; // offset 0x24, size 0x4 + float FadeStart; // offset 0x28, size 0x4 + float FadeEnd; // offset 0x2C, size 0x4 + class xSurface * Surf; // offset 0x30, size 0x4 + class xModelBucket * * Bucket; // offset 0x34, size 0x4 + class xModelInstance * BucketNext; // offset 0x38, size 0x4 + class xLightKit * LightKit; // offset 0x3C, size 0x4 + void * Object; // offset 0x40, size 0x4 + unsigned short Flags; // offset 0x44, size 0x2 + unsigned char BoneCount; // offset 0x46, size 0x1 + unsigned char BoneIndex; // offset 0x47, size 0x1 + unsigned char * BoneRemap; // offset 0x48, size 0x4 + class RwMatrixTag * Mat; // offset 0x4C, size 0x4 + class xVec3 Scale; // offset 0x50, size 0xC + unsigned int modelID; // offset 0x5C, size 0x4 + unsigned int shadowID; // offset 0x60, size 0x4 + class RpAtomic * shadowmapAtomic; // offset 0x64, size 0x4 + class /* @class */ { + // total size: 0x4 + public: + class xVec3 * verts; // offset 0x0, size 0x4 + } anim_coll; // offset 0x68, size 0x4 +}; +class xAnimTable { + // total size: 0x1C +public: + class xAnimTable * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + class xAnimTransition * TransitionList; // offset 0x8, size 0x4 + class xAnimState * StateList; // offset 0xC, size 0x4 + unsigned int AnimIndex; // offset 0x10, size 0x4 + unsigned int MorphIndex; // offset 0x14, size 0x4 + unsigned int UserFlags; // offset 0x18, size 0x4 +}; +class RwRGBA { + // total size: 0x4 +public: + unsigned char red; // offset 0x0, size 0x1 + unsigned char green; // offset 0x1, size 0x1 + unsigned char blue; // offset 0x2, size 0x1 + unsigned char alpha; // offset 0x3, size 0x1 +}; +class RwBBox { + // total size: 0x18 +public: + class RwV3d sup; // offset 0x0, size 0xC + class RwV3d inf; // offset 0xC, size 0xC +}; +class xQuat { + // total size: 0x10 +public: + class xVec3 v; // offset 0x0, size 0xC + float s; // offset 0xC, size 0x4 +}; +class zAssetPickupTable { + // total size: 0x0 +}; +class xAnimEffect { + // total size: 0x14 +public: + class xAnimEffect * Next; // offset 0x0, size 0x4 + unsigned int Flags; // offset 0x4, size 0x4 + float StartTime; // offset 0x8, size 0x4 + float EndTime; // offset 0xC, size 0x4 + unsigned int (* Callback)(unsigned int, class xAnimActiveEffect *, class xAnimSingle *, void *); // offset 0x10, size 0x4 +}; +class xMat4x3 : public xMat3x3 { + // total size: 0x40 +public: + class xVec3 pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +class xBaseAsset { + // total size: 0x8 +public: + unsigned int id; // offset 0x0, size 0x4 + unsigned char baseType; // offset 0x4, size 0x1 + unsigned char linkCount; // offset 0x5, size 0x1 + unsigned short baseFlags; // offset 0x6, size 0x2 +}; +class RpGeometry { + // total size: 0x60 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + unsigned short lockedSinceLastInst; // offset 0xC, size 0x2 + signed short refCount; // offset 0xE, size 0x2 + signed int numTriangles; // offset 0x10, size 0x4 + signed int numVertices; // offset 0x14, size 0x4 + signed int numMorphTargets; // offset 0x18, size 0x4 + signed int numTexCoordSets; // offset 0x1C, size 0x4 + class RpMaterialList matList; // offset 0x20, size 0xC + class RpTriangle * triangles; // offset 0x2C, size 0x4 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x34, size 0x20 + class RpMeshHeader * mesh; // offset 0x54, size 0x4 + class RwResEntry * repEntry; // offset 0x58, size 0x4 + class RpMorphTarget * morphTarget; // offset 0x5C, size 0x4 +}; +class RwTexCoords { + // total size: 0x8 +public: + float u; // offset 0x0, size 0x4 + float v; // offset 0x4, size 0x4 +}; +class RwV3d { + // total size: 0xC +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 +}; +class RpWorldSector { + // total size: 0x90 +public: + signed int type; // offset 0x0, size 0x4 + class RpPolygon * polygons; // offset 0x4, size 0x4 + class RwV3d * vertices; // offset 0x8, size 0x4 + class RpVertexNormal * normals; // offset 0xC, size 0x4 + class RwTexCoords * texCoords[8]; // offset 0x10, size 0x20 + class RwRGBA * preLitLum; // offset 0x30, size 0x4 + class RwResEntry * repEntry; // offset 0x34, size 0x4 + class RwLinkList collAtomicsInWorldSector; // offset 0x38, size 0x8 + class RwLinkList noCollAtomicsInWorldSector; // offset 0x40, size 0x8 + class RwLinkList lightsInWorldSector; // offset 0x48, size 0x8 + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RwBBox tightBoundingBox; // offset 0x68, size 0x18 + class RpMeshHeader * mesh; // offset 0x80, size 0x4 + class RxPipeline * pipeline; // offset 0x84, size 0x4 + unsigned short matListWindowBase; // offset 0x88, size 0x2 + unsigned short numVertices; // offset 0x8A, size 0x2 + unsigned short numPolygons; // offset 0x8C, size 0x2 + unsigned short pad; // offset 0x8E, size 0x2 +}; +class rxHeapBlockHeader { + // total size: 0x20 +public: + class rxHeapBlockHeader * prev; // offset 0x0, size 0x4 + class rxHeapBlockHeader * next; // offset 0x4, size 0x4 + unsigned int size; // offset 0x8, size 0x4 + class rxHeapFreeBlock * freeEntry; // offset 0xC, size 0x4 + unsigned int pad[4]; // offset 0x10, size 0x10 +}; +class iFogParams { + // total size: 0x1C +public: + enum RwFogType type; // offset 0x0, size 0x4 + float start; // offset 0x4, size 0x4 + float stop; // offset 0x8, size 0x4 + float density; // offset 0xC, size 0x4 + class RwRGBA fogcolor; // offset 0x10, size 0x4 + class RwRGBA bgcolor; // offset 0x14, size 0x4 + unsigned char * table; // offset 0x18, size 0x4 +}; +class xEntBoulder { + // total size: 0x0 +}; +class xVolume : public xBase { + // total size: 0x14 +public: + class xVolumeAsset * asset; // offset 0x10, size 0x4 +}; +class xBound { + // total size: 0x4C +public: + class xQCData qcd; // offset 0x0, size 0x20 + unsigned char type; // offset 0x20, size 0x1 + unsigned char pad[3]; // offset 0x21, size 0x3 + union { // inferred + class xSphere sph; // offset 0x24, size 0x10 + class xBBox box; // offset 0x24, size 0x24 + class xCylinder cyl; // offset 0x24, size 0x14 + }; + class xMat4x3 * mat; // offset 0x48, size 0x4 +}; +class _tagxRumble { + // total size: 0x10 +public: + enum _tagRumbleType type; // offset 0x0, size 0x4 + float seconds; // offset 0x4, size 0x4 + class _tagxRumble * next; // offset 0x8, size 0x4 + signed short active; // offset 0xC, size 0x2 + unsigned short fxflags; // offset 0xE, size 0x2 +}; +class iEnv { + // total size: 0x30 +public: + class RpWorld * world; // offset 0x0, size 0x4 + class RpWorld * collision; // offset 0x4, size 0x4 + class RpWorld * fx; // offset 0x8, size 0x4 + class RpWorld * camera; // offset 0xC, size 0x4 + class xJSPHeader * jsp; // offset 0x10, size 0x4 + class RpLight * light[2]; // offset 0x14, size 0x8 + class RwFrame * light_frame[2]; // offset 0x1C, size 0x8 + signed int memlvl; // offset 0x24, size 0x4 +}; +class xUpdateCullGroup { + // total size: 0xC +public: + unsigned int active; // offset 0x0, size 0x4 + unsigned short startIndex; // offset 0x4, size 0x2 + unsigned short endIndex; // offset 0x6, size 0x2 + class xGroup * groupObject; // offset 0x8, size 0x4 +}; +class RxPipelineRequiresCluster { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterValidityReq rqdOrOpt; // offset 0x4, size 0x4 + unsigned int slotIndex; // offset 0x8, size 0x4 +}; +class RpMorphTarget { + // total size: 0x1C +public: + class RpGeometry * parentGeom; // offset 0x0, size 0x4 + class RwSphere boundingSphere; // offset 0x4, size 0x10 + class RwV3d * verts; // offset 0x14, size 0x4 + class RwV3d * normals; // offset 0x18, size 0x4 +}; +class RpWorld { + // total size: 0x70 +public: + class RwObject object; // offset 0x0, size 0x8 + unsigned int flags; // offset 0x8, size 0x4 + enum RpWorldRenderOrder renderOrder; // offset 0xC, size 0x4 + class RpMaterialList matList; // offset 0x10, size 0xC + class RpSector * rootSector; // offset 0x1C, size 0x4 + signed int numTexCoordSets; // offset 0x20, size 0x4 + signed int numClumpsInWorld; // offset 0x24, size 0x4 + class RwLLLink * currentClumpLink; // offset 0x28, size 0x4 + class RwLinkList clumpList; // offset 0x2C, size 0x8 + class RwLinkList lightList; // offset 0x34, size 0x8 + class RwLinkList directionalLightList; // offset 0x3C, size 0x8 + class RwV3d worldOrigin; // offset 0x44, size 0xC + class RwBBox boundingBox; // offset 0x50, size 0x18 + class RpWorldSector * (* renderCallBack)(class RpWorldSector *); // offset 0x68, size 0x4 + class RxPipeline * pipeline; // offset 0x6C, size 0x4 +}; +class tri_data : public tri_data { + // total size: 0x20 +public: + class xVec3 loc; // offset 0xC, size 0xC + float yaw; // offset 0x18, size 0x4 + class xCollis * coll; // offset 0x1C, size 0x4 +}; +class RpVertexNormal { + // total size: 0x4 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 + signed char z; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 +}; +class xEntShadow { + // total size: 0x28 +public: + class xVec3 pos; // offset 0x0, size 0xC + class xVec3 vec; // offset 0xC, size 0xC + class RpAtomic * shadowModel; // offset 0x18, size 0x4 + float dst_cast; // offset 0x1C, size 0x4 + float radius[2]; // offset 0x20, size 0x8 +}; +class xMemPool { + // total size: 0x1C +public: + void * FreeList; // offset 0x0, size 0x4 + unsigned short NextOffset; // offset 0x4, size 0x2 + unsigned short Flags; // offset 0x6, size 0x2 + void * UsedList; // offset 0x8, size 0x4 + void (* InitCB)(class xMemPool *, void *); // offset 0xC, size 0x4 + void * Buffer; // offset 0x10, size 0x4 + unsigned short Size; // offset 0x14, size 0x2 + unsigned short NumRealloc; // offset 0x16, size 0x2 + unsigned int Total; // offset 0x18, size 0x4 +}; +class xVec4 { + // total size: 0x10 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 + float z; // offset 0x8, size 0x4 + float w; // offset 0xC, size 0x4 +}; +class xJSPHeader { + // total size: 0x18 +public: + char idtag[4]; // offset 0x0, size 0x4 + unsigned int version; // offset 0x4, size 0x4 + unsigned int jspNodeCount; // offset 0x8, size 0x4 + class RpClump * clump; // offset 0xC, size 0x4 + class xClumpCollBSPTree * colltree; // offset 0x10, size 0x4 + class xJSPNodeInfo * jspNodeList; // offset 0x14, size 0x4 +}; +class xCollis { + // total size: 0x50 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned int oid; // offset 0x4, size 0x4 + void * optr; // offset 0x8, size 0x4 + class xModelInstance * mptr; // offset 0xC, size 0x4 + float dist; // offset 0x10, size 0x4 + class xVec3 norm; // offset 0x14, size 0xC + class xVec3 tohit; // offset 0x20, size 0xC + class xVec3 depen; // offset 0x2C, size 0xC + class xVec3 hdng; // offset 0x38, size 0xC + union { // inferred + class /* @class */ { + // total size: 0xC + public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 + } tuv; // offset 0x44, size 0xC + class tri_data tri; // offset 0x44, size 0xC + }; +}; +class RwSurfaceProperties { + // total size: 0xC +public: + float ambient; // offset 0x0, size 0x4 + float specular; // offset 0x4, size 0x4 + float diffuse; // offset 0x8, size 0x4 +}; +class RpLight { + // total size: 0x40 +public: + class RwObjectHasFrame object; // offset 0x0, size 0x14 + float radius; // offset 0x14, size 0x4 + class RwRGBAReal color; // offset 0x18, size 0x10 + float minusCosAngle; // offset 0x28, size 0x4 + class RwLinkList WorldSectorsInLight; // offset 0x2C, size 0x8 + class RwLLLink inWorld; // offset 0x34, size 0x8 + unsigned short lightFrame; // offset 0x3C, size 0x2 + unsigned short pad; // offset 0x3E, size 0x2 +}; +class RpMeshHeader { + // total size: 0x10 +public: + unsigned int flags; // offset 0x0, size 0x4 + unsigned short numMeshes; // offset 0x4, size 0x2 + unsigned short serialNum; // offset 0x6, size 0x2 + unsigned int totalIndicesInMesh; // offset 0x8, size 0x4 + unsigned int firstMeshOffset; // offset 0xC, size 0x4 +}; +class RwMatrixTag { + // total size: 0x40 +public: + class RwV3d right; // offset 0x0, size 0xC + unsigned int flags; // offset 0xC, size 0x4 + class RwV3d up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class RwV3d at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 + class RwV3d pos; // offset 0x30, size 0xC + unsigned int pad3; // offset 0x3C, size 0x4 +}; +enum _tagPadState { + ePad_Disabled = 0, + ePad_DisabledError = 1, + ePad_Enabled = 2, + ePad_Missing = 3, + ePad_Total = 4, +}; +class RwResEntry { + // total size: 0x18 +public: + class RwLLLink link; // offset 0x0, size 0x8 + signed int size; // offset 0x8, size 0x4 + void * owner; // offset 0xC, size 0x4 + class RwResEntry * * ownerRef; // offset 0x10, size 0x4 + void (* destroyNotify)(class RwResEntry *); // offset 0x14, size 0x4 +}; +class rxReq { + // total size: 0x0 +}; +class RwFrame { + // total size: 0xB0 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLLLink inDirtyListLink; // offset 0x8, size 0x8 + class RwMatrixTag modelling; // offset 0x10, size 0x40 + class RwMatrixTag ltm; // offset 0x50, size 0x40 + class RwLinkList objectList; // offset 0x90, size 0x8 + class RwFrame * child; // offset 0x98, size 0x4 + class RwFrame * next; // offset 0x9C, size 0x4 + class RwFrame * root; // offset 0xA0, size 0x4 +}; +class xGlobals { + // total size: 0x700 +public: + class xCamera camera; // offset 0x0, size 0x330 + class _tagxPad * pad0; // offset 0x330, size 0x4 + class _tagxPad * pad1; // offset 0x334, size 0x4 + class _tagxPad * pad2; // offset 0x338, size 0x4 + class _tagxPad * pad3; // offset 0x33C, size 0x4 + signed int profile; // offset 0x340, size 0x4 + char profFunc[6][128]; // offset 0x344, size 0x300 + class xUpdateCullMgr * updateMgr; // offset 0x644, size 0x4 + signed int sceneFirst; // offset 0x648, size 0x4 + char sceneStart[32]; // offset 0x64C, size 0x20 + class RpWorld * currWorld; // offset 0x66C, size 0x4 + class iFogParams fog; // offset 0x670, size 0x1C + class iFogParams fogA; // offset 0x68C, size 0x1C + class iFogParams fogB; // offset 0x6A8, size 0x1C + signed long fog_t0; // offset 0x6C8, size 0x4 + signed long fog_t1; // offset 0x6D0, size 0x4 + signed int option_vibration; // offset 0x6D8, size 0x4 + unsigned int QuarterSpeed; // offset 0x6DC, size 0x4 + float update_dt; // offset 0x6E0, size 0x4 + signed int useHIPHOP; // offset 0x6E4, size 0x4 + unsigned char NoMusic; // offset 0x6E8, size 0x1 + char currentActivePad; // offset 0x6E9, size 0x1 + unsigned char firstStartPressed; // offset 0x6EA, size 0x1 + unsigned int minVSyncCnt; // offset 0x6EC, size 0x4 + unsigned char dontShowPadMessageDuringLoadingOrCutScene; // offset 0x6F0, size 0x1 + unsigned char autoSaveFeature; // offset 0x6F1, size 0x1 +}; +enum RxClusterValidityReq { + rxCLREQ_DONTWANT = 0, + rxCLREQ_REQUIRED = 1, + rxCLREQ_OPTIONAL = 2, + rxCLUSTERVALIDITYREQFORCEENUMSIZEINT = 2147483647, +}; +class xEntAsset : public xBaseAsset { + // total size: 0x54 +public: + unsigned char flags; // offset 0x8, size 0x1 + unsigned char subtype; // offset 0x9, size 0x1 + unsigned char pflags; // offset 0xA, size 0x1 + unsigned char moreFlags; // offset 0xB, size 0x1 + unsigned char pad; // offset 0xC, size 0x1 + unsigned int surfaceID; // offset 0x10, size 0x4 + class xVec3 ang; // offset 0x14, size 0xC + class xVec3 pos; // offset 0x20, size 0xC + class xVec3 scale; // offset 0x2C, size 0xC + float redMult; // offset 0x38, size 0x4 + float greenMult; // offset 0x3C, size 0x4 + float blueMult; // offset 0x40, size 0x4 + float seeThru; // offset 0x44, size 0x4 + float seeThruSpeed; // offset 0x48, size 0x4 + unsigned int modelInfoID; // offset 0x4C, size 0x4 + unsigned int animListID; // offset 0x50, size 0x4 +}; +class xPortalAsset : public xBaseAsset { + // total size: 0x18 +public: + unsigned int assetCameraID; // offset 0x8, size 0x4 + unsigned int assetMarkerID; // offset 0xC, size 0x4 + float ang; // offset 0x10, size 0x4 + unsigned int sceneID; // offset 0x14, size 0x4 +}; +class zLasso { + // total size: 0xFC +public: + unsigned int flags; // offset 0x0, size 0x4 + float secsTotal; // offset 0x4, size 0x4 + float secsLeft; // offset 0x8, size 0x4 + float stRadius; // offset 0xC, size 0x4 + float tgRadius; // offset 0x10, size 0x4 + float crRadius; // offset 0x14, size 0x4 + class xVec3 stCenter; // offset 0x18, size 0xC + class xVec3 tgCenter; // offset 0x24, size 0xC + class xVec3 crCenter; // offset 0x30, size 0xC + class xVec3 stNormal; // offset 0x3C, size 0xC + class xVec3 tgNormal; // offset 0x48, size 0xC + class xVec3 crNormal; // offset 0x54, size 0xC + class xVec3 honda; // offset 0x60, size 0xC + float stSlack; // offset 0x6C, size 0x4 + float stSlackDist; // offset 0x70, size 0x4 + float tgSlack; // offset 0x74, size 0x4 + float tgSlackDist; // offset 0x78, size 0x4 + float crSlack; // offset 0x7C, size 0x4 + float currDist; // offset 0x80, size 0x4 + float lastDist; // offset 0x84, size 0x4 + class xVec3 lastRefs[5]; // offset 0x88, size 0x3C + unsigned char reindex[5]; // offset 0xC4, size 0x5 + class xVec3 anchor; // offset 0xCC, size 0xC + class xModelTag tag; // offset 0xD8, size 0x20 + class xModelInstance * model; // offset 0xF8, size 0x4 +}; +class xAnimFile { + // total size: 0x20 +public: + class xAnimFile * Next; // offset 0x0, size 0x4 + char * Name; // offset 0x4, size 0x4 + unsigned int ID; // offset 0x8, size 0x4 + unsigned int FileFlags; // offset 0xC, size 0x4 + float Duration; // offset 0x10, size 0x4 + float TimeOffset; // offset 0x14, size 0x4 + unsigned short BoneCount; // offset 0x18, size 0x2 + unsigned char NumAnims[2]; // offset 0x1A, size 0x2 + void * * RawData; // offset 0x1C, size 0x4 +}; +class RpTriangle { + // total size: 0x8 +public: + unsigned short vertIndex[3]; // offset 0x0, size 0x6 + signed short matIndex; // offset 0x6, size 0x2 +}; +class _tagxPad { + // total size: 0x148 +public: + unsigned char value[22]; // offset 0x0, size 0x16 + unsigned char last_value[22]; // offset 0x16, size 0x16 + unsigned int on; // offset 0x2C, size 0x4 + unsigned int pressed; // offset 0x30, size 0x4 + unsigned int released; // offset 0x34, size 0x4 + class _tagPadAnalog analog1; // offset 0x38, size 0x2 + class _tagPadAnalog analog2; // offset 0x3A, size 0x2 + enum _tagPadState state; // offset 0x3C, size 0x4 + unsigned int flags; // offset 0x40, size 0x4 + class _tagxRumble rumble_head; // offset 0x44, size 0x10 + signed short port; // offset 0x54, size 0x2 + signed short slot; // offset 0x56, size 0x2 + class _tagiPad context; // offset 0x58, size 0x4 + float al2d_timer; // offset 0x5C, size 0x4 + float ar2d_timer; // offset 0x60, size 0x4 + float d_timer; // offset 0x64, size 0x4 + float up_tmr[22]; // offset 0x68, size 0x58 + float down_tmr[22]; // offset 0xC0, size 0x58 + class analog_data analog[2]; // offset 0x118, size 0x30 +}; +class xLinkAsset { + // total size: 0x20 +public: + unsigned short srcEvent; // offset 0x0, size 0x2 + unsigned short dstEvent; // offset 0x2, size 0x2 + unsigned int dstAssetID; // offset 0x4, size 0x4 + float param[4]; // offset 0x8, size 0x10 + unsigned int paramWidgetAssetID; // offset 0x18, size 0x4 + unsigned int chkAssetID; // offset 0x1C, size 0x4 +}; +class xAnimTransitionList { + // total size: 0x8 +public: + class xAnimTransitionList * Next; // offset 0x0, size 0x4 + class xAnimTransition * T; // offset 0x4, size 0x4 +}; +enum RxNodeDefEditable { + rxNODEDEFCONST = 0, + rxNODEDEFEDITABLE = 1, + rxNODEDEFEDITABLEFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterValid { + rxCLVALID_NOCHANGE = 0, + rxCLVALID_VALID = 1, + rxCLVALID_INVALID = 2, + rxCLUSTERVALIDFORCEENUMSIZEINT = 2147483647, +}; +class xRot { + // total size: 0x10 +public: + class xVec3 axis; // offset 0x0, size 0xC + float angle; // offset 0xC, size 0x4 +}; +class xGroupAsset : public xBaseAsset { + // total size: 0xC +public: + unsigned short itemCount; // offset 0x8, size 0x2 + unsigned short groupFlags; // offset 0xA, size 0x2 +}; +class _tagPadAnalog { + // total size: 0x2 +public: + signed char x; // offset 0x0, size 0x1 + signed char y; // offset 0x1, size 0x1 +}; +class PreCalcOcclude { + // total size: 0x50 +public: + class xVec4 DepthVec; // offset 0x0, size 0x10 + class xVec4 FrustVec[4]; // offset 0x10, size 0x40 +}; +class _tagiPad { + // total size: 0x4 +public: + signed int port; // offset 0x0, size 0x4 +}; +enum rxEmbeddedPacketState { + rxPKST_PACKETLESS = 0, + rxPKST_UNUSED = 1, + rxPKST_INUSE = 2, + rxPKST_PENDING = 3, + rxEMBEDDEDPACKETSTATEFORCEENUMSIZEINT = 2147483647, +}; +class xSphere { + // total size: 0x10 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 +}; +class xEnv { + // total size: 0x50 +public: + class iEnv * geom; // offset 0x0, size 0x4 + class iEnv ienv; // offset 0x10, size 0x30 + class xLightKit * lightKit; // offset 0x40, size 0x4 +}; +class xModelTag { + // total size: 0x20 +public: + class xVec3 v; // offset 0x0, size 0xC + unsigned int matidx; // offset 0xC, size 0x4 + float wt[4]; // offset 0x10, size 0x10 +}; +enum RwCameraProjection { + rwNACAMERAPROJECTION = 0, + rwPERSPECTIVE = 1, + rwPARALLEL = 2, + rwCAMERAPROJECTIONFORCEENUMSIZEINT = 2147483647, +}; +enum RxClusterForcePresent { + rxCLALLOWABSENT = 0, + rxCLFORCEPRESENT = 1, + rxCLUSTERFORCEPRESENTFORCEENUMSIZEINT = 2147483647, +}; +class xCylinder { + // total size: 0x14 +public: + class xVec3 center; // offset 0x0, size 0xC + float r; // offset 0xC, size 0x4 + float h; // offset 0x10, size 0x4 +}; +class xVec2 { + // total size: 0x8 +public: + float x; // offset 0x0, size 0x4 + float y; // offset 0x4, size 0x4 +}; +class xBox { + // total size: 0x18 +public: + class xVec3 upper; // offset 0x0, size 0xC + class xVec3 lower; // offset 0xC, size 0xC +}; +class xClumpCollBSPVertInfo { + // total size: 0x4 +public: + unsigned short atomIndex; // offset 0x0, size 0x2 + unsigned short meshVertIndex; // offset 0x2, size 0x2 +}; +class RxClusterDefinition { + // total size: 0x10 +public: + char * name; // offset 0x0, size 0x4 + unsigned int defaultStride; // offset 0x4, size 0x4 + unsigned int defaultAttributes; // offset 0x8, size 0x4 + char * attributeSet; // offset 0xC, size 0x4 +}; +class xClumpCollBSPBranchNode { + // total size: 0x10 +public: + unsigned int leftInfo; // offset 0x0, size 0x4 + unsigned int rightInfo; // offset 0x4, size 0x4 + float leftValue; // offset 0x8, size 0x4 + float rightValue; // offset 0xC, size 0x4 +}; +class xEntCollis { + // total size: 0x5B4 +public: + unsigned char chk; // offset 0x0, size 0x1 + unsigned char pen; // offset 0x1, size 0x1 + unsigned char env_sidx; // offset 0x2, size 0x1 + unsigned char env_eidx; // offset 0x3, size 0x1 + unsigned char npc_sidx; // offset 0x4, size 0x1 + unsigned char npc_eidx; // offset 0x5, size 0x1 + unsigned char dyn_sidx; // offset 0x6, size 0x1 + unsigned char dyn_eidx; // offset 0x7, size 0x1 + unsigned char stat_sidx; // offset 0x8, size 0x1 + unsigned char stat_eidx; // offset 0x9, size 0x1 + unsigned char idx; // offset 0xA, size 0x1 + class xCollis colls[18]; // offset 0xC, size 0x5A0 + void (* post)(class xEnt *, class xScene *, float, class xEntCollis *); // offset 0x5AC, size 0x4 + unsigned int (* depenq)(class xEnt *, class xEnt *, class xScene *, float, class xCollis *); // offset 0x5B0, size 0x4 +}; +enum RpWorldRenderOrder { + rpWORLDRENDERNARENDERORDER = 0, + rpWORLDRENDERFRONT2BACK = 1, + rpWORLDRENDERBACK2FRONT = 2, + rpWORLDRENDERORDERFORCEENUMSIZEINT = 2147483647, +}; +class xClumpCollBSPTriangle { + // total size: 0x8 +public: + class /* @class */ { + // total size: 0x4 + public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; + } v; // offset 0x0, size 0x4 + unsigned char flags; // offset 0x4, size 0x1 + unsigned char platData; // offset 0x5, size 0x1 + unsigned short matIndex; // offset 0x6, size 0x2 +}; +class _zPortal : public xBase { + // total size: 0x14 +public: + class xPortalAsset * passet; // offset 0x10, size 0x4 +}; +class xEntFrame { + // total size: 0xF0 +public: + class xMat4x3 mat; // offset 0x0, size 0x40 + class xMat4x3 oldmat; // offset 0x40, size 0x40 + class xVec3 oldvel; // offset 0x80, size 0xC + class xRot oldrot; // offset 0x8C, size 0x10 + class xRot drot; // offset 0x9C, size 0x10 + class xRot rot; // offset 0xAC, size 0x10 + class xVec3 dpos; // offset 0xBC, size 0xC + class xVec3 dvel; // offset 0xC8, size 0xC + class xVec3 vel; // offset 0xD4, size 0xC + unsigned int mode; // offset 0xE0, size 0x4 +}; +class xFFX { + // total size: 0x0 +}; +class RwSphere { + // total size: 0x10 +public: + class RwV3d center; // offset 0x0, size 0xC + float radius; // offset 0xC, size 0x4 +}; +class RwTexture { + // total size: 0x58 +public: + class RwRaster * raster; // offset 0x0, size 0x4 + class RwTexDictionary * dict; // offset 0x4, size 0x4 + class RwLLLink lInDictionary; // offset 0x8, size 0x8 + char name[32]; // offset 0x10, size 0x20 + char mask[32]; // offset 0x30, size 0x20 + unsigned int filterAddressing; // offset 0x50, size 0x4 + signed int refCount; // offset 0x54, size 0x4 +}; +class RpSector { + // total size: 0x4 +public: + signed int type; // offset 0x0, size 0x4 +}; +class RwTexDictionary { + // total size: 0x18 +public: + class RwObject object; // offset 0x0, size 0x8 + class RwLinkList texturesInDict; // offset 0x8, size 0x8 + class RwLLLink lInInstance; // offset 0x10, size 0x8 +}; +class RxOutputSpec { + // total size: 0xC +public: + char * name; // offset 0x0, size 0x4 + enum RxClusterValid * outputClusters; // offset 0x4, size 0x4 + enum RxClusterValid allOtherClusters; // offset 0x8, size 0x4 +}; +class xModelBucket { + // total size: 0x14 +public: + class RpAtomic * Data; // offset 0x0, size 0x4 + class RpAtomic * OriginalData; // offset 0x4, size 0x4 + class xModelInstance * List; // offset 0x8, size 0x4 + signed int ClipFlags; // offset 0xC, size 0x4 + unsigned int PipeFlags; // offset 0x10, size 0x4 +}; +class xShadowSimplePoly { + // total size: 0x30 +public: + class xVec3 vert[3]; // offset 0x0, size 0x24 + class xVec3 norm; // offset 0x24, size 0xC +}; +class zGlobals : public xGlobals { + // total size: 0x2050 +public: + class zPlayerGlobals player; // offset 0x700, size 0x1940 + class zAssetPickupTable * pickupTable; // offset 0x2040, size 0x4 + class zCutsceneMgr * cmgr; // offset 0x2044, size 0x4 + class zScene * sceneCur; // offset 0x2048, size 0x4 + class zScene * scenePreload; // offset 0x204C, size 0x4 +}; +class xMat3x3 { + // total size: 0x30 +public: + class xVec3 right; // offset 0x0, size 0xC + signed int flags; // offset 0xC, size 0x4 + class xVec3 up; // offset 0x10, size 0xC + unsigned int pad1; // offset 0x1C, size 0x4 + class xVec3 at; // offset 0x20, size 0xC + unsigned int pad2; // offset 0x2C, size 0x4 +}; +class zGlobalSettings { + // total size: 0x150 +public: + unsigned short AnalogMin; // offset 0x0, size 0x2 + unsigned short AnalogMax; // offset 0x2, size 0x2 + float SundaeTime; // offset 0x4, size 0x4 + float SundaeMult; // offset 0x8, size 0x4 + unsigned int InitialShinyCount; // offset 0xC, size 0x4 + unsigned int InitialSpatulaCount; // offset 0x10, size 0x4 + signed int ShinyValuePurple; // offset 0x14, size 0x4 + signed int ShinyValueBlue; // offset 0x18, size 0x4 + signed int ShinyValueGreen; // offset 0x1C, size 0x4 + signed int ShinyValueYellow; // offset 0x20, size 0x4 + signed int ShinyValueRed; // offset 0x24, size 0x4 + signed int ShinyValueCombo0; // offset 0x28, size 0x4 + signed int ShinyValueCombo1; // offset 0x2C, size 0x4 + signed int ShinyValueCombo2; // offset 0x30, size 0x4 + signed int ShinyValueCombo3; // offset 0x34, size 0x4 + signed int ShinyValueCombo4; // offset 0x38, size 0x4 + signed int ShinyValueCombo5; // offset 0x3C, size 0x4 + signed int ShinyValueCombo6; // offset 0x40, size 0x4 + signed int ShinyValueCombo7; // offset 0x44, size 0x4 + signed int ShinyValueCombo8; // offset 0x48, size 0x4 + signed int ShinyValueCombo9; // offset 0x4C, size 0x4 + signed int ShinyValueCombo10; // offset 0x50, size 0x4 + signed int ShinyValueCombo11; // offset 0x54, size 0x4 + signed int ShinyValueCombo12; // offset 0x58, size 0x4 + signed int ShinyValueCombo13; // offset 0x5C, size 0x4 + signed int ShinyValueCombo14; // offset 0x60, size 0x4 + signed int ShinyValueCombo15; // offset 0x64, size 0x4 + float ComboTimer; // offset 0x68, size 0x4 + unsigned int Initial_Specials; // offset 0x6C, size 0x4 + unsigned int TakeDamage; // offset 0x70, size 0x4 + float DamageTimeHit; // offset 0x74, size 0x4 + float DamageTimeSurface; // offset 0x78, size 0x4 + float DamageTimeEGen; // offset 0x7C, size 0x4 + float DamageSurfKnock; // offset 0x80, size 0x4 + float DamageGiveHealthKnock; // offset 0x84, size 0x4 + unsigned int CheatSpongeball; // offset 0x88, size 0x4 + unsigned int CheatPlayerSwitch; // offset 0x8C, size 0x4 + unsigned int CheatAlwaysPortal; // offset 0x90, size 0x4 + unsigned int CheatFlyToggle; // offset 0x94, size 0x4 + unsigned int DisableForceConversation; // offset 0x98, size 0x4 + float StartSlideAngle; // offset 0x9C, size 0x4 + float StopSlideAngle; // offset 0xA0, size 0x4 + float RotMatchMaxAngle; // offset 0xA4, size 0x4 + float RotMatchMatchTime; // offset 0xA8, size 0x4 + float RotMatchRelaxTime; // offset 0xAC, size 0x4 + float Gravity; // offset 0xB0, size 0x4 + float BBashTime; // offset 0xB4, size 0x4 + float BBashHeight; // offset 0xB8, size 0x4 + float BBashDelay; // offset 0xBC, size 0x4 + float BBashCVTime; // offset 0xC0, size 0x4 + float BBounceSpeed; // offset 0xC4, size 0x4 + float BSpinMinFrame; // offset 0xC8, size 0x4 + float BSpinMaxFrame; // offset 0xCC, size 0x4 + float BSpinRadius; // offset 0xD0, size 0x4 + float SandyMeleeMinFrame; // offset 0xD4, size 0x4 + float SandyMeleeMaxFrame; // offset 0xD8, size 0x4 + float SandyMeleeRadius; // offset 0xDC, size 0x4 + float BubbleBowlTimeDelay; // offset 0xE0, size 0x4 + float BubbleBowlLaunchPosLeft; // offset 0xE4, size 0x4 + float BubbleBowlLaunchPosUp; // offset 0xE8, size 0x4 + float BubbleBowlLaunchPosAt; // offset 0xEC, size 0x4 + float BubbleBowlLaunchVelLeft; // offset 0xF0, size 0x4 + float BubbleBowlLaunchVelUp; // offset 0xF4, size 0x4 + float BubbleBowlLaunchVelAt; // offset 0xF8, size 0x4 + float BubbleBowlPercentIncrease; // offset 0xFC, size 0x4 + float BubbleBowlMinSpeed; // offset 0x100, size 0x4 + float BubbleBowlMinRecoverTime; // offset 0x104, size 0x4 + float SlideAccelVelMin; // offset 0x108, size 0x4 + float SlideAccelVelMax; // offset 0x10C, size 0x4 + float SlideAccelStart; // offset 0x110, size 0x4 + float SlideAccelEnd; // offset 0x114, size 0x4 + float SlideAccelPlayerFwd; // offset 0x118, size 0x4 + float SlideAccelPlayerBack; // offset 0x11C, size 0x4 + float SlideAccelPlayerSide; // offset 0x120, size 0x4 + float SlideVelMaxStart; // offset 0x124, size 0x4 + float SlideVelMaxEnd; // offset 0x128, size 0x4 + float SlideVelMaxIncTime; // offset 0x12C, size 0x4 + float SlideVelMaxIncAccel; // offset 0x130, size 0x4 + float SlideAirHoldTime; // offset 0x134, size 0x4 + float SlideAirSlowTime; // offset 0x138, size 0x4 + float SlideAirDblHoldTime; // offset 0x13C, size 0x4 + float SlideAirDblSlowTime; // offset 0x140, size 0x4 + float SlideVelDblBoost; // offset 0x144, size 0x4 + unsigned char SlideApplyPhysics; // offset 0x148, size 0x1 + unsigned char PowerUp[2]; // offset 0x149, size 0x2 + unsigned char InitialPowerUp[2]; // offset 0x14B, size 0x2 +}; +class RxClusterRef { + // total size: 0xC +public: + class RxClusterDefinition * clusterDef; // offset 0x0, size 0x4 + enum RxClusterForcePresent forcePresent; // offset 0x4, size 0x4 + unsigned int reserved; // offset 0x8, size 0x4 +}; +class xGroup : public xBase { + // total size: 0x20 +public: + class xGroupAsset * asset; // offset 0x10, size 0x4 + class xBase * * item; // offset 0x14, size 0x4 + unsigned int last_index; // offset 0x18, size 0x4 + signed int flg_group; // offset 0x1C, size 0x4 +}; +class RwObject { + // total size: 0x8 +public: + unsigned char type; // offset 0x0, size 0x1 + unsigned char subType; // offset 0x1, size 0x1 + unsigned char flags; // offset 0x2, size 0x1 + unsigned char privateFlags; // offset 0x3, size 0x1 + void * parent; // offset 0x4, size 0x4 +}; +class RwLLLink { + // total size: 0x8 +public: + class RwLLLink * next; // offset 0x0, size 0x4 + class RwLLLink * prev; // offset 0x4, size 0x4 +}; +class zPlayerLassoInfo { + // total size: 0x120 +public: + class xEnt * target; // offset 0x0, size 0x4 + float dist; // offset 0x4, size 0x4 + unsigned char destroy; // offset 0x8, size 0x1 + unsigned char targetGuide; // offset 0x9, size 0x1 + float lassoRot; // offset 0xC, size 0x4 + class xEnt * swingTarget; // offset 0x10, size 0x4 + class xEnt * releasedSwing; // offset 0x14, size 0x4 + float copterTime; // offset 0x18, size 0x4 + signed int canCopter; // offset 0x1C, size 0x4 + class zLasso lasso; // offset 0x20, size 0xFC + class xAnimState * zeroAnim; // offset 0x11C, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + union { // inferred + class xClumpCollBSPVertInfo i; // offset 0x0, size 0x4 + class RwV3d * p; // offset 0x0, size 0x4 + }; +}; +class xLightKit { + // total size: 0x10 +public: + unsigned int tagID; // offset 0x0, size 0x4 + unsigned int groupID; // offset 0x4, size 0x4 + unsigned int lightCount; // offset 0x8, size 0x4 + class xLightKitLight * lightList; // offset 0xC, size 0x4 +}; +class RxIoSpec { + // total size: 0x14 +public: + unsigned int numClustersOfInterest; // offset 0x0, size 0x4 + class RxClusterRef * clustersOfInterest; // offset 0x4, size 0x4 + enum RxClusterValidityReq * inputRequirements; // offset 0x8, size 0x4 + unsigned int numOutputs; // offset 0xC, size 0x4 + class RxOutputSpec * outputs; // offset 0x10, size 0x4 +}; +class zScene : public xScene { + // total size: 0x2C8 +public: + class _zPortal * pendingPortal; // offset 0x70, size 0x4 + union { // inferred + unsigned int num_ents; // offset 0x74, size 0x4 + unsigned int num_base; // offset 0x74, size 0x4 + }; + union { // inferred + class xBase * * base; // offset 0x78, size 0x4 + class zEnt * * ents; // offset 0x78, size 0x4 + }; + unsigned int num_update_base; // offset 0x7C, size 0x4 + class xBase * * update_base; // offset 0x80, size 0x4 + unsigned int baseCount[72]; // offset 0x84, size 0x120 + class xBase * baseList[72]; // offset 0x1A4, size 0x120 + class _zEnv * zen; // offset 0x2C4, size 0x4 +}; +class tri_data { + // total size: 0xC +public: + unsigned int index; // offset 0x0, size 0x4 + float r; // offset 0x4, size 0x4 + float d; // offset 0x8, size 0x4 +}; +class xLightKitLight { + // total size: 0x60 +public: + unsigned int type; // offset 0x0, size 0x4 + class RwRGBAReal color; // offset 0x4, size 0x10 + float matrix[16]; // offset 0x14, size 0x40 + float radius; // offset 0x54, size 0x4 + float angle; // offset 0x58, size 0x4 + class RpLight * platLight; // offset 0x5C, size 0x4 +}; +class zLedgeGrabParams { + // total size: 0x380 +public: + float animGrab; // offset 0x0, size 0x4 + float zdist; // offset 0x4, size 0x4 + class xVec3 tranTable[60]; // offset 0x8, size 0x2D0 + signed int tranCount; // offset 0x2D8, size 0x4 + class xEnt * optr; // offset 0x2DC, size 0x4 + class xMat4x3 omat; // offset 0x2E0, size 0x40 + float y0det; // offset 0x320, size 0x4 + float dydet; // offset 0x324, size 0x4 + float r0det; // offset 0x328, size 0x4 + float drdet; // offset 0x32C, size 0x4 + float thdet; // offset 0x330, size 0x4 + float rtime; // offset 0x334, size 0x4 + float ttime; // offset 0x338, size 0x4 + float tmr; // offset 0x33C, size 0x4 + class xVec3 spos; // offset 0x340, size 0xC + class xVec3 epos; // offset 0x34C, size 0xC + class xVec3 tpos; // offset 0x358, size 0xC + signed int nrays; // offset 0x364, size 0x4 + signed int rrand; // offset 0x368, size 0x4 + float startrot; // offset 0x36C, size 0x4 + float endrot; // offset 0x370, size 0x4 +}; +class xAnimMultiFileEntry { + // total size: 0x8 +public: + unsigned int ID; // offset 0x0, size 0x4 + class xAnimFile * File; // offset 0x4, size 0x4 +}; +class RxNodeMethods { + // total size: 0x1C +public: + signed int (* nodeBody)(class RxPipelineNode *, class RxPipelineNodeParam *); // offset 0x0, size 0x4 + signed int (* nodeInit)(class RxNodeDefinition *); // offset 0x4, size 0x4 + void (* nodeTerm)(class RxNodeDefinition *); // offset 0x8, size 0x4 + signed int (* pipelineNodeInit)(class RxPipelineNode *); // offset 0xC, size 0x4 + void (* pipelineNodeTerm)(class RxPipelineNode *); // offset 0x10, size 0x4 + signed int (* pipelineNodeConfig)(class RxPipelineNode *, class RxPipeline *); // offset 0x14, size 0x4 + unsigned int (* configMsgHandler)(class RxPipelineNode *, unsigned int, unsigned int, void *); // offset 0x18, size 0x4 +}; +class xAnimActiveEffect { + // total size: 0x8 +public: + class xAnimEffect * Effect; // offset 0x0, size 0x4 + unsigned int Handle; // offset 0x4, size 0x4 +}; +class xShadowSimpleCache { + // total size: 0x98 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned char alpha; // offset 0x2, size 0x1 + unsigned char pad; // offset 0x3, size 0x1 + unsigned int collPriority; // offset 0x4, size 0x4 + class xVec3 pos; // offset 0x8, size 0xC + class xVec3 at; // offset 0x14, size 0xC + class xEnt * castOnEnt; // offset 0x20, size 0x4 + class xShadowSimplePoly poly; // offset 0x24, size 0x30 + float envHeight; // offset 0x54, size 0x4 + float shadowHeight; // offset 0x58, size 0x4 + unsigned int raster; // offset 0x5C, size 0x4 + float dydx; // offset 0x60, size 0x4 + float dydz; // offset 0x64, size 0x4 + class xVec3 corner[4]; // offset 0x68, size 0x30 +}; +enum _zPlayerWallJumpState { + k_WALLJUMP_NOT = 0, + k_WALLJUMP_LAUNCH = 1, + k_WALLJUMP_FLIGHT = 2, + k_WALLJUMP_LAND = 3, +}; +class RwFrustumPlane { + // total size: 0x14 +public: + class RwPlane plane; // offset 0x0, size 0x10 + unsigned char closestX; // offset 0x10, size 0x1 + unsigned char closestY; // offset 0x11, size 0x1 + unsigned char closestZ; // offset 0x12, size 0x1 + unsigned char pad; // offset 0x13, size 0x1 +}; +class RwPlane { + // total size: 0x10 +public: + class RwV3d normal; // offset 0x0, size 0xC + float distance; // offset 0xC, size 0x4 +}; +enum _tagRumbleType { + eRumble_Off = 0, + eRumble_Hi = 1, + eRumble_VeryLightHi = 2, + eRumble_VeryLight = 3, + eRumble_LightHi = 4, + eRumble_Light = 5, + eRumble_MediumHi = 6, + eRumble_Medium = 7, + eRumble_HeavyHi = 8, + eRumble_Heavy = 9, + eRumble_VeryHeavyHi = 10, + eRumble_VeryHeavy = 11, + eRumble_Total = 12, + eRumbleForceU32 = 2147483647, +}; +class RxCluster { + // total size: 0x1C +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short stride; // offset 0x2, size 0x2 + void * data; // offset 0x4, size 0x4 + void * currentData; // offset 0x8, size 0x4 + unsigned int numAlloced; // offset 0xC, size 0x4 + unsigned int numUsed; // offset 0x10, size 0x4 + class RxPipelineCluster * clusterRef; // offset 0x14, size 0x4 + unsigned int attributes; // offset 0x18, size 0x4 +}; +enum _zPlayerType { + ePlayer_SB = 0, + ePlayer_Patrick = 1, + ePlayer_Sandy = 2, + ePlayer_MAXTYPES = 3, +}; +class /* @class */ { + // total size: 0xC +public: + float t; // offset 0x0, size 0x4 + float u; // offset 0x4, size 0x4 + float v; // offset 0x8, size 0x4 +}; +class xAnimMultiFileBase { + // total size: 0x4 +public: + unsigned int Count; // offset 0x0, size 0x4 +}; +class RxPacket { + // total size: 0x30 +public: + unsigned short flags; // offset 0x0, size 0x2 + unsigned short numClusters; // offset 0x2, size 0x2 + class RxPipeline * pipeline; // offset 0x4, size 0x4 + unsigned int * inputToClusterSlot; // offset 0x8, size 0x4 + unsigned int * slotsContinue; // offset 0xC, size 0x4 + class RxPipelineCluster * * slotClusterRefs; // offset 0x10, size 0x4 + class RxCluster clusters[1]; // offset 0x14, size 0x1C +}; +class analog_data { + // total size: 0x18 +public: + class xVec2 offset; // offset 0x0, size 0x8 + class xVec2 dir; // offset 0x8, size 0x8 + float mag; // offset 0x10, size 0x4 + float ang; // offset 0x14, size 0x4 +}; +class /* @class */ { + // total size: 0x4 +public: + class xVec3 * verts; // offset 0x0, size 0x4 +}; +enum RwFogType { + rwFOGTYPENAFOGTYPE = 0, + rwFOGTYPELINEAR = 1, + rwFOGTYPEEXPONENTIAL = 2, + rwFOGTYPEEXPONENTIAL2 = 3, + rwFOGTYPEFORCEENUMSIZEINT = 2147483647, +}; +class RwRGBAReal { + // total size: 0x10 +public: + float red; // offset 0x0, size 0x4 + float green; // offset 0x4, size 0x4 + float blue; // offset 0x8, size 0x4 + float alpha; // offset 0xC, size 0x4 +}; +class RpInterpolator { + // total size: 0x14 +public: + signed int flags; // offset 0x0, size 0x4 + signed short startMorphTarget; // offset 0x4, size 0x2 + signed short endMorphTarget; // offset 0x6, size 0x2 + float time; // offset 0x8, size 0x4 + float recipTime; // offset 0xC, size 0x4 + float position; // offset 0x10, size 0x4 +}; +class xQCData { + // total size: 0x20 +public: + signed char xmin; // offset 0x0, size 0x1 + signed char ymin; // offset 0x1, size 0x1 + signed char zmin; // offset 0x2, size 0x1 + signed char zmin_dup; // offset 0x3, size 0x1 + signed char xmax; // offset 0x4, size 0x1 + signed char ymax; // offset 0x5, size 0x1 + signed char zmax; // offset 0x6, size 0x1 + signed char zmax_dup; // offset 0x7, size 0x1 + class xVec3 min; // offset 0x8, size 0xC + class xVec3 max; // offset 0x14, size 0xC +}; +class zCheckPoint { + // total size: 0x14 +public: + class xVec3 pos; // offset 0x0, size 0xC + float rot; // offset 0xC, size 0x4 + unsigned int initCamID; // offset 0x10, size 0x4 +}; +class RwLinkList { + // total size: 0x8 +public: + class RwLLLink link; // offset 0x0, size 0x8 +}; +class xBBox { + // total size: 0x24 +public: + class xVec3 center; // offset 0x0, size 0xC + class xBox box; // offset 0xC, size 0x18 +}; +class zJumpParam { + // total size: 0x10 +public: + float PeakHeight; // offset 0x0, size 0x4 + float TimeGravChange; // offset 0x4, size 0x4 + float TimeHold; // offset 0x8, size 0x4 + float ImpulseVel; // offset 0xC, size 0x4 +}; +class zPlayerGlobals { + // total size: 0x1940 +public: + class zEnt ent; // offset 0x0, size 0xD4 + class xEntShadow entShadow_embedded; // offset 0xD4, size 0x28 + class xShadowSimpleCache simpShadow_embedded; // offset 0xFC, size 0x98 + class zGlobalSettings g; // offset 0x194, size 0x150 + class zPlayerSettings * s; // offset 0x2E4, size 0x4 + class zPlayerSettings sb; // offset 0x2F0, size 0x460 + class zPlayerSettings patrick; // offset 0x750, size 0x460 + class zPlayerSettings sandy; // offset 0xBB0, size 0x460 + class xModelInstance * model_spongebob; // offset 0x1010, size 0x4 + class xModelInstance * model_patrick; // offset 0x1014, size 0x4 + class xModelInstance * model_sandy; // offset 0x1018, size 0x4 + unsigned int Visible; // offset 0x101C, size 0x4 + unsigned int Health; // offset 0x1020, size 0x4 + signed int Speed; // offset 0x1024, size 0x4 + float SpeedMult; // offset 0x1028, size 0x4 + signed int Sneak; // offset 0x102C, size 0x4 + signed int Teeter; // offset 0x1030, size 0x4 + float SlipFadeTimer; // offset 0x1034, size 0x4 + signed int Slide; // offset 0x1038, size 0x4 + float SlideTimer; // offset 0x103C, size 0x4 + signed int Stepping; // offset 0x1040, size 0x4 + signed int JumpState; // offset 0x1044, size 0x4 + signed int LastJumpState; // offset 0x1048, size 0x4 + float JumpTimer; // offset 0x104C, size 0x4 + float LookAroundTimer; // offset 0x1050, size 0x4 + unsigned int LookAroundRand; // offset 0x1054, size 0x4 + unsigned int LastProjectile; // offset 0x1058, size 0x4 + float DecelRun; // offset 0x105C, size 0x4 + float DecelRunSpeed; // offset 0x1060, size 0x4 + float HotsauceTimer; // offset 0x1064, size 0x4 + float LeanLerp; // offset 0x1068, size 0x4 + float ScareTimer; // offset 0x106C, size 0x4 + class xBase * ScareSource; // offset 0x1070, size 0x4 + float CowerTimer; // offset 0x1074, size 0x4 + float DamageTimer; // offset 0x1078, size 0x4 + float SundaeTimer; // offset 0x107C, size 0x4 + float ControlOffTimer; // offset 0x1080, size 0x4 + float HelmetTimer; // offset 0x1084, size 0x4 + unsigned int WorldDisguise; // offset 0x1088, size 0x4 + unsigned int Bounced; // offset 0x108C, size 0x4 + float FallDeathTimer; // offset 0x1090, size 0x4 + float HeadbuttVel; // offset 0x1094, size 0x4 + float HeadbuttTimer; // offset 0x1098, size 0x4 + unsigned int SpecialReceived; // offset 0x109C, size 0x4 + class xEnt * MountChimney; // offset 0x10A0, size 0x4 + float MountChimOldY; // offset 0x10A4, size 0x4 + unsigned int MaxHealth; // offset 0x10A8, size 0x4 + unsigned int DoMeleeCheck; // offset 0x10AC, size 0x4 + float VictoryTimer; // offset 0x10B0, size 0x4 + float BadGuyNearTimer; // offset 0x10B4, size 0x4 + float ForceSlipperyTimer; // offset 0x10B8, size 0x4 + float ForceSlipperyFriction; // offset 0x10BC, size 0x4 + float ShockRadius; // offset 0x10C0, size 0x4 + float ShockRadiusOld; // offset 0x10C4, size 0x4 + float Face_ScareTimer; // offset 0x10C8, size 0x4 + unsigned int Face_ScareRandom; // offset 0x10CC, size 0x4 + unsigned int Face_Event; // offset 0x10D0, size 0x4 + float Face_EventTimer; // offset 0x10D4, size 0x4 + float Face_PantTimer; // offset 0x10D8, size 0x4 + unsigned int Face_AnimSpecific; // offset 0x10DC, size 0x4 + unsigned int IdleRand; // offset 0x10E0, size 0x4 + float IdleMinorTimer; // offset 0x10E4, size 0x4 + float IdleMajorTimer; // offset 0x10E8, size 0x4 + float IdleSitTimer; // offset 0x10EC, size 0x4 + signed int Transparent; // offset 0x10F0, size 0x4 + class zEnt * FireTarget; // offset 0x10F4, size 0x4 + unsigned int ControlOff; // offset 0x10F8, size 0x4 + unsigned int ControlOnEvent; // offset 0x10FC, size 0x4 + unsigned int AutoMoveSpeed; // offset 0x1100, size 0x4 + float AutoMoveDist; // offset 0x1104, size 0x4 + class xVec3 AutoMoveTarget; // offset 0x1108, size 0xC + class xBase * AutoMoveObject; // offset 0x1114, size 0x4 + class zEnt * Diggable; // offset 0x1118, size 0x4 + float DigTimer; // offset 0x111C, size 0x4 + class zPlayerCarryInfo carry; // offset 0x1120, size 0xE0 + class zPlayerLassoInfo lassoInfo; // offset 0x1200, size 0x120 + class xModelTag BubbleWandTag[2]; // offset 0x1320, size 0x40 + class xModelInstance * model_wand; // offset 0x1360, size 0x4 + class xEntBoulder * bubblebowl; // offset 0x1364, size 0x4 + float bbowlInitVel; // offset 0x1368, size 0x4 + class zEntHangable * HangFound; // offset 0x136C, size 0x4 + class zEntHangable * HangEnt; // offset 0x1370, size 0x4 + class zEntHangable * HangEntLast; // offset 0x1374, size 0x4 + class xVec3 HangPivot; // offset 0x1378, size 0xC + class xVec3 HangVel; // offset 0x1384, size 0xC + float HangLength; // offset 0x1390, size 0x4 + class xVec3 HangStartPos; // offset 0x1394, size 0xC + float HangStartLerp; // offset 0x13A0, size 0x4 + class xModelTag HangPawTag[4]; // offset 0x13A4, size 0x80 + float HangPawOffset; // offset 0x1424, size 0x4 + float HangElapsed; // offset 0x1428, size 0x4 + float Jump_CurrGravity; // offset 0x142C, size 0x4 + float Jump_HoldTimer; // offset 0x1430, size 0x4 + float Jump_ChangeTimer; // offset 0x1434, size 0x4 + signed int Jump_CanDouble; // offset 0x1438, size 0x4 + signed int Jump_CanFloat; // offset 0x143C, size 0x4 + signed int Jump_SpringboardStart; // offset 0x1440, size 0x4 + class zPlatform * Jump_Springboard; // offset 0x1444, size 0x4 + signed int CanJump; // offset 0x1448, size 0x4 + signed int CanBubbleSpin; // offset 0x144C, size 0x4 + signed int CanBubbleBounce; // offset 0x1450, size 0x4 + signed int CanBubbleBash; // offset 0x1454, size 0x4 + signed int IsJumping; // offset 0x1458, size 0x4 + signed int IsDJumping; // offset 0x145C, size 0x4 + signed int IsBubbleSpinning; // offset 0x1460, size 0x4 + signed int IsBubbleBouncing; // offset 0x1464, size 0x4 + signed int IsBubbleBashing; // offset 0x1468, size 0x4 + signed int IsBubbleBowling; // offset 0x146C, size 0x4 + signed int WasDJumping; // offset 0x1470, size 0x4 + signed int IsCoptering; // offset 0x1474, size 0x4 + enum _zPlayerWallJumpState WallJumpState; // offset 0x1478, size 0x4 + signed int cheat_mode; // offset 0x147C, size 0x4 + unsigned int Inv_Shiny; // offset 0x1480, size 0x4 + unsigned int Inv_Spatula; // offset 0x1484, size 0x4 + unsigned int Inv_PatsSock[15]; // offset 0x1488, size 0x3C + unsigned int Inv_PatsSock_Max[15]; // offset 0x14C4, size 0x3C + unsigned int Inv_PatsSock_CurrentLevel; // offset 0x1500, size 0x4 + unsigned int Inv_LevelPickups[15]; // offset 0x1504, size 0x3C + unsigned int Inv_LevelPickups_CurrentLevel; // offset 0x1540, size 0x4 + unsigned int Inv_PatsSock_Total; // offset 0x1544, size 0x4 + class xModelTag BubbleTag; // offset 0x1548, size 0x20 + class xEntDrive drv; // offset 0x1568, size 0x7C + class xSurface * floor_surf; // offset 0x15E4, size 0x4 + class xVec3 floor_norm; // offset 0x15E8, size 0xC + signed int slope; // offset 0x15F4, size 0x4 + class xCollis earc_coll; // offset 0x15F8, size 0x50 + class xSphere head_sph; // offset 0x1648, size 0x10 + class xModelTag center_tag; // offset 0x1658, size 0x20 + class xModelTag head_tag; // offset 0x1678, size 0x20 + unsigned int TongueFlags[2]; // offset 0x1698, size 0x8 + class xVec3 RootUp; // offset 0x16A0, size 0xC + class xVec3 RootUpTarget; // offset 0x16AC, size 0xC + class zCheckPoint cp; // offset 0x16B8, size 0x14 + unsigned int SlideTrackSliding; // offset 0x16CC, size 0x4 + unsigned int SlideTrackCount; // offset 0x16D0, size 0x4 + class xEnt * SlideTrackEnt[111]; // offset 0x16D4, size 0x1BC + unsigned int SlideNotGroundedSinceSlide; // offset 0x1890, size 0x4 + class xVec3 SlideTrackDir; // offset 0x1894, size 0xC + class xVec3 SlideTrackVel; // offset 0x18A0, size 0xC + float SlideTrackDecay; // offset 0x18AC, size 0x4 + float SlideTrackLean; // offset 0x18B0, size 0x4 + float SlideTrackLand; // offset 0x18B4, size 0x4 + unsigned char sb_model_indices[14]; // offset 0x18B8, size 0xE + class xModelInstance * sb_models[14]; // offset 0x18C8, size 0x38 + unsigned int currentPlayer; // offset 0x1900, size 0x4 + class xVec3 PredictRotate; // offset 0x1904, size 0xC + class xVec3 PredictTranslate; // offset 0x1910, size 0xC + float PredictAngV; // offset 0x191C, size 0x4 + class xVec3 PredictCurrDir; // offset 0x1920, size 0xC + float PredictCurrVel; // offset 0x192C, size 0x4 + float KnockBackTimer; // offset 0x1930, size 0x4 + float KnockIntoAirTimer; // offset 0x1934, size 0x4 +}; +class xEntDrive { + // total size: 0x7C +public: + unsigned int flags; // offset 0x0, size 0x4 + float otm; // offset 0x4, size 0x4 + float otmr; // offset 0x8, size 0x4 + float os; // offset 0xC, size 0x4 + float tm; // offset 0x10, size 0x4 + float tmr; // offset 0x14, size 0x4 + float s; // offset 0x18, size 0x4 + class xEnt * odriver; // offset 0x1C, size 0x4 + class xEnt * driver; // offset 0x20, size 0x4 + class xEnt * driven; // offset 0x24, size 0x4 + class xVec3 op; // offset 0x28, size 0xC + class xVec3 p; // offset 0x34, size 0xC + class xVec3 q; // offset 0x40, size 0xC + float yaw; // offset 0x4C, size 0x4 + class xVec3 dloc; // offset 0x50, size 0xC + class tri_data tri; // offset 0x5C, size 0x20 +}; + +/* + Compile unit: C:\SB\Game\zVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A39A0 -> 0x001A3ADC +*/ +// Range: 0x1A39A0 -> 0x1A3ADC +signed int zVolumeEventCB(class xBase * to /* r2 */, unsigned int toEvent /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A39A0 -> 0x1A3ADC + class zVolume * vol; // r2 + signed int i; // r6 + } +} + +/* + Compile unit: C:\SB\Game\zVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A3AE0 -> 0x001A4058 +*/ +// Range: 0x1A3AE0 -> 0x1A4058 +void zVolume_OccludePrecalc(class xVec3 * camPos /* r19 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A3AE0 -> 0x1A4058 + signed int i; // r18 + signed int j; // r17 + class xVec3 corner[5]; // r29+0xA0 + class zVolume * vol; // r2 + class xVolumeAsset * a; // r17 + float c; // r20 + float s; // r29+0x100 + class PreCalcOcclude * calc; // r16 + class xVec3 d1; // r29+0xF0 + class xVec3 d2; // r29+0xE0 + class xVec4 locFrustVec[4]; // r29+0x60 + float depthdot; // r3 + float camdot; // r1 + float testdot1; // r3 + float testdot2; // r29+0x100 + } +} + +/* + Compile unit: C:\SB\Game\zVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4060 -> 0x001A407C +*/ +// Range: 0x1A4060 -> 0x1A407C +class zVolume * zVolumeGetVolume(unsigned short n /* r2 */) { + // Blocks + /* anonymous block */ { + // Range: 0x1A4060 -> 0x1A407C + } +} + +/* + Compile unit: C:\SB\Game\zVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A4080 -> 0x001A40E4 +*/ +// Range: 0x1A4080 -> 0x1A40E4 +void zVolumeSetup() { + // Blocks + /* anonymous block */ { + // Range: 0x1A4080 -> 0x1A40E4 + unsigned int i; // r16 + } +} + +/* + Compile unit: C:\SB\Game\zVolume.cpp + Producer: MW MIPS C Compiler + Language: C++ + Code range: 0x001A40F0 -> 0x001A41D0 +*/ +// Range: 0x1A40F0 -> 0x1A41D0 +void zVolumeInit() { + // Blocks + /* anonymous block */ { + // Range: 0x1A40F0 -> 0x1A41D0 + unsigned short i; // r17 + unsigned int size; // r29+0x4C + class xVolumeAsset * asset; // r2 + } +} + diff --git a/dwarf/usr/local/sce/EE/lib/crt0.s b/dwarf/usr/local/sce/EE/lib/crt0.s new file mode 100644 index 000000000..d5812a5b7 --- /dev/null +++ b/dwarf/usr/local/sce/EE/lib/crt0.s @@ -0,0 +1,7 @@ +/* + Compile unit: C:\usr\local\sce\EE\lib\crt0.s + Producer: Metrowerks MW GAS R5900 Assembler + Language: MwAsm + Code range: 0x00100000 -> 0x001001D8 +*/ +